Class: Chop::Form::Field
- Inherits:
-
Struct
- Object
- Struct
- Chop::Form::Field
show all
- Defined in:
- lib/chop/form.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#field ⇒ Object
Returns the value of attribute field
97
98
99
|
# File 'lib/chop/form.rb', line 97
def field
@field
end
|
#label ⇒ Object
Returns the value of attribute label
97
98
99
|
# File 'lib/chop/form.rb', line 97
def label
@label
end
|
#path ⇒ Object
Returns the value of attribute path
97
98
99
|
# File 'lib/chop/form.rb', line 97
def path
@path
end
|
#session ⇒ Object
Returns the value of attribute session
97
98
99
|
# File 'lib/chop/form.rb', line 97
def session
@session
end
|
#value ⇒ Object
Returns the value of attribute value
97
98
99
|
# File 'lib/chop/form.rb', line 97
def value
@value
end
|
Class Method Details
.candidates ⇒ Object
111
112
113
114
115
|
# File 'lib/chop/form.rb', line 111
def self.candidates
descendants.sort_by do |a|
a == Chop::Form::Default ? 1 : -1 end
end
|
.combined_css_selector ⇒ Object
121
122
123
|
# File 'lib/chop/form.rb', line 121
def self.combined_css_selector
candidates.map(&:css_selector).uniq.join(", ")
end
|
.css_selector ⇒ Object
117
118
119
|
# File 'lib/chop/form.rb', line 117
def self.css_selector
"input"
end
|
.for(session, label, value, path) ⇒ Object
98
99
100
101
102
103
|
# File 'lib/chop/form.rb', line 98
def self.for session, label, value, path
field = FieldFinder.new(session, combined_css_selector).find(label)
candidates.map do |klass|
klass.new(session, label, value, path, field)
end.find(&:matches?)
end
|
.from(session, field) ⇒ Object
105
106
107
108
109
|
# File 'lib/chop/form.rb', line 105
def self.from session, field
candidates.map do |klass|
klass.new(session, nil, nil, nil, field)
end.find(&:matches?)
end
|
Instance Method Details
#diff_value ⇒ Object
146
147
148
|
# File 'lib/chop/form.rb', line 146
def diff_value
get_value.to_s
end
|
#fill_in! ⇒ Object
150
151
152
|
# File 'lib/chop/form.rb', line 150
def fill_in!
field.set value
end
|
#get_value ⇒ Object
125
126
127
|
# File 'lib/chop/form.rb', line 125
def get_value
field.value
end
|
#label_text ⇒ Object
135
136
137
138
139
|
# File 'lib/chop/form.rb', line 135
def label_text
return nil unless field[:id].present?
label_element = session.first("label[for='#{field[:id]}']", visible: :all, minimum: 0, wait: 0.1)
label_element&.text(:all)
end
|
#should_include_in_diff? ⇒ Boolean
129
130
131
132
133
|
# File 'lib/chop/form.rb', line 129
def should_include_in_diff?
field[:name].present? &&
field[:type] != "submit" &&
field[:type] != "hidden"
end
|
#to_diff_row ⇒ Object
141
142
143
144
|
# File 'lib/chop/form.rb', line 141
def to_diff_row
return nil unless label = label_text
[label, diff_value]
end
|