Class: Riddler::Element
- Inherits:
-
Object
- Object
- Riddler::Element
- Includes:
- Includeable
- Defined in:
- lib/riddler/element.rb
Direct Known Subclasses
Riddler::Elements::Copy, Riddler::Elements::Heading, Riddler::Elements::Image, Riddler::Elements::Link, Riddler::Elements::Text, Riddler::Elements::Varient
Instance Attribute Summary collapse
-
#context ⇒ Object
readonly
Returns the value of attribute context.
-
#definition ⇒ Object
readonly
Returns the value of attribute definition.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(definition, context) ⇒ Element
constructor
A new instance of Element.
- #to_hash ⇒ Object
Methods included from Includeable
Constructor Details
#initialize(definition, context) ⇒ Element
Returns a new instance of Element.
24 25 26 27 |
# File 'lib/riddler/element.rb', line 24 def initialize definition, context @definition = definition @context = context end |
Instance Attribute Details
#context ⇒ Object (readonly)
Returns the value of attribute context.
5 6 7 |
# File 'lib/riddler/element.rb', line 5 def context @context end |
#definition ⇒ Object (readonly)
Returns the value of attribute definition.
5 6 7 |
# File 'lib/riddler/element.rb', line 5 def definition @definition end |
Class Method Details
.for(definition, context) ⇒ Object
15 16 17 18 19 20 21 22 |
# File 'lib/riddler/element.rb', line 15 def self.for definition, context element_type = definition["type"] # Maybe this should be a registry klass = subclasses.detect { |k| k.type == element_type } klass.new definition, context end |
.inherited(subclass) ⇒ Object
11 12 13 |
# File 'lib/riddler/element.rb', line 11 def self.inherited subclass self.subclasses << subclass end |
.subclasses ⇒ Object
7 8 9 |
# File 'lib/riddler/element.rb', line 7 def self.subclasses @@subclasses ||= [] end |
Instance Method Details
#to_hash ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/riddler/element.rb', line 29 def to_hash { content_type: "element", type: self.class.type, id: definition["id"], name: definition["name"] } end |