Class: OpenRosa::FieldContext
- Inherits:
-
Object
- Object
- OpenRosa::FieldContext
- Defined in:
- lib/open_rosa/field_context.rb
Overview
Helper class for evaluating blocks in group/repeat DSL This allows for clean nested field definitions within groups and repeats
Instance Method Summary collapse
- #boolean(name, options = {}) ⇒ Object
- #group(name, options = {}) ⇒ Object
-
#initialize(fields_array) ⇒ FieldContext
constructor
A new instance of FieldContext.
- #input(name, options = {}) ⇒ Object
- #range(name, options = {}) ⇒ Object
- #repeat(name, options = {}) ⇒ Object
- #select(name, options = {}) ⇒ Object
- #select1(name, options = {}) ⇒ Object
- #trigger(name, options = {}) ⇒ Object
- #upload(name, options = {}) ⇒ Object
Constructor Details
#initialize(fields_array) ⇒ FieldContext
Returns a new instance of FieldContext.
7 8 9 |
# File 'lib/open_rosa/field_context.rb', line 7 def initialize(fields_array) @fields = fields_array end |
Instance Method Details
#boolean(name, options = {}) ⇒ Object
23 24 25 |
# File 'lib/open_rosa/field_context.rb', line 23 def boolean(name, = {}) @fields << Fields::Boolean.new(name, ) end |
#group(name, options = {}) ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/open_rosa/field_context.rb', line 39 def group(name, = {}, &) nested_fields = [] if block_given? context = FieldContext.new(nested_fields) context.instance_eval(&) end @fields << Fields::Group.new(name, .merge(fields: nested_fields)) end |
#input(name, options = {}) ⇒ Object
11 12 13 |
# File 'lib/open_rosa/field_context.rb', line 11 def input(name, = {}) @fields << Fields::Input.new(name, ) end |
#range(name, options = {}) ⇒ Object
31 32 33 |
# File 'lib/open_rosa/field_context.rb', line 31 def range(name, = {}) @fields << Fields::Range.new(name, ) end |
#repeat(name, options = {}) ⇒ Object
49 50 51 52 53 54 55 56 57 |
# File 'lib/open_rosa/field_context.rb', line 49 def repeat(name, = {}, &) nested_fields = [] if block_given? context = FieldContext.new(nested_fields) context.instance_eval(&) end @fields << Fields::Repeat.new(name, .merge(fields: nested_fields)) end |
#select(name, options = {}) ⇒ Object
19 20 21 |
# File 'lib/open_rosa/field_context.rb', line 19 def select(name, = {}) @fields << Fields::Select.new(name, ) end |
#select1(name, options = {}) ⇒ Object
15 16 17 |
# File 'lib/open_rosa/field_context.rb', line 15 def select1(name, = {}) @fields << Fields::Select1.new(name, ) end |