Skip to content

Commit

Permalink
break Form::Field into Form::Text,Hidden,Textarea
Browse files Browse the repository at this point in the history
  • Loading branch information
maiha committed Aug 28, 2009
1 parent 4c9e9d2 commit 96283be
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
30 changes: 30 additions & 0 deletions lib/mechanize/form.rb
Expand Up @@ -60,6 +60,30 @@ def keys; fields.map { |f| f.name }; end

def values; fields.map { |f| f.value }; end

def texts
@texts ||= fields.select { |f| f.class == Text }
end

def hiddens
@hiddens ||= fields.select { |f| f.class == Hidden }
end

def textareas
@textareas ||= fields.select { |f| f.class == Textarea }
end

def text_field?(field_name)
! texts.find { |f| f.name.eql? field_name }.nil?
end

def hidden_field?(field_name)
! hiddens.find { |f| f.name.eql? field_name }.nil?
end

def textarea_field?(field_name)
! textareas.find { |f| f.name.eql? field_name }.nil?
end

# Add a field with +field_name+ and +value+
def add_field!(field_name, value = nil)
fields << Field.new(field_name, value)
Expand Down Expand Up @@ -281,6 +305,12 @@ def parse
@buttons << Button.new(node['name'], node['value'])
when 'image'
@buttons << ImageButton.new(node['name'], node['value'])
when 'hidden'
@fields << Hidden.new(node['name'], node['value'] || '')
when 'text'
@fields << Text.new(node['name'], node['value'] || '')
when 'textarea'
@fields << Textarea.new(node['name'], node['value'] || '')
else
@fields << Field.new(node['name'], node['value'] || '')
end
Expand Down
9 changes: 9 additions & 0 deletions lib/mechanize/form/field.rb
Expand Up @@ -22,5 +22,14 @@ def query_value
[[@name, @value || '']]
end
end

class Text < Field
end

class Textarea < Field
end

class Hidden < Field
end
end
end

0 comments on commit 96283be

Please sign in to comment.