mack-javascript 0.8.3 → 0.8.3.1

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.
@@ -41,7 +41,7 @@ module Mack
41
41
 
42
42
  if options[:method] && options[:method].to_sym == :put || options[:method] == :delete
43
43
  js_options['data'] = append_ajax_data(js_options['data'], "_method=#{options[:method]}")
44
- end
44
+ end
45
45
 
46
46
  if js_options['type'] == "'post'" && options[:authenticity_token]
47
47
  js_options['data'] = append_ajax_data(js_options['data'], "__authenticity_token=#{options.delete(:authenticity_token)}")
@@ -52,11 +52,11 @@ module Mack
52
52
 
53
53
  def append_ajax_data(data, new_data)
54
54
  if data
55
- data << " + '&"
56
- else
57
- data = "'"
58
- end
59
- data << "#{new_data}'"
55
+ data << " + '&"
56
+ else
57
+ data = "'"
58
+ end
59
+ data << "#{new_data}'"
60
60
  end
61
61
 
62
62
  def options_for_javascript(options)
@@ -127,12 +127,12 @@ module Mack
127
127
  # page.select('.rakim').children would give you a collection consisting of
128
128
  # the ul element, the p element, and the div with id 'technique'
129
129
  def children
130
- add "children()"
130
+ add "children()"
131
131
  end
132
132
 
133
133
  # returns a collection of the immediate parent of each selected element
134
- def parent
135
- add "parent()"
134
+ def parent
135
+ add "parent()"
136
136
  end
137
137
 
138
138
  # returns a collection of every parent up the chain to the root of the document
@@ -154,38 +154,38 @@ module Mack
154
154
  # of both divs and the ul.
155
155
  # page.select('#featuring').ancestors('#long_live') will give you the div with
156
156
  # id 'long_live'
157
- def ancestors(selector = nil)
158
- add "parents(#{optional_selector(selector)})"
157
+ def ancestors(selector = nil)
158
+ add "parents(#{optional_selector(selector)})"
159
159
  end
160
160
 
161
161
  # gets all siblings for each element selected
162
162
  # Takes an optional selector as an argument
163
- def siblings(selector = nil)
164
- add "siblings(#{optional_selector(selector)})"
163
+ def siblings(selector = nil)
164
+ add "siblings(#{optional_selector(selector)})"
165
165
  end
166
166
 
167
167
  # gets the next immediate sibling for each element selected
168
168
  # Takes an optional selector as an argument
169
- def next(selector = nil)
170
- add "next(#{optional_selector(selector)})"
169
+ def next(selector = nil)
170
+ add "next(#{optional_selector(selector)})"
171
171
  end
172
172
 
173
173
  # gets the previous immediate sibling for each element selected
174
174
  # Takes an optional selector as an argument
175
- def previous(selector = nil)
176
- add "prev(#{optional_selector(selector)})"
175
+ def previous(selector = nil)
176
+ add "prev(#{optional_selector(selector)})"
177
177
  end
178
178
 
179
179
  # gets every next sibling for each element selected
180
180
  # Takes an optional selector as an argument
181
- def all_next(selector = nil)
182
- add "nextAll(#{optional_selector(selector)})"
181
+ def all_next(selector = nil)
182
+ add "nextAll(#{optional_selector(selector)})"
183
183
  end
184
184
 
185
185
  # gets every previous sibling for each element selected
186
186
  # Takes an optional selector as an argument
187
- def all_previous(selector = nil)
188
- add "prevAll(#{optional_selector(selector)})"
187
+ def all_previous(selector = nil)
188
+ add "prevAll(#{optional_selector(selector)})"
189
189
  end
190
190
 
191
191
 
@@ -200,8 +200,8 @@ module Mack
200
200
 
201
201
 
202
202
  def remove_class(klass = '')
203
- add "removeClass('#{klass}')"
204
- end
203
+ add "removeClass('#{klass}')"
204
+ end
205
205
 
206
206
  def set_attribute(name, value)
207
207
  value = "'#{value}'" if value.is_a? String
@@ -209,17 +209,17 @@ module Mack
209
209
  end
210
210
 
211
211
  def remove_attribute(name)
212
- add "removeAttr('#{name}')"
213
- end
212
+ add "removeAttr('#{name}')"
213
+ end
214
214
 
215
215
 
216
216
 
217
217
 
218
- #-- DOM Manipulation --#
218
+ #-- DOM Manipulation --#
219
219
 
220
220
  # inserts html into the selected place for the specfied elemets
221
221
  #
222
- # +position+ may be one of:
222
+ # +position+ may be one of:
223
223
  #
224
224
  # <tt>:top</tt>:: HTML is inserted inside the element, before the
225
225
  # element's existing content.
