Class: Mediator::Renderer
- Defined in:
- lib/mediator/renderer.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#mediator ⇒ Object
readonly
Returns the value of attribute mediator.
Instance Method Summary collapse
- #get(name, options = nil) ⇒ Object
- #has?(name, options = nil) ⇒ Boolean
- #id(name, options = {}, &block) ⇒ Object
- #ids(name, options = {}, &block) ⇒ Object
-
#initialize(mediator, data = nil) ⇒ Renderer
constructor
A new instance of Renderer.
- #key(name, options = nil, &block) ⇒ Object
- #many(name, options = nil, &block) ⇒ Object
- #one(name, options = nil, &block) ⇒ Object
- #union(name, options = nil, &block) ⇒ Object
Methods inherited from Processor
Constructor Details
#initialize(mediator, data = nil) ⇒ Renderer
Returns a new instance of Renderer.
8 9 10 11 |
# File 'lib/mediator/renderer.rb', line 8 def initialize mediator, data = nil @data = data || {} @mediator = mediator end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
5 6 7 |
# File 'lib/mediator/renderer.rb', line 5 def data @data end |
#mediator ⇒ Object (readonly)
Returns the value of attribute mediator.
6 7 8 |
# File 'lib/mediator/renderer.rb', line 6 def mediator @mediator end |
Instance Method Details
#get(name, options = nil) ⇒ Object
13 14 15 16 |
# File 'lib/mediator/renderer.rb', line 13 def get name, = nil selector = ( && [:from]) || name ( && [:value]) || mediator.get(selector) end |
#has?(name, options = nil) ⇒ Boolean
18 19 20 21 |
# File 'lib/mediator/renderer.rb', line 18 def has? name, = nil selector = ( && [:from]) || name ( && .has_key?(:value)) || mediator.subject_has?(selector) end |
#id(name, options = {}, &block) ⇒ Object
23 24 25 |
# File 'lib/mediator/renderer.rb', line 23 def id name, = {}, &block key name, .merge(from: "#{name}_id"), &block end |
#ids(name, options = {}, &block) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/mediator/renderer.rb', line 27 def ids name, = {}, &block unless [:from] if name[-1] == "s" = .merge(from: "#{name[0..-2]}_ids") else = .merge(from: "#{name}_ids") end end key name, , &block end |
#key(name, options = nil, &block) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/mediator/renderer.rb', line 39 def key name, = nil, &block if name[-1] == "?" ( ||= {})[:from] = name name = name[0..-2].intern end value = get name, return if empty? value, value = block ? block[value] : value data[name] = value unless empty? value, end |
#many(name, options = nil, &block) ⇒ Object
53 54 55 56 57 |
# File 'lib/mediator/renderer.rb', line 53 def many name, = nil, &block value = get name, data[name] = value.map { |v| sub v, , &block }. reject { |v| empty? v, } end |
#one(name, options = nil, &block) ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/mediator/renderer.rb', line 59 def one name, = nil, &block value = get name, return if empty? value, value = sub value, , &block return if empty? value, && [:merge] ? data.merge!(value) : data[name] = value end |
#union(name, options = nil, &block) ⇒ Object
69 70 71 72 |
# File 'lib/mediator/renderer.rb', line 69 def union name, = nil, &block ( ||= {}).merge! merge: true one name, , &block end |