druid-ts 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|