@@ -264,7 +264,7 @@ module Mack
264
264
  #
265
265
  # Tip: use this with a partial containing your html:
266
266
  # page.select('.rakim').insert(:before, render(:partial, 'the_r', :format => :html))
267
- def insert(position, html)
267
+ def insert(position, html)
268
268
  position = {:bottom => 'append', :top => 'prepend'}[position.to_sym] || position.to_s
269
269
  add "#{position}('#{escape_javascript(html)}')"
270
270
  end
@@ -318,7 +318,7 @@ module Mack
318
318
 
319
319
 
320
320
 
321
- #-- Effects --#
321
+ #-- Effects --#
322
322
  #
323
323
  # All five effects methods in JquerySelector (morph, effect, show, hide, toggle)
324
324
  # take the same options hash. This can consist of:
@@ -338,79 +338,79 @@ module Mack
338
338
  # http://www.robertpenner.com/easing/easing_demo.html
339
339
  #
340
340
  # The full list of jquery easing options:
341
- # linear, swing, easeInQuad, easeOutQuad, easeInOutQuad, easeInCubic, easeOutCubic,
342
- # easeInOutCubic, easeInQuart, easeOutQuart, easeInOutQuart, easeInQuint, easeOutQuint,
343
- # easeInOutQuint, easeInSine, easeOutSine, easeInOutSine, easeInExpo, easeOutExpo,
344
- # easeInOutExpo, easeInCirc, easeOutCirc, easeInOutCirc, easeInElastic, easeOutElastic,
345
- # easeInOutElastic, easeInBack, easeOutBack, easeInOutBack, easeInBounce, easeOutBounce,
346
- # easeInOutBounce:
347
- #
348
- # --Callback--
349
- #
350
- # this is a function that will get called when your effect is done. You can use
351
- # page.function to build it. Note: This function gets called for each element selected.
352
- # For instance, in the following example, if there are 10 elements with the class 'rakim'
353
- # then the function will be called 10 times. If you want to target each of the 10 elements
354
- # in the callback function, use page.select('this')
355
- #
356
- # func = page.function.body do |p|
341
+ # linear, swing, easeInQuad, easeOutQuad, easeInOutQuad, easeInCubic, easeOutCubic,
342
+ # easeInOutCubic, easeInQuart, easeOutQuart, easeInOutQuart, easeInQuint, easeOutQuint,
343
+ # easeInOutQuint, easeInSine, easeOutSine, easeInOutSine, easeInExpo, easeOutExpo,
344
+ # easeInOutExpo, easeInCirc, easeOutCirc, easeInOutCirc, easeInElastic, easeOutElastic,
345
+ # easeInOutElastic, easeInBack, easeOutBack, easeInOutBack, easeInBounce, easeOutBounce,
346
+ # easeInOutBounce:
347
+ #
348
+ # --Callback--
349
+ #
350
+ # this is a function that will get called when your effect is done. You can use
351
+ # page.function to build it. Note: This function gets called for each element selected.
352
+ # For instance, in the following example, if there are 10 elements with the class 'rakim'
353
+ # then the function will be called 10 times. If you want to target each of the 10 elements
354
+ # in the callback function, use page.select('this')
355
+ #
356
+ # func = page.function.body do |p|
357
357
  # p.select('this').insert(:top, '<h1>Cool Effects</h1>').effect(:highlight)
358
358
  # end
359
- # page.select('.rakim').effect(:slide_down, :callback => func)
360
- #
361
- # The above code will make every element with class 'rakim' slide down. When they are done
362
- # sliding, the h1 tag will be inserted in the top of each element, and each element will
363
- # be highlighted. Instead of this, you could do the following
364
- # page.select('.rakim').effect(:slide_down).insert(:top, '<h1>Cool Effects</h1>').effect(:highlight)
365
- # But this way, the insertion won't wait for the first animation to be done before occurring.
366
-
367
-
368
-
369
- # Takes a hash of css properties you want the selected elements to 'morph' into.
370
- # Say you want all elements with class rakim to transition to only having half
371
- # the opacity and having a red background, and you want the transition to last 4
372
- # seconds
373
- # page.select('.rakim').morph({:opacity => 0.5, :backgroundColor => '#f00'}, :duration => 4000)
374
- # You can see a list of css properties here http://www.w3schools.com/CSS/css_reference.asp
375
- # The properties in your hash should be camelcase: :backgroundColor instead of
376
- # background-color
377
- def morph(hsh, options = nil)
359
+ # page.select('.rakim').effect(:slide_down, :callback => func)
360
+ #
361
+ # The above code will make every element with class 'rakim' slide down. When they are done
362
+ # sliding, the h1 tag will be inserted in the top of each element, and each element will
363
+ # be highlighted. Instead of this, you could do the following
364
+ # page.select('.rakim').effect(:slide_down).insert(:top, '<h1>Cool Effects</h1>').effect(:highlight)
365
+ # But this way, the insertion won't wait for the first animation to be done before occurring.
366
+
367
+
368
+
369
+ # Takes a hash of css properties you want the selected elements to 'morph' into.
370
+ # Say you want all elements with class rakim to transition to only having half
371
+ # the opacity and having a red background, and you want the transition to last 4
372
+ # seconds
373
+ # page.select('.rakim').morph({:opacity => 0.5, :backgroundColor => '#f00'}, :duration => 4000)
374
+ # You can see a list of css properties here http://www.w3schools.com/CSS/css_reference.asp
375
+ # The properties in your hash should be camelcase: :backgroundColor instead of
376
+ # background-color
377
+ def morph(hsh, options = nil)
378
378
  options[:complete] = options.delete(:callback) if options && options[:callback]
