Module: Larynx::Fields::InstanceMethods

Defined in:
lib/larynx/fields.rb

Instance Method Summary collapse

Instance Method Details

#field_index(name) ⇒ Object



42
43
44
45
# File 'lib/larynx/fields.rb', line 42

def field_index(name)
  field = @fields.find {|f| f.name == name }
  @fields.index(field)
end

#initialize(*args, &block) ⇒ Object



27
28
29
30
31
# File 'lib/larynx/fields.rb', line 27

def initialize(*args, &block)
  @fields = self.class.field_definitions.map {|field| Field.new(field[:name], field[:options], &field[:block]) }
  @current_field = 0
  super
end

#next_field(field_name = nil) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/larynx/fields.rb', line 33

def next_field(field_name=nil)
  @current_field = field_index(field_name) if field_name
  if field = @fields[@current_field]
    field.run(self)
    @current_field += 1
    field
  end
end