Class: Jquard::Resources::Pages::Page

Inherits:
Object
  • Object
show all
Defined in:
lib/jquard/resources/pages/page.rb

Direct Known Subclasses

CreateRecord, EditRecord, ListRecords

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource: nil) ⇒ Page

Returns a new instance of Page.



14
15
16
# File 'lib/jquard/resources/pages/page.rb', line 14

def initialize(resource: nil)
  @resource = resource || self.class.inferred_resource
end

Instance Attribute Details

#resourceObject (readonly)

Returns the value of attribute resource.



12
13
14
# File 'lib/jquard/resources/pages/page.rb', line 12

def resource
  @resource
end

Class Method Details

.inferred_resourceObject

CreatePost lives in Jquard::Resources::Posts::Pages, so the owning resource can be derived from the grandparent namespace: Posts → PostResource.



7
8
9
10
# File 'lib/jquard/resources/pages/page.rb', line 7

def self.inferred_resource
  namespace = module_parent.module_parent
  namespace.const_get("#{namespace.name.demodulize.singularize}Resource")
end