379
379
  args = [options_for_javascript(hsh), options_for_effects(options)]
380
- add "animate(#{args.compact.join(',')})"
380
+ add "animate(#{args.compact.join(',')})"
381
381
  end
382
382
 
383
383
  #This general mapping taken from the awesome JRails plugin
384
- @@effects = {
385
- :appear => {:function => 'fadeIn'},
386
- :blind_down => {:mode => 'blind', :function => 'show', :options => {:direction => 'vertical'}},
387
- :blind_up => {:mode => 'blind', :function => 'hide', :options => {:direction => 'vertical'}},
388
- :blind_right => {:mode => 'blind', :function => 'show', :options => {:direction => 'horizontal'}},
389
- :blind_left => {:mode => 'blind', :function => 'hide', :options => {:direction => 'horizontal'}},
390
- :bounce_in => {:mode => 'bounce', :function => 'show', :options => {:direction => 'up'}},
391
- :bounce_out => {:mode => 'bounce', :function => 'hide', :options => {:direction => 'up'}},
392
- :drop_in => {:mode => 'drop', :function => 'show', :options => {:direction => 'up'}},
393
- :drop_out => {:mode => 'drop', :function => 'hide', :options => {:direction => 'down'}},
394
- :fade => {:function => 'fadeOut'},
395
- :fold_in => {:mode => 'fold', :function => 'hide'},
396
- :fold_out => {:mode => 'fold', :function => 'show'},
397
- :grow => {:mode => 'scale', :function => 'show'},
398
- :highlight => {:mode => 'highlight', :function => 'show'},
399
- :puff => {:mode => 'puff', :function => 'hide'},
400
- :pulsate => {:mode => 'pulsate', :function => 'show'},
401
- :shake => {:mode => 'shake', :function => 'show'},
402
- :shrink => {:mode => 'scale', :function => 'hide'},
403
- :slide_down => {:mode => 'slide', :function => 'show', :options => {:direction => 'up'}},
404
- :slide_up => {:mode => 'slide', :function => 'hide', :options => {:direction => 'up'}},
405
- :slide_right => {:mode => 'slide', :function => 'show', :options => {:direction => 'left'}},
406
- :slide_left => {:mode => 'slide', :function => 'hide', :options => {:direction => 'left'}},
407
- :squish => {:mode => 'scale', :function => 'hide', :options => {:origin => "['top','left']"}},
408
- :switch_on => {:mode => 'clip', :function => 'show', :options => {:direction => 'vertical'}},
409
- :switch_off => {:mode => 'clip', :function => 'hide', :options => {:direction => 'vertical'}},
410
- :toggle_appear => {:function => 'fadeToggle'},
411
- :toggle_slide => {:mode => 'slide', :function => 'toggle', :options => {:direction => 'up'}},
412
- :toggle_blind => {:mode => 'blind', :function => 'toggle', :options => {:direction => 'vertical'}},
413
- }
384
+ @@effects = {
385
+ :appear => {:function => 'fadeIn'},
386
+ :blind_down => {:mode => 'blind', :function => 'show', :options => {:direction => 'vertical'}},
387
+ :blind_up => {:mode => 'blind', :function => 'hide', :options => {:direction => 'vertical'}},
388
+ :blind_right => {:mode => 'blind', :function => 'show', :options => {:direction => 'horizontal'}},
389
+ :blind_left => {:mode => 'blind', :function => 'hide', :options => {:direction => 'horizontal'}},
390
+ :bounce_in => {:mode => 'bounce', :function => 'show', :options => {:direction => 'up'}},
391
+ :bounce_out => {:mode => 'bounce', :function => 'hide', :options => {:direction => 'up'}},
392
+ :drop_in => {:mode => 'drop', :function => 'show', :options => {:direction => 'up'}},
393
+ :drop_out => {:mode => 'drop', :function => 'hide', :options => {:direction => 'down'}},
394
+ :fade => {:function => 'fadeOut'},
395
+ :fold_in => {:mode => 'fold', :function => 'hide'},
396
+ :fold_out => {:mode => 'fold', :function => 'show'},
397
+ :grow => {:mode => 'scale', :function => 'show'},
398
+ :highlight => {:mode => 'highlight', :function => 'show'},
399
+ :puff => {:mode => 'puff', :function => 'hide'},
400
+ :pulsate => {:mode => 'pulsate', :function => 'show'},
401
+ :shake => {:mode => 'shake', :function => 'show'},
402
+ :shrink => {:mode => 'scale', :function => 'hide'},
403
+ :slide_down => {:mode => 'slide', :function => 'show', :options => {:direction => 'up'}},
404
+ :slide_up => {:mode => 'slide', :function => 'hide', :options => {:direction => 'up'}},
405
+ :slide_right => {:mode => 'slide', :function => 'show', :options => {:direction => 'left'}},
406
+ :slide_left => {:mode => 'slide', :function => 'hide', :options => {:direction => 'left'}},
407
+ :squish => {:mode => 'scale', :function => 'hide', :options => {:origin => "['top','left']"}},
408
+ :switch_on => {:mode => 'clip', :function => 'show', :options => {:direction => 'vertical'}},
409
+ :switch_off => {:mode => 'clip', :function => 'hide', :options => {:direction => 'vertical'}},
410
+ :toggle_appear => {:function => 'fadeToggle'},
411
+ :toggle_slide => {:mode => 'slide', :function => 'toggle', :options => {:direction => 'up'}},
412
+ :toggle_blind => {:mode => 'blind', :function => 'toggle', :options => {:direction => 'vertical'}},
413
+ }
414
414
 
