Class: Representable::Definition
- Inherits:
-
Declarative::Definitions::Definition
- Object
- Declarative::Definitions::Definition
- Representable::Definition
- Defined in:
- lib/representable/definition.rb
Overview
Created at class compile time. Keeps configuration options for one property.
Instance Method Summary collapse
- #[](name) ⇒ Object
- #array? ⇒ Boolean
- #create_binding(*args) ⇒ Object
- #delete!(name) ⇒ Object
- #has_default? ⇒ Boolean
- #hash? ⇒ Boolean
-
#initialize(sym, options = {}, &block) ⇒ Definition
constructor
A new instance of Definition.
- #inspect ⇒ Object
- #merge!(options, &block) ⇒ Object
- #name ⇒ Object (also: #getter)
- #representable? ⇒ Boolean
- #representer_module ⇒ Object
- #setter ⇒ Object
-
#typed? ⇒ Boolean
TODO: remove.
Constructor Details
#initialize(sym, options = {}, &block) ⇒ Definition
Returns a new instance of Definition.
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/representable/definition.rb', line 7 def initialize(sym, ={}, &block) [:extend] = [:nested] if [:nested] super # defaults: [:parse_filter] = Pipeline[*[:parse_filter]] [:render_filter] = Pipeline[*[:render_filter]] setup!(, &block) end |
Instance Method Details
#[](name) ⇒ Object
40 41 42 43 44 |
# File 'lib/representable/definition.rb', line 40 def [](name) # return nil if name==:extend && self[:nested].nil? # return Uber::Options::Value.new(self[:nested]) if name==:extend @runtime_options[name] end |
#array? ⇒ Boolean
59 60 61 |
# File 'lib/representable/definition.rb', line 59 def array? self[:collection] end |
#create_binding(*args) ⇒ Object
75 76 77 |
# File 'lib/representable/definition.rb', line 75 def create_binding(*args) self[:binding].call(self, *args) end |
#delete!(name) ⇒ Object
34 35 36 37 38 |
# File 'lib/representable/definition.rb', line 34 def delete!(name) @runtime_options.delete(name) @options.delete(name) self end |
#has_default? ⇒ Boolean
67 68 69 |
# File 'lib/representable/definition.rb', line 67 def has_default? @options.has_key?(:default) end |
#hash? ⇒ Boolean
63 64 65 |
# File 'lib/representable/definition.rb', line 63 def hash? self[:hash] end |
#inspect ⇒ Object
79 80 81 82 |
# File 'lib/representable/definition.rb', line 79 def inspect state = (instance_variables-[:@runtime_options, :@name]).collect { |ivar| "#{ivar}=#{instance_variable_get(ivar)}" } "#<Representable::Definition ==>#{name} #{state.join(" ")}>" end |
#merge!(options, &block) ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/representable/definition.rb', line 24 def merge!(, &block) = .clone [:parse_filter] = @options[:parse_filter].push(*[:parse_filter]) [:render_filter] = @options[:render_filter].push(*[:render_filter]) setup!(, &block) # FIXME: this doesn't yield :as etc. self end |
#name ⇒ Object Also known as: getter
19 20 21 |
# File 'lib/representable/definition.rb', line 19 def name self[:name] end |
#representable? ⇒ Boolean
54 55 56 57 |
# File 'lib/representable/definition.rb', line 54 def representable? return if self[:representable] == false self[:representable] or typed? end |
#representer_module ⇒ Object
71 72 73 |
# File 'lib/representable/definition.rb', line 71 def representer_module @options[:extend] end |
#setter ⇒ Object
46 47 48 |
# File 'lib/representable/definition.rb', line 46 def setter :"#{name}=" end |
#typed? ⇒ Boolean
TODO: remove.
50 51 52 |
# File 'lib/representable/definition.rb', line 50 def typed? # TODO: remove. self[:class] or self[:extend] or self[:instance] end |