druid-ts 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/ChangeLog +15 -0
- data/Gemfile +1 -0
- data/druid.gemspec +1 -0
- data/features/button.feature +2 -1
- data/features/checkbox.feature +2 -1
- data/features/div.feature +2 -1
- data/features/element.feature +2 -0
- data/features/file_field.feature +2 -1
- data/features/form.feature +2 -1
- data/features/hidden_field.feature +2 -1
- data/features/html/nested_elements.html +20 -0
- data/features/image.feature +2 -1
- data/features/javascript.feature +13 -0
- data/features/link.feature +1 -1
- data/features/list_item.feature +2 -1
- data/features/nested_elements.feature +12 -0
- data/features/ordered_list.feature +2 -1
- data/features/paragraph.feature +2 -1
- data/features/radio_button.feature +2 -1
- data/features/sample-app/public/jquery-1.3.2.js +4376 -0
- data/features/sample-app/public/jquery.html +28 -0
- data/features/sample-app/public/prototype-1.6.0.3.js +4320 -0
- data/features/sample-app/public/prototype.html +32 -0
- data/features/sample-app/sample_app.rb +30 -0
- data/features/select_list.feature +13 -1
- data/features/span.feature +2 -1
- data/features/step_definations/button_steps.rb +4 -0
- data/features/step_definations/checkbox_steps.rb +4 -0
- data/features/step_definations/div_steps.rb +4 -0
- data/features/step_definations/element_steps.rb +8 -0
- data/features/step_definations/file_field_steps.rb +4 -0
- data/features/step_definations/form_steps.rb +4 -0
- data/features/step_definations/hidden_field_steps.rb +4 -0
- data/features/step_definations/image_steps.rb +4 -0
- data/features/step_definations/javasript_steps.rb +29 -0
- data/features/step_definations/list_item_steps.rb +4 -0
- data/features/step_definations/nested_elements_steps.rb +15 -0
- data/features/step_definations/ordered_list_steps.rb +4 -0
- data/features/step_definations/paragraph_steps.rb +4 -0
- data/features/step_definations/radio_button_steps.rb +4 -0
- data/features/step_definations/select_list_steps.rb +16 -0
- data/features/step_definations/span_steps.rb +4 -0
- data/features/step_definations/table_cell_steps.rb +4 -0
- data/features/step_definations/table_steps.rb +4 -0
- data/features/step_definations/text_area_steps.rb +4 -0
- data/features/step_definations/text_field_steps.rb +8 -0
- data/features/step_definations/unordered_list_steps.rb +4 -0
- data/features/support/ajax_test_environment.rb +26 -0
- data/features/support/url_helper.rb +1 -0
- data/features/table.feature +2 -1
- data/features/table_cell.feature +2 -1
- data/features/text_area.feature +2 -1
- data/features/text_field.feature +7 -1
- data/features/unordered_list.feature +2 -1
- data/lib/druid.rb +39 -1
- data/lib/druid/accessors.rb +230 -82
- data/lib/druid/elements/element.rb +7 -1
- data/lib/druid/elements/ordered_list.rb +18 -3
- data/lib/druid/elements/select_list.rb +24 -0
- data/lib/druid/elements/text_area.rb +1 -1
- data/lib/druid/elements/text_field.rb +4 -0
- data/lib/druid/elements/unordered_list.rb +18 -3
- data/lib/druid/javascript/jquery.rb +12 -0
- data/lib/druid/javascript/prototype.rb +12 -0
- data/lib/druid/javascript_framework_facade.rb +72 -0
- data/lib/druid/version.rb +1 -1
- data/spec/druid/druid_spec.rb +18 -3
- data/spec/druid/elements/element_spec.rb +5 -0
- data/spec/druid/elements/ordered_list_spec.rb +12 -4
- data/spec/druid/elements/select_list_spec.rb +17 -0
- data/spec/druid/elements/text_area_spec.rb +1 -1
- data/spec/druid/elements/text_field_spec.rb +5 -0
- data/spec/druid/elements/unordered_list_spec.rb +12 -4
- data/spec/druid/javascript_framework_facade_spec.rb +59 -0
- metadata +36 -1
data/lib/druid/accessors.rb
CHANGED
@@ -56,13 +56,15 @@ module Druid
|
|
56
56
|
frame << {iframe: identifier}
|
57
57
|
block.call(frame)
|
58
58
|
end
|
59
|
+
|
59
60
|
#
|
60
|
-
#
|
61
|
-
# to return a
|
61
|
+
# adds three methods - one to select a link, another
|
62
|
+
# to return a PageObject::Elements::Link object representing
|
63
|
+
# the link, and another that checks the link's existence.
|
62
64
|
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
# methods
|
65
|
+
# @example
|
66
|
+
# link(:add_to_cart, :text => "Add to Cart")
|
67
|
+
# # will generate 'add_to_cart', 'add_to_cart_element', and 'add_to_cart?' methods
|
66
68
|
#
|
67
69
|
# @param the name used for the generated methods
|
68
70
|
# @param identifier how we find a link. The valid values are:
|
@@ -85,16 +87,22 @@ module Druid
|
|
85
87
|
link_for(identifier.clone)
|
86
88
|
# block ? call_block(&block) : link_for(identifier.clone)
|
87
89
|
end
|
90
|
+
define_method("#{name}?") do
|
91
|
+
return call_block(&block) if block_given?
|
92
|
+
link_for(identifier.clone).exist?
|
93
|
+
end
|
88
94
|
alias_method "#{name}_link".to_sym, "#{name}_element".to_sym
|
89
95
|
end
|
90
96
|
|
91
97
|
#
|
92
|
-
# adds
|
93
|
-
# another to retrieve text from a text field
|
94
|
-
# field element.
|
98
|
+
# adds four methods to the page object - one to set text in a text field,
|
99
|
+
# another to retrieve text from a text field, another to return the text
|
100
|
+
# field element, another to check the text field's existence.
|
95
101
|
#
|
96
|
-
#
|
97
|
-
#
|
102
|
+
# @example
|
103
|
+
# text_field(:first_name, :id => "first_name")
|
104
|
+
# # will generate 'first_name', 'first_name=', 'first_name_element',
|
105
|
+
# # 'first_name?' methods
|
98
106
|
#
|
99
107
|
# @param the name used for the generated methods
|
100
108
|
# @param identifier how we find a text_field. The valid values are:
|
@@ -121,16 +129,23 @@ module Druid
|
|
121
129
|
text_field_for(identifier.clone)
|
122
130
|
# block ? call_block(&block) : text_field_for(identifier.clone)
|
123
131
|
end
|
132
|
+
define_method("#{name}?") do
|
133
|
+
return call_block(&block) if block_given?
|
134
|
+
text_field_for(identifier.clone).exist?
|
135
|
+
end
|
124
136
|
alias_method "#{name}_text_field".to_sym, "#{name}_element".to_sym
|
125
137
|
end
|
138
|
+
|
126
139
|
#
|
127
|
-
# adds
|
128
|
-
# to return the state of a checkbox,
|
129
|
-
# a checkbox
|
140
|
+
# adds five methods - one to check, another to uncheck, another
|
141
|
+
# to return the state of a checkbox, another to return
|
142
|
+
# a PageObject::Elements::CheckBox object representing the checkbox, and
|
143
|
+
# a final method to check the checkbox's existence.
|
130
144
|
#
|
131
|
-
#
|
132
|
-
#
|
133
|
-
# '
|
145
|
+
# @example
|
146
|
+
# checkbox(:active, :name => "is_active")
|
147
|
+
# # will generate 'check_active', 'uncheck_active', 'active_checked?',
|
148
|
+
# # 'active_element', and 'active?' methods
|
134
149
|
#
|
135
150
|
# @param the name used for the generated methods
|
136
151
|
# @param identifier how we find a checkbox. The valid values are:
|
@@ -159,15 +174,22 @@ module Druid
|
|
159
174
|
checkbox_for(identifier.clone)
|
160
175
|
# block ? call_block(&block) : checkbox_for(identifier.clone)
|
161
176
|
end
|
177
|
+
define_method("#{name}?") do
|
178
|
+
return call_block(&block) if block_given?
|
179
|
+
checkbox_for(identifier.clone).exist?
|
180
|
+
end
|
162
181
|
alias_method "#{name}_checkbox".to_sym, "#{name}_element".to_sym
|
163
182
|
end
|
183
|
+
|
164
184
|
#
|
165
|
-
# adds
|
166
|
-
# another to fetch the currently selected item
|
167
|
-
# to retrieve the select list element
|
185
|
+
# adds four methods - one to select an item in a drop-down,
|
186
|
+
# another to fetch the currently selected item, another
|
187
|
+
# to retrieve the select list element, and another to check the
|
188
|
+
# drop down's existence.
|
168
189
|
#
|
169
|
-
#
|
170
|
-
#
|
190
|
+
# @example
|
191
|
+
# select_list(:state, :id => "state")
|
192
|
+
# # will generate 'state', 'state=', 'state_element', 'state?' methods
|
171
193
|
#
|
172
194
|
# @param the name used for the generated methods
|
173
195
|
# @param identifier how we find a select_list. The valid values are:
|
@@ -191,16 +213,24 @@ module Druid
|
|
191
213
|
select_list_for(identifier.clone)
|
192
214
|
# block ? call_block(&block) : select_list_for(identifier.clone)
|
193
215
|
end
|
216
|
+
define_method("#{name}?") do
|
217
|
+
return call_block(&block) if block_given?
|
218
|
+
select_list_for(identifier.clone).exist?
|
219
|
+
end
|
194
220
|
alias_method "#{name}_select_list".to_sym, "#{name}_element".to_sym
|
195
221
|
end
|
222
|
+
|
196
223
|
#
|
197
|
-
# adds
|
198
|
-
# another to return if a radio button is selected,
|
199
|
-
# another method to return a
|
224
|
+
# adds five methods - one to select, another to clear,
|
225
|
+
# another to return if a radio button is selected,
|
226
|
+
# another method to return a PageObject::Elements::RadioButton
|
227
|
+
# object representing the radio button element, and another to check
|
228
|
+
# the radio button's existence.
|
200
229
|
#
|
201
|
-
#
|
202
|
-
#
|
203
|
-
# '
|
230
|
+
# @example
|
231
|
+
# radio_button(:north, :id => "north")
|
232
|
+
# # will generate 'select_north', 'clear_north', 'north_selected?',
|
233
|
+
# # 'north_element', and 'north?' methods
|
204
234
|
#
|
205
235
|
# @param the name used for the generated methods
|
206
236
|
# @param identifier how we find a radio_button. The valid values are:
|
@@ -229,14 +259,20 @@ module Druid
|
|
229
259
|
radio_button_for(identifier.clone)
|
230
260
|
# block ? call_block(&block) : radio_button_for(identifier.clone)
|
231
261
|
end
|
262
|
+
define_method("#{name}?") do
|
263
|
+
return call_block(&block) if block_given?
|
264
|
+
radio_button_for(identifier.clone).exist?
|
265
|
+
end
|
232
266
|
alias_method "#{name}_radio_button".to_sym, "#{name}_element".to_sym
|
233
267
|
end
|
268
|
+
|
234
269
|
#
|
235
|
-
# adds
|
236
|
-
# return the button element.
|
270
|
+
# adds three methods - one to click a button, another to
|
271
|
+
# return the button element, and another to check the button's existence.
|
237
272
|
#
|
238
|
-
#
|
239
|
-
#
|
273
|
+
# @example
|
274
|
+
# button(:purchase, :id => 'purchase')
|
275
|
+
# # will generate 'purchase', 'purchase_element', and 'purchase?' methods
|
240
276
|
#
|
241
277
|
# @param the name used for the generated methods
|
242
278
|
# @param identifier how we find a button. The valid values are:
|
@@ -259,14 +295,20 @@ module Druid
|
|
259
295
|
button_for(identifier.clone)
|
260
296
|
# block ? call_block(&block) : button_for(identifier.clone)
|
261
297
|
end
|
298
|
+
define_method("#{name}?") do
|
299
|
+
return call_block(&block) if block_given?
|
300
|
+
button_for(identifier.clone).exist?
|
301
|
+
end
|
262
302
|
alias_method "#{name}_button".to_sym, "#{name}_element".to_sym
|
263
303
|
end
|
304
|
+
|
264
305
|
#
|
265
|
-
# adds
|
266
|
-
# and another to
|
306
|
+
# adds three methods - one to retrieve the text from a div,
|
307
|
+
# another to return the div element, and another to check the div's existence.
|
267
308
|
#
|
268
|
-
#
|
269
|
-
#
|
309
|
+
# @example
|
310
|
+
# div(:message, :id => 'message')
|
311
|
+
# # will generate 'message', 'message_element', and 'message?' methods
|
270
312
|
#
|
271
313
|
# @param the name used for the generated methods
|
272
314
|
# @param identifier how we find a div. The valid values are:
|
@@ -288,13 +330,20 @@ module Druid
|
|
288
330
|
div_for(identifier.clone)
|
289
331
|
# block ? call_block(&block) : div_for(identifier.clone)
|
290
332
|
end
|
333
|
+
define_method("#{name}?") do
|
334
|
+
return call_block(&block) if block_given?
|
335
|
+
div_for(identifier.clone).exist?
|
336
|
+
end
|
291
337
|
alias_method "#{name}_div".to_sym, "#{name}_element".to_sym
|
292
338
|
end
|
339
|
+
|
293
340
|
#
|
294
|
-
# adds
|
341
|
+
# adds two methods - one to retrieve the table element, and another to
|
342
|
+
# check the table's existence.
|
295
343
|
#
|
296
|
-
#
|
297
|
-
#
|
344
|
+
# @example
|
345
|
+
# table(:cart, :id => 'shopping_cart')
|
346
|
+
# # will generate a 'cart_element' and 'cart?' method
|
298
347
|
#
|
299
348
|
# @param the name used for the generated methods
|
300
349
|
# @param identifier how we find a table. The valid values are:
|
@@ -310,14 +359,21 @@ module Druid
|
|
310
359
|
table_for(identifier.clone)
|
311
360
|
# block ? call_block(&block) : table_for(identifier.clone)
|
312
361
|
end
|
362
|
+
define_method("#{name}?") do
|
363
|
+
return call_block(&block) if block_given?
|
364
|
+
table_for(identifier.clone).exist?
|
365
|
+
end
|
313
366
|
alias_method "#{name}_table".to_sym, "#{name}_element".to_sym
|
314
367
|
end
|
368
|
+
|
315
369
|
#
|
316
|
-
# adds
|
317
|
-
#
|
370
|
+
# adds three methods - one to retrieve the text from a table cell,
|
371
|
+
# another to return the table cell element, and another to check the cell's
|
372
|
+
# existence.
|
318
373
|
#
|
319
|
-
#
|
320
|
-
#
|
374
|
+
# @example
|
375
|
+
# cell(:total, :id => 'total_cell')
|
376
|
+
# # will generate 'total', 'total_element', and 'total?' methods
|
321
377
|
#
|
322
378
|
# @param the name used for the generated methods
|
323
379
|
# @param identifier how we find a cell. The valid values are:
|
@@ -338,14 +394,20 @@ module Druid
|
|
338
394
|
cell_for(identifier.clone)
|
339
395
|
# block ? call_block(&block) : cell_for(identifier.clone)
|
340
396
|
end
|
397
|
+
define_method("#{name}?") do
|
398
|
+
return call_block(&block) if block_given?
|
399
|
+
cell_for(identifier.clone).exist?
|
400
|
+
end
|
341
401
|
alias_method "#{name}_cell".to_sym, "#{name}_element".to_sym
|
342
402
|
end
|
403
|
+
|
343
404
|
#
|
344
|
-
# adds
|
345
|
-
# and another to
|
405
|
+
# adds three methods - one to retrieve the text from a span,
|
406
|
+
# another to return the span element, and another to check the span's existence.
|
346
407
|
#
|
347
|
-
#
|
348
|
-
#
|
408
|
+
# @example
|
409
|
+
# span(:alert, :id => 'alert')
|
410
|
+
# # will generate 'alert', 'alert_element', and 'alert?' methods
|
349
411
|
#
|
350
412
|
# @param the name used for the generated methods
|
351
413
|
# @param identifier how we find a span. The valid values are:
|
@@ -366,13 +428,20 @@ module Druid
|
|
366
428
|
span_for(identifier.clone)
|
367
429
|
# block ? call_block(&block) : span_for(identifier.clone)
|
368
430
|
end
|
431
|
+
define_method("#{name}?") do
|
432
|
+
return call_block(&block) if block_given?
|
433
|
+
span_for(identifier.clone).exist?
|
434
|
+
end
|
369
435
|
alias_method "#{name}_span".to_sym, "#{name}_element".to_sym
|
370
436
|
end
|
437
|
+
|
371
438
|
#
|
372
|
-
# adds
|
439
|
+
# adds two methods - one to retrieve the image element, and another to
|
440
|
+
# check the image's existence.
|
373
441
|
#
|
374
|
-
#
|
375
|
-
#
|
442
|
+
# @example
|
443
|
+
# image(:logo, :id => 'logo')
|
444
|
+
# # will generate 'logo_element' and 'logo?' methods
|
376
445
|
#
|
377
446
|
# @param the name used for the generated methods
|
378
447
|
# @param identifier how we find a image. The valid values are:
|
@@ -390,14 +459,20 @@ module Druid
|
|
390
459
|
image_for(identifier.clone)
|
391
460
|
# block ? call_block(&block) : image_for(identifier.clone)
|
392
461
|
end
|
462
|
+
define_method("#{name}?") do
|
463
|
+
return call_block(&block) if block_given?
|
464
|
+
image_for(identifier.clone).exist?
|
465
|
+
end
|
393
466
|
alias_method "#{name}_image".to_sym, "#{name}_element".to_sym
|
394
467
|
end
|
468
|
+
|
395
469
|
#
|
396
|
-
# adds
|
470
|
+
# adds two methods - one to retrieve the form element, and another to
|
471
|
+
# check the form's existence.
|
397
472
|
#
|
398
473
|
# @example
|
399
474
|
# form(:login, :id => 'login')
|
400
|
-
# # will generate
|
475
|
+
# # will generate 'login_element' and 'login?' methods
|
401
476
|
#
|
402
477
|
# @param [String] the name used for the generated methods
|
403
478
|
# @param [Hash] identifier how we find a form. The valid keys are:
|
@@ -414,15 +489,21 @@ module Druid
|
|
414
489
|
form_for(identifier.clone)
|
415
490
|
# block ? call_block(&block) : form_for(identifier.clone)
|
416
491
|
end
|
492
|
+
define_method("#{name}?") do
|
493
|
+
return call_block(&block) if block_given?
|
494
|
+
form_for(identifier.clone).exist?
|
495
|
+
end
|
417
496
|
alias_method "#{name}_form".to_sym, "#{name}_element".to_sym
|
418
497
|
end
|
498
|
+
|
419
499
|
#
|
420
|
-
# adds
|
421
|
-
#
|
500
|
+
# adds three methods to the page object - one to get the text from a hidden field,
|
501
|
+
# another to retrieve the hidden field element, and another to check the hidden
|
502
|
+
# field's existence.
|
422
503
|
#
|
423
504
|
# @example
|
424
505
|
# hidden_field(:user_id, :id => "user_identity")
|
425
|
-
# # will generate 'user_id' and '
|
506
|
+
# # will generate 'user_id', 'user_id_element' and 'user_id?' methods
|
426
507
|
#
|
427
508
|
# @param [String] the name used for the generated methods
|
428
509
|
# @param [Hash] identifier how we find a hidden field. The valid keys are:
|
@@ -446,15 +527,21 @@ module Druid
|
|
446
527
|
return hidden_field_value_for identifier.clone unless block_given?
|
447
528
|
self.send("#{name}_element").value
|
448
529
|
end
|
530
|
+
define_method("#{name}?") do
|
531
|
+
return call_block(&block) if block_given?
|
532
|
+
hidden_field_for(identifier.clone).exist?
|
533
|
+
end
|
449
534
|
alias_method "#{name}_hidden_field".to_sym, "#{name}_element".to_sym
|
450
535
|
end
|
536
|
+
|
451
537
|
#
|
452
|
-
# adds
|
453
|
-
#
|
538
|
+
# adds three methods - one to retrieve the text from a list item,
|
539
|
+
# another to return the list item element, and another to check the list item's
|
540
|
+
# existence.
|
454
541
|
#
|
455
542
|
# @example
|
456
543
|
# list_item(:item_one, :id => 'one')
|
457
|
-
# # will generate 'item_one' and '
|
544
|
+
# # will generate 'item_one', 'item_one_element', and 'item_one?' methods
|
458
545
|
#
|
459
546
|
# @param [String] the name used for the generated methods
|
460
547
|
# @param [Hash] identifier how we find a list item. The valid keys are:
|
@@ -474,14 +561,20 @@ module Druid
|
|
474
561
|
list_item_for(identifier.clone)
|
475
562
|
# block ? call_block(&block) : list_item_for(identifier.clone)
|
476
563
|
end
|
564
|
+
define_method("#{name}?") do
|
565
|
+
return call_block(&block) if block_given?
|
566
|
+
list_item_for(identifier.clone).exist?
|
567
|
+
end
|
477
568
|
alias_method "#{name}_list_item".to_sym, "#{name}_element".to_sym
|
478
569
|
end
|
570
|
+
|
479
571
|
#
|
480
|
-
# adds
|
572
|
+
# adds two methods - one to retrieve the ordered list element, and another to
|
573
|
+
# test it's existence.
|
481
574
|
#
|
482
575
|
# @example
|
483
576
|
# ordered_list(:top_five, :id => 'top')
|
484
|
-
# # will generate
|
577
|
+
# # will generate 'top_five_element' and 'top_five?' methods
|
485
578
|
#
|
486
579
|
# @param [String] the name used for the generated methods
|
487
580
|
# @param [Hash] identifier how we find an ordered list. The valid keys are:
|
@@ -497,16 +590,22 @@ module Druid
|
|
497
590
|
ordered_list_for(identifier.clone)
|
498
591
|
# block ? call_block(&block) : ordered_list_for(identifier.clone)
|
499
592
|
end
|
593
|
+
define_method("#{name}?") do
|
594
|
+
return call_block(&block) if block_given?
|
595
|
+
ordered_list_for(identifier.clone).exist?
|
596
|
+
end
|
500
597
|
alias_method "#{name}_ordered_list".to_sym, "#{name}_element".to_sym
|
501
598
|
end
|
599
|
+
|
502
600
|
#
|
503
|
-
# adds
|
504
|
-
# another to retrieve text from a text area
|
505
|
-
# area element.
|
601
|
+
# adds four methods to the page object - one to set text in a text area,
|
602
|
+
# another to retrieve text from a text area, another to return the text
|
603
|
+
# area element, and another to check the text area's existence.
|
506
604
|
#
|
507
605
|
# @example
|
508
606
|
# text_area(:address, :id => "address")
|
509
|
-
# # will generate 'address', 'address='
|
607
|
+
# # will generate 'address', 'address=', 'address_element',
|
608
|
+
# # 'address?' methods
|
510
609
|
#
|
511
610
|
# @param [String] the name used for the generated methods
|
512
611
|
# @param [Hash] identifier how we find a text area. The valid keys are:
|
@@ -532,14 +631,20 @@ module Druid
|
|
532
631
|
text_area_for(identifier.clone)
|
533
632
|
# block ? call_block(&block) : text_area_for(identifier.clone)
|
534
633
|
end
|
634
|
+
define_method("#{name}?") do
|
635
|
+
return call_block(&block) if block_given?
|
636
|
+
text_area_for(identifier.clone).exist?
|
637
|
+
end
|
535
638
|
alias_method "#{name}_text_area".to_sym, "#{name}_element".to_sym
|
536
639
|
end
|
640
|
+
|
537
641
|
#
|
538
|
-
# adds
|
642
|
+
# adds two methods - one to retrieve the unordered list element, and another to
|
643
|
+
# check it's existence.
|
539
644
|
#
|
540
645
|
# @example
|
541
646
|
# unordered_list(:menu, :id => 'main_menu')
|
542
|
-
# # will generate
|
647
|
+
# # will generate 'menu_element' and 'menu?' methods
|
543
648
|
#
|
544
649
|
# @param [String] the name used for the generated methods
|
545
650
|
# @param [Hash] identifier how we find an unordered list. The valid keys are:
|
@@ -555,15 +660,20 @@ module Druid
|
|
555
660
|
unordered_list_for(identifier.clone)
|
556
661
|
# block ? call_block(&block) : unordered_list_for(identifier.clone)
|
557
662
|
end
|
663
|
+
define_method("#{name}?") do
|
664
|
+
return call_block(&block) if block_given?
|
665
|
+
unordered_list_for(identifier.clone).exist?
|
666
|
+
end
|
558
667
|
alias_method "#{name}_unordered_list".to_sym, "#{name}_element".to_sym
|
559
668
|
end
|
560
669
|
|
561
670
|
#
|
562
|
-
# adds
|
671
|
+
# adds three methods - one to retrieve the text of a h1 element, another to
|
672
|
+
# retrieve a h1 element, and another to check for it's existence.
|
563
673
|
#
|
564
674
|
# @example
|
565
675
|
# h1(:title, :id => 'title')
|
566
|
-
# # will generate
|
676
|
+
# # will generate 'title', 'title_element', and 'title?' methods
|
567
677
|
#
|
568
678
|
# @param [String] the name used for the generated methods
|
569
679
|
# @param [Hash] identifier how we find a H1. You can use a multiple paramaters
|
@@ -584,15 +694,20 @@ module Druid
|
|
584
694
|
return call_block(&block) if block_given?
|
585
695
|
h1_for(identifier.clone)
|
586
696
|
end
|
697
|
+
define_method("#{name}?") do
|
698
|
+
return call_block(&block) if block_given?
|
699
|
+
h1_for(identifier.clone).exist?
|
700
|
+
end
|
587
701
|
alias_method "#{name}_h1".to_sym, "#{name}_element".to_sym
|
588
702
|
end
|
589
703
|
|
590
704
|
#
|
591
|
-
# adds
|
705
|
+
# adds three methods - one to retrieve the text of a h2 element, another
|
706
|
+
# to retrieve a h2 element, and another to check for it's existence.
|
592
707
|
#
|
593
708
|
# @example
|
594
709
|
# h2(:title, :id => 'title')
|
595
|
-
# # will generate
|
710
|
+
# # will generate 'title', 'title_element', and 'title?' methods
|
596
711
|
#
|
597
712
|
# @param [String] the name used for the generated methods
|
598
713
|
# @param [Hash] identifier how we find a H2. You can use a multiple paramaters
|
@@ -613,15 +728,20 @@ module Druid
|
|
613
728
|
return call_block(&block) if block_given?
|
614
729
|
h2_for(identifier.clone)
|
615
730
|
end
|
731
|
+
define_method("#{name}?") do
|
732
|
+
return call_block(&block) if block_given?
|
733
|
+
h2_for(identifier.clone).exist?
|
734
|
+
end
|
616
735
|
alias_method "#{name}_h2".to_sym, "#{name}_element".to_sym
|
617
736
|
end
|
618
737
|
|
619
738
|
#
|
620
|
-
# adds
|
739
|
+
# adds three methods - one to retrieve the text of a h3 element,
|
740
|
+
# another to return a h3 element, and another to check for it's existence.
|
621
741
|
#
|
622
742
|
# @example
|
623
743
|
# h3(:title, :id => 'title')
|
624
|
-
# # will generate
|
744
|
+
# # will generate 'title', 'title_element', and 'title?' methods
|
625
745
|
#
|
626
746
|
# @param [String] the name used for the generated methods
|
627
747
|
# @param [Hash] identifier how we find a H3. You can use a multiple paramaters
|
@@ -642,15 +762,20 @@ module Druid
|
|
642
762
|
return call_block(&block) if block_given?
|
643
763
|
h3_for(identifier.clone)
|
644
764
|
end
|
765
|
+
define_method("#{name}?") do
|
766
|
+
return call_block(&block) if block_given?
|
767
|
+
h3_for(identifier.clone).exist?
|
768
|
+
end
|
645
769
|
alias_method "#{name}_h3".to_sym, "#{name}_element".to_sym
|
646
770
|
end
|
647
771
|
|
648
772
|
#
|
649
|
-
# adds
|
773
|
+
# adds three methods - one to retrieve the text of a h4 element,
|
774
|
+
# another to return a h4 element, and another to check for it's existence.
|
650
775
|
#
|
651
776
|
# @example
|
652
777
|
# h4(:title, :id => 'title')
|
653
|
-
# # will generate
|
778
|
+
# # will generate 'title', 'title_element', and 'title?' methods
|
654
779
|
#
|
655
780
|
# @param [String] the name used for the generated methods
|
656
781
|
# @param [Hash] identifier how we find a H4. You can use a multiple paramaters
|
@@ -671,15 +796,20 @@ module Druid
|
|
671
796
|
return call_block(&block) if block_given?
|
672
797
|
h4_for(identifier.clone)
|
673
798
|
end
|
799
|
+
define_method("#{name}?") do
|
800
|
+
return call_block(&block) if block_given?
|
801
|
+
h4_for(identifier.clone).exist?
|
802
|
+
end
|
674
803
|
alias_method "#{name}_h4".to_sym, "#{name}_element".to_sym
|
675
804
|
end
|
676
805
|
|
677
806
|
#
|
678
|
-
# adds
|
807
|
+
# adds three methods - one to retrieve the text of a h5 element,
|
808
|
+
# another to return a h5 element, and another to check for it's existence.
|
679
809
|
#
|
680
810
|
# @example
|
681
811
|
# h5(:title, :id => 'title')
|
682
|
-
# # will generate
|
812
|
+
# # will generate 'title', 'title_element', and 'title?' methods
|
683
813
|
#
|
684
814
|
# @param [String] the name used for the generated methods
|
685
815
|
# @param [Hash] identifier how we find a H5. You can use a multiple paramaters
|
@@ -700,15 +830,20 @@ module Druid
|
|
700
830
|
return call_block(&block) if block_given?
|
701
831
|
h5_for(identifier.clone)
|
702
832
|
end
|
833
|
+
define_method("#{name}?") do
|
834
|
+
return call_block(&block) if block_given?
|
835
|
+
h5_for(identifier.clone).exist?
|
836
|
+
end
|
703
837
|
alias_method "#{name}_h5".to_sym, "#{name}_element".to_sym
|
704
838
|
end
|
705
839
|
|
706
840
|
#
|
707
|
-
# adds
|
841
|
+
# adds three methods - one to retrieve the text of a h6 element,
|
842
|
+
# another to return a h6 element, and another to check for it's existence.
|
708
843
|
#
|
709
844
|
# @example
|
710
845
|
# h6(:title, :id => 'title')
|
711
|
-
# # will generate
|
846
|
+
# # will generate 'title', 'title_element', and 'title?' methods
|
712
847
|
#
|
713
848
|
# @param [String] the name used for the generated methods
|
714
849
|
# @param [Hash] identifier how we find a H6. You can use a multiple paramaters
|
@@ -729,15 +864,20 @@ module Druid
|
|
729
864
|
return call_block(&block) if block_given?
|
730
865
|
h6_for(identifier.clone)
|
731
866
|
end
|
867
|
+
define_method("#{name}?") do
|
868
|
+
return call_block(&block) if block_given?
|
869
|
+
h6_for(identifier.clone).exist?
|
870
|
+
end
|
732
871
|
alias_method "#{name}_h6".to_sym, "#{name}_element".to_sym
|
733
872
|
end
|
734
873
|
|
735
874
|
#
|
736
|
-
# adds
|
875
|
+
# adds three methods - one to retrieve the text of a paragraph, another
|
876
|
+
# to retrieve a paragraph element, and another to check the paragraph's existence.
|
737
877
|
#
|
738
878
|
# @example
|
739
879
|
# paragraph(:title, :id => 'title')
|
740
|
-
# # will generate
|
880
|
+
# # will generate 'title', 'title_element', and 'title?' methods
|
741
881
|
#
|
742
882
|
# @param [String] the name used for the generated methods
|
743
883
|
# @param [Hash] identifier how we find a paragraph. You can use a multiple paramaters
|
@@ -758,16 +898,20 @@ module Druid
|
|
758
898
|
return call_block(&block) if block_given?
|
759
899
|
paragraph_for(identifier.clone)
|
760
900
|
end
|
901
|
+
define_method("#{name}?") do
|
902
|
+
return call_block(&block) if block_given?
|
903
|
+
paragraph_for(identifier.clone).exist?
|
904
|
+
end
|
761
905
|
alias_method "#{name}_paragraph".to_sym, "#{name}_element".to_sym
|
762
906
|
end
|
763
907
|
|
764
908
|
#
|
765
|
-
# adds
|
766
|
-
# the file field element
|
909
|
+
# adds three methods - one to set the file for a file field, another to retrieve
|
910
|
+
# the file field element, and another to check it's existence.
|
767
911
|
#
|
768
912
|
# @example
|
769
913
|
# file_field(:the_file, :id => 'file_to_upload')
|
770
|
-
# # will generate
|
914
|
+
# # will generate 'the_file=', 'the_file_element', and 'the_file?' methods
|
771
915
|
#
|
772
916
|
# @param [String] the name used for the generated methods
|
773
917
|
# @param [Hash] identifier how we find a file_field. You can use a multiple paramaters
|
@@ -789,6 +933,10 @@ module Druid
|
|
789
933
|
return call_block(&block) if block_given?
|
790
934
|
file_field_for(identifier.clone)
|
791
935
|
end
|
936
|
+
define_method("#{name}?") do
|
937
|
+
return call_block(&block) if block_given?
|
938
|
+
file_field_for(identifier.clone).exist?
|
939
|
+
end
|
792
940
|
end
|
793
941
|
end
|
794
942
|
end
|