415
415
  #custom effects. 'name' corresponds to the keys of the hash above
416
416
  def effect(name, options = nil)
@@ -463,17 +463,17 @@ module Mack
463
463
  # goes to its href url) isn't done.
464
464
  # This can also be used in conjunction with trigger to make and call custom events.
465
465
  def peep(event_name, options = {}, &block)
466
- add "bind('#{event_name}', #{event_function(options[:prevent_default], &block)})"
466
+ add "bind('#{event_name}', #{event_function(options[:prevent_default], &block)})"
467
467
  end
468
468
 
469
469
  #takes away any event listeners on the 'event_name' event fot the selected elements
470
- def stop_peeping(event_name)
471
- add "unbind('#{event_name}')"
470
+ def stop_peeping(event_name)
471
+ add "unbind('#{event_name}')"
472
472
  end
473
473
 
474
474
  # triggers the 'event_name' event on the selected elements.
475
- def trigger(event_name)
476
- add "trigger('#{event_name}')"
475
+ def trigger(event_name)
476
+ add "trigger('#{event_name}')"
477
477
  end
478
478
 
479
479
 
@@ -552,12 +552,12 @@ module Mack
552
552
  if remote_options || block_given?
553
553
  func = Mack::JavaScript::Function.new(session_id, 'ev', 'ui')
554
554
  if remote_options
555
- remote_options[:with] ||= "'id=' + $(ui.draggable).attr('id')"
556
- func << Mack::JavaScript::ScriptGenerator.new(session_id).ajax(remote_options)
557
- end
558
- func.body(&block) if block_given?
559
- options.merge!(:drop => func)
560
- end
555
+ remote_options[:with] ||= "'id=' + $(ui.draggable).attr('id')"
556
+ func << Mack::JavaScript::ScriptGenerator.new(session_id).ajax(remote_options)
557
+ end
558
+ func.body(&block) if block_given?
559
+ options.merge!(:drop => func)
560
+ end
561
561
  add "droppable(#{drag_and_drop_options(options)})"
562
562
  end
563
563
 
@@ -161,6 +161,10 @@ module Mack
161
161
  @generator.<<(".#{statement}", :add_to_last => true)
162
162
  self
163
163
  end
164
+
165
+ def to_s
166
+ @generator.to_s
167
+ end
164
168
 
165
169
  end
166
170
 
@@ -186,12 +190,10 @@ module Mack
186
190
  to_s
187
191
  end
188
192
 
189
-
190
193
  def to_s
191
194
  "function(#{@arguments.join(', ')}){#{@generator.to_s}}"
192
195
  end
193
196
 
194
-
195
197
  end
196
198
  end
197
199
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mack-javascript
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.8.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerardo Pis-Lopez
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-18 00:00:00 -05:00
12
+ date: 2009-01-27 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies: []
15
15