prototype-rails 3.2.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: de5fdd685bcac176b54714d198a16a7ec51f83e8
4
+ data.tar.gz: d0c3b9639b0dec9ff6f449447a7ab235ef928a83
5
+ SHA512:
6
+ metadata.gz: 48966e1baa5eec7734141d4dd698c4c8a881a18470ee5e28bda63dad8ec828ff93e1e510d0a39dad9cb7b5174135e68036fc4ff83395cf204d5565bfa4c76e8f
7
+ data.tar.gz: ca563e4d58dea2ef09dc7993d51b53e6399a67adf426aded6d728ac7e2b6a7ab6785a1a2a89fda44b23c1c5460713c21537eb9020531b0f83ec9f9d4beaffa53
data/Gemfile CHANGED
@@ -1,3 +1,2 @@
1
- source :rubygems
2
-
1
+ source 'https://rubygems.org'
3
2
  gemspec
data/README CHANGED
@@ -1,10 +1,9 @@
1
- prototype-rails provides Prototype, Scriptaculous, and RJS for Rails 3.1.
1
+ prototype-rails provides Prototype, Scriptaculous, and RJS on Rails 3.1
2
+ and later.
2
3
 
3
- Prototype and Scriptaculous are provided via the asset pipeline and you
4
- do *not* need to copy their files into your application. Rails will get
5
- them from prototype-rails automatically.
6
-
7
- You may want to add them to your app/assets/javascripts/application.js:
4
+ Prototype and Scriptaculous are pulled in by the asset pipeline, so you don't
5
+ need to copy the source files into your app. You may reference them in your
6
+ s app/assets/javascripts/application.js:
8
7
 
9
8
  //= require prototype
10
9
  //= require prototype_ujs
@@ -12,9 +11,7 @@ You may want to add them to your app/assets/javascripts/application.js:
12
11
  //= require dragdrop
13
12
  //= require controls
14
13
 
15
- New applications using this may also want to add
16
-
17
- config.action_view.debug_rjs = true
18
-
19
- to their config/environments/development.rb.
20
-
14
+ prototype-rails supports RJS debugging. RJS responses are wrapped to catch
15
+ exceptions, alert() them, and re-raise the exception. Debugging is disabled by
16
+ default. To enable in development, set `config.action_view.debug_rjs = true`
17
+ in config/environments/development.rb.
data/Rakefile CHANGED
@@ -3,7 +3,7 @@ require 'rake/testtask'
3
3
  task :default => :test
4
4
 
5
5
  Rake::TestTask.new do |t|
6
- t.libs << 'test'
6
+ t.libs << 'test/lib'
7
7
  t.test_files = Dir.glob('test/*_test.rb') + Dir.glob('test/{controller,template}/**/*_test.rb')
8
8
  t.warning = true
9
9
  t.verbose = true
@@ -4,6 +4,12 @@ require 'active_support/core_ext/object/blank'
4
4
  require 'active_support/core_ext/string/output_safety'
5
5
 
6
6
  module ActionView
7
+ # A string that returns itself as its JSON-encoded form.
8
+ class JsonLiteral < String
9
+ def as_json(options = nil) self end #:nodoc:
10
+ def encode_json(encoder) self end #:nodoc:
11
+ end
12
+
7
13
  # = Action View Prototype Helpers
8
14
  module Helpers
9
15
  # Prototype[http://www.prototypejs.org/] is a JavaScript library that provides
@@ -147,6 +153,7 @@ module ActionView
147
153
  class JavaScriptGenerator #:nodoc:
148
154
  def initialize(context, &block) #:nodoc:
149
155
  @context, @lines = context, []
156
+ def @lines.encoding() last.to_s.encoding end
150
157
  include_helpers_from_context
151
158
  @context.with_output_buffer(@lines) do
152
159
  @context.instance_exec(self, &block)
@@ -155,7 +162,7 @@ module ActionView
155
162
 
156
163
  private
157
164
  def include_helpers_from_context
158
- extend @context.helpers if @context.respond_to?(:helpers) && @context.helpers
165
+ extend @context.controller._helpers if @context.controller.respond_to?(:_helpers) && @context.controller._helpers
159
166
  extend GeneratorMethods
160
167
  end
161
168
 
@@ -253,14 +260,21 @@ module ActionView
253
260
  when String, Symbol, NilClass
254
261
  JavaScriptElementProxy.new(self, id)
255
262
  else
256
- JavaScriptElementProxy.new(self, ActionController::RecordIdentifier.dom_id(id))
263
+ JavaScriptElementProxy.new(self, RecordIdentifier.dom_id(id))
257
264
  end
258
265
  end
259
266
 
267
+ RecordIdentifier =
268
+ if defined? ActionView::RecordIdentifier
269
+ ActionView::RecordIdentifier
270
+ else
271
+ ActionController::RecordIdentifier
272
+ end
273
+
260
274
  # Returns an object whose <tt>to_json</tt> evaluates to +code+. Use this to pass a literal JavaScript
261
275
  # expression as an argument to another JavaScriptGenerator method.
262
276
  def literal(code)
263
- ::ActiveSupport::JSON::Variable.new(code.to_s)
277
+ JsonLiteral.new(code.to_s)
264
278
  end
265
279
 
266
280
  # Returns a collection reference by finding it through a CSS +pattern+ in the DOM. This collection can then be
@@ -517,6 +531,15 @@ module ActionView
517
531
  record "}, #{(seconds * 1000).to_i})"
518
532
  end
519
533
 
534
+ def javascript_object_for(object)
535
+ ::ActiveSupport::JSON.encode(object)
536
+ end
537
+
538
+ def arguments_for_call(arguments, block = nil)
539
+ arguments << block_to_function(block) if block
540
+ arguments.map { |argument| javascript_object_for(argument) }.join ', '
541
+ end
542
+
520
543
  private
521
544
  def loop_on_multiple_args(method, ids)
522
545
  record(ids.size>1 ?
@@ -547,7 +570,7 @@ module ActionView
547
570
 
548
571
  def with_formats(*args)
549
572
  return yield unless @context
550
-
573
+
551
574
  lookup = @context.lookup_context
552
575
  begin
553
576
  old_formats, lookup.formats = lookup.formats, args
@@ -557,15 +580,6 @@ module ActionView
557
580
  end
558
581
  end
559
582
 
560
- def javascript_object_for(object)
561
- ::ActiveSupport::JSON.encode(object)
562
- end
563
-
564
- def arguments_for_call(arguments, block = nil)
565
- arguments << block_to_function(block) if block
566
- arguments.map { |argument| javascript_object_for(argument) }.join ', '
567
- end
568
-
569
583
  def block_to_function(block)
570
584
  generator = self.class.new(@context, &block)
571
585
  literal("function() { #{generator.to_s} }")
@@ -654,8 +668,7 @@ module ActionView
654
668
  end
655
669
 
656
670
  # Converts chained method calls on DOM proxy elements into JavaScript chains
657
- class JavaScriptProxy < ActiveSupport::BasicObject #:nodoc:
658
-
671
+ class JavaScriptProxy < ActiveSupport::ProxyObject #:nodoc:
659
672
  def initialize(generator, root = nil)
660
673
  @generator = generator
661
674
  @generator << root if root
@@ -730,7 +743,7 @@ module ActionView
730
743
 
731
744
  class JavaScriptVariableProxy < JavaScriptProxy #:nodoc:
732
745
  def initialize(generator, variable)
733
- @variable = ::ActiveSupport::JSON::Variable.new(variable)
746
+ @variable = JsonLiteral.new(variable)
734
747
  @empty = true # only record lines if we have to. gets rid of unnecessary linebreaks
735
748
  super(generator)
736
749
  end
@@ -754,8 +767,8 @@ module ActionView
754
767
  end
755
768
 
756
769
  class JavaScriptCollectionProxy < JavaScriptProxy #:nodoc:
757
- ENUMERABLE_METHODS_WITH_RETURN = [:all, :any, :collect, :map, :detect, :find, :find_all, :select, :max, :min, :partition, :reject, :sort_by, :in_groups_of, :each_slice] unless defined? ENUMERABLE_METHODS_WITH_RETURN
758
- ENUMERABLE_METHODS = ENUMERABLE_METHODS_WITH_RETURN + [:each] unless defined? ENUMERABLE_METHODS
770
+ ENUMERABLE_METHODS_WITH_RETURN = [:all, :any, :collect, :map, :detect, :find, :find_all, :select, :max, :min, :partition, :reject, :sort_by, :in_groups_of, :each_slice]
771
+ ENUMERABLE_METHODS = ENUMERABLE_METHODS_WITH_RETURN + [:each]
759
772
  attr_reader :generator
760
773
  delegate :arguments_for_call, :to => :generator
761
774
 
@@ -773,7 +786,7 @@ module ActionView
773
786
  end
774
787
 
775
788
  def grep(variable, pattern, &block)
776
- enumerate :grep, :variable => variable, :return => true, :method_args => [::ActiveSupport::JSON::Variable.new(pattern.inspect)], :yield_args => %w(value index), &block
789
+ enumerate :grep, :variable => variable, :return => true, :method_args => [JsonLiteral.new(pattern.inspect)], :yield_args => %w(value index), &block
777
790
  end
778
791
 
779
792
  def in_groups_of(variable, number, fill_with = nil)
@@ -797,7 +810,7 @@ module ActionView
797
810
  append_enumerable_function!("zip(#{arguments_for_call arguments}")
798
811
  if block
799
812
  function_chain[-1] += ", function(array) {"
800
- yield ::ActiveSupport::JSON::Variable.new('array')
813
+ yield JsonLiteral.new('array')
801
814
  add_return_statement!
802
815
  @generator << '});'
803
816
  else
@@ -810,7 +823,7 @@ module ActionView
810
823
  if ENUMERABLE_METHODS.include?(method)
811
824
  returnable = ENUMERABLE_METHODS_WITH_RETURN.include?(method)
812
825
  variable = arguments.first if returnable
813
- enumerate(method, {:variable => (arguments.first if returnable), :return => returnable, :yield_args => %w(value index)}, &block)
826
+ enumerate(method, {:variable => variable, :return => returnable, :yield_args => %w(value index)}, &block)
814
827
  else
815
828
  super
816
829
  end
@@ -2,6 +2,8 @@ require 'action_view/helpers/javascript_helper'
2
2
 
3
3
  ActionView::Helpers::JavaScriptHelper.module_eval do
4
4
  include ActionView::Helpers::PrototypeHelper
5
+ undef_method :button_to_function if method_defined? :button_to_function
6
+ undef_method :link_to_function if method_defined? :link_to_function
5
7
 
6
8
  # Returns a button with the given +name+ text that'll trigger a JavaScript +function+ using the
7
9
  # onclick handler.
@@ -1,5 +1,5 @@
1
1
  require 'active_support/core_ext/module/aliasing'
2
- require 'action_controller/vendor/html-scanner'
2
+ require 'action_view/vendor/html-scanner'
3
3
  require 'action_dispatch/testing/assertions'
4
4
  require 'action_dispatch/testing/assertions/selector'
5
5
 
@@ -124,7 +124,7 @@ ActionDispatch::Assertions::SelectorAssertions.module_eval do
124
124
  end
125
125
 
126
126
  if matches
127
- assert_block("") { true } # to count the assertion
127
+ assert true # to count the assertion
128
128
  if block_given? && !([:remove, :show, :hide, :toggle].include? rjs_type)
129
129
  begin
130
130
  @selected ||= nil
@@ -1,10 +1,7 @@
1
- require 'fileutils'
2
1
  require 'abstract_unit'
3
2
 
4
- CACHE_DIR = 'test_cache'
5
3
  # Don't change '/../temp/' cavalierly or you might hose something you don't want hosed
6
- FILE_STORE_PATH = File.join(File.dirname(__FILE__), '/../temp/', CACHE_DIR)
7
- ActionController::Base.page_cache_directory = FILE_STORE_PATH
4
+ FILE_STORE_PATH = File.expand_path('../../../temp/test_cache', __FILE__)
8
5
 
9
6
  class CachingController < ActionController::Base
10
7
  abstract!
@@ -41,6 +38,6 @@ class FunctionalFragmentCachingTest < ActionController::TestCase
41
38
  xhr :get, :js_fragment_cached_with_partial
42
39
  assert_response :success
43
40
  assert_match(/Old fragment caching in a partial/, @response.body)
44
- assert_match("Old fragment caching in a partial", @store.read('views/test.host/functional_caching/js_fragment_cached_with_partial'))
41
+ assert_match "Old fragment caching in a partial", @store.instance_variable_get('@data').values.first.value
45
42
  end
46
- end
43
+ end
@@ -1,19 +1,9 @@
1
- lib = File.expand_path("#{File.dirname(__FILE__)}/../lib")
2
- $:.unshift(lib) unless $:.include?('lib') || $:.include?(lib)
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'minitest/autorun'
3
4
 
4
- $:.unshift(File.dirname(__FILE__) + '/lib')
5
-
6
- if defined? Gem
7
- Gem.source_index
8
- gem 'bundler'
9
- else
10
- require 'rubygems'
11
- end
12
- require 'bundler'
13
- Bundler.setup
14
-
15
- require 'test/unit'
16
5
  require 'active_support'
6
+ require 'active_support/test_case'
17
7
  require 'action_controller'
18
8
  require 'action_view'
19
9
  require 'action_view/testing/resolvers'
@@ -21,7 +11,7 @@ require 'action_view/testing/resolvers'
21
11
  require 'prototype-rails/on_load_action_controller'
22
12
  require 'prototype-rails/on_load_action_view'
23
13
 
24
- FIXTURE_LOAD_PATH = File.join(File.dirname(__FILE__), 'fixtures')
14
+ FIXTURE_LOAD_PATH = File.expand_path('../../fixtures', __FILE__)
25
15
  FIXTURES = Pathname.new(FIXTURE_LOAD_PATH)
26
16
 
27
17
 
@@ -59,11 +49,11 @@ module ActiveSupport
59
49
  # have been loaded.
60
50
  setup_once do
61
51
  SharedTestRoutes.draw do
62
- match ':controller(/:action)'
52
+ get ':controller(/:action)'
63
53
  end
64
54
 
65
55
  ActionDispatch::IntegrationTest.app.routes.draw do
66
- match ':controller(/:action)'
56
+ get ':controller(/:action)'
67
57
  end
68
58
  end
69
59
  end
@@ -88,7 +78,7 @@ class BasicController
88
78
  def config
89
79
  @config ||= ActiveSupport::InheritableOptions.new(ActionController::Base.config).tap do |config|
90
80
  # VIEW TODO: View tests should not require a controller
91
- public_dir = File.expand_path("../fixtures/public", __FILE__)
81
+ public_dir = "#{FIXTURE_LOAD_PATH}/public"
92
82
  config.assets_dir = public_dir
93
83
  config.javascripts_dir = "#{public_dir}/javascripts"
94
84
  config.stylesheets_dir = "#{public_dir}/stylesheets"
@@ -109,7 +99,7 @@ class ActionDispatch::IntegrationTest < ActiveSupport::TestCase
109
99
  middleware.use "ActionDispatch::ParamsParser"
110
100
  middleware.use "ActionDispatch::Cookies"
111
101
  middleware.use "ActionDispatch::Flash"
112
- middleware.use "ActionDispatch::Head"
102
+ middleware.use "Rack::Head"
113
103
  yield(middleware) if block_given?
114
104
  end
115
105
  end
@@ -162,17 +162,15 @@ class RenderOtherTest < ActionController::TestCase
162
162
  end
163
163
 
164
164
  def test_enum_rjs_test
165
- SecureRandom.stubs(:base64).returns("asdf")
166
- get :enum_rjs_test
167
- body = %{
168
- $$(".product").each(function(value, index) {
165
+ pre = %[$$(".product").each(function(value, index) {
169
166
  new Effect.Highlight(element,{});
170
167
  new Effect.Highlight(value,{});
171
- Sortable.create(value, {onUpdate:function(){new Ajax.Request('/render_other_test/test/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(value) + '&authenticity_token=' + encodeURIComponent('asdf')})}});
172
- new Draggable(value, {});
173
- });
174
- }.gsub(/^ /, '').strip
175
- assert_equal body, @response.body
168
+ Sortable.create(value, {onUpdate:function(){new Ajax.Request('/render_other_test/test/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(value) + '&authenticity_token=' + encodeURIComponent('].gsub(/^\s+/, '')
169
+ post = %[')})}});\nnew Draggable(value, {});\n});]
170
+
171
+ get :enum_rjs_test
172
+ assert_match pre, @response.body
173
+ assert_match post, @response.body
176
174
  end
177
175
 
178
176
  def test_explicitly_rendering_an_html_template_with_implicit_html_template_renders_should_be_possible_from_an_rjs_template
@@ -50,33 +50,33 @@ class ScriptaculousHelperTest < ActionView::TestCase
50
50
 
51
51
 
52
52
  def test_sortable_element
53
- assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nSortable.create(\"mylist\", {onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(\"mylist\")})}})\n//]]>\n</script>),
53
+ assert_dom_equal %(<script>\n//<![CDATA[\nSortable.create(\"mylist\", {onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(\"mylist\")})}})\n//]]>\n</script>),
54
54
  sortable_element("mylist", :url => { :action => "order" })
55
- assert_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nSortable.create(\"mylist\", {constraint:'horizontal', onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(\"mylist\")})}, tag:'div'})\n//]]>\n</script>),
55
+ assert_equal %(<script>\n//<![CDATA[\nSortable.create(\"mylist\", {constraint:'horizontal', onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(\"mylist\")})}, tag:'div'})\n//]]>\n</script>),
56
56
  sortable_element("mylist", :tag => "div", :constraint => "horizontal", :url => { :action => "order" })
57
- assert_dom_equal %|<script type=\"text/javascript\">\n//<![CDATA[\nSortable.create(\"mylist\", {constraint:'horizontal', containment:['list1','list2'], onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(\"mylist\")})}})\n//]]>\n</script>|,
57
+ assert_dom_equal %|<script>\n//<![CDATA[\nSortable.create(\"mylist\", {constraint:'horizontal', containment:['list1','list2'], onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(\"mylist\")})}})\n//]]>\n</script>|,
58
58
  sortable_element("mylist", :containment => ['list1','list2'], :constraint => "horizontal", :url => { :action => "order" })
59
- assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nSortable.create(\"mylist\", {constraint:'horizontal', containment:'list1', onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(\"mylist\")})}})\n//]]>\n</script>),
59
+ assert_dom_equal %(<script>\n//<![CDATA[\nSortable.create(\"mylist\", {constraint:'horizontal', containment:'list1', onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(\"mylist\")})}})\n//]]>\n</script>),
60
60
  sortable_element("mylist", :containment => 'list1', :constraint => "horizontal", :url => { :action => "order" })
61
61
  end
62
62
 
63
63
  def test_draggable_element
64
- assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nnew Draggable(\"product_13\", {})\n//]]>\n</script>),
64
+ assert_dom_equal %(<script>\n//<![CDATA[\nnew Draggable(\"product_13\", {})\n//]]>\n</script>),
65
65
  draggable_element("product_13")
66
- assert_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nnew Draggable(\"product_13\", {revert:true})\n//]]>\n</script>),
66
+ assert_equal %(<script>\n//<![CDATA[\nnew Draggable(\"product_13\", {revert:true})\n//]]>\n</script>),
67
67
  draggable_element("product_13", :revert => true)
68
68
  end
69
69
 
70
70
  def test_drop_receiving_element
71
- assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add(\"droptarget1\", {onDrop:function(element){new Ajax.Request('http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
71
+ assert_dom_equal %(<script>\n//<![CDATA[\nDroppables.add(\"droptarget1\", {onDrop:function(element){new Ajax.Request('http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
72
72
  drop_receiving_element("droptarget1")
73
- assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add(\"droptarget1\", {accept:'products', onDrop:function(element){new Ajax.Request('http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
73
+ assert_dom_equal %(<script>\n//<![CDATA[\nDroppables.add(\"droptarget1\", {accept:'products', onDrop:function(element){new Ajax.Request('http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
74
74
  drop_receiving_element("droptarget1", :accept => 'products')
75
- assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add(\"droptarget1\", {accept:'products', onDrop:function(element){new Ajax.Updater('infobox', 'http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
75
+ assert_dom_equal %(<script>\n//<![CDATA[\nDroppables.add(\"droptarget1\", {accept:'products', onDrop:function(element){new Ajax.Updater('infobox', 'http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
76
76
  drop_receiving_element("droptarget1", :accept => 'products', :update => 'infobox')
77
- assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add(\"droptarget1\", {accept:['tshirts','mugs'], onDrop:function(element){new Ajax.Updater('infobox', 'http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
77
+ assert_dom_equal %(<script>\n//<![CDATA[\nDroppables.add(\"droptarget1\", {accept:['tshirts','mugs'], onDrop:function(element){new Ajax.Updater('infobox', 'http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
78
78
  drop_receiving_element("droptarget1", :accept => ['tshirts','mugs'], :update => 'infobox')
79
- assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add("droptarget1", {hoverclass:'dropready', onDrop:function(element){if (confirm('Are you sure?')) { new Ajax.Request('http://www.example.com/update_drop', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)}); }}})\n//]]>\n</script>),
79
+ assert_dom_equal %(<script>\n//<![CDATA[\nDroppables.add("droptarget1", {hoverclass:'dropready', onDrop:function(element){if (confirm('Are you sure?')) { new Ajax.Request('http://www.example.com/update_drop', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)}); }}})\n//]]>\n</script>),
80
80
  drop_receiving_element('droptarget1', :hoverclass=>'dropready', :url=>{:action=>'update_drop'}, :confirm => 'Are you sure?')
81
81
 
82
82
  end
metadata CHANGED
@@ -1,38 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prototype-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.1
5
- prerelease:
4
+ version: 4.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Xavier Noria
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-01-23 00:00:00.000000000 Z
11
+ date: 2013-12-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rails
16
- requirement: &85346000 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: '3.2'
19
+ version: '4.0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *85346000
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '4.0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: mocha
27
- requirement: &85345800 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - '>='
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *85345800
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  description:
37
42
  email: fxn@hashref.com
38
43
  executables: []
@@ -42,75 +47,75 @@ files:
42
47
  - README
43
48
  - Rakefile
44
49
  - Gemfile
45
- - lib/action_view/template/handlers/rjs.rb
46
- - lib/action_view/helpers/scriptaculous_helper.rb
47
50
  - lib/action_view/helpers/prototype_helper.rb
48
- - lib/prototype-rails.rb
49
- - lib/prototype-rails/on_load_action_controller.rb
51
+ - lib/action_view/helpers/scriptaculous_helper.rb
52
+ - lib/action_view/template/handlers/rjs.rb
50
53
  - lib/prototype-rails/javascript_helper.rb
54
+ - lib/prototype-rails/on_load_action_controller.rb
55
+ - lib/prototype-rails/on_load_action_view.rb
51
56
  - lib/prototype-rails/renderers.rb
52
57
  - lib/prototype-rails/rendering.rb
53
- - lib/prototype-rails/on_load_action_view.rb
54
58
  - lib/prototype-rails/selector_assertions.rb
59
+ - lib/prototype-rails.rb
60
+ - vendor/assets/javascripts/controls.js
55
61
  - vendor/assets/javascripts/dragdrop.js
62
+ - vendor/assets/javascripts/effects.js
56
63
  - vendor/assets/javascripts/prototype.js
57
64
  - vendor/assets/javascripts/prototype_ujs.js
58
- - vendor/assets/javascripts/controls.js
59
- - vendor/assets/javascripts/effects.js
60
- - test/render_other_test.rb
61
- - test/lib/controller/fake_models.rb
62
- - test/abstract_unit.rb
63
- - test/template/scriptaculous_helper_test.rb
64
- - test/template/prototype_helper_test.rb
65
- - test/template/render_test.rb
66
65
  - test/assert_select_test.rb
67
66
  - test/controller/caching_test.rb
67
+ - test/controller/content_type_test.rb
68
+ - test/controller/mime_responds_test.rb
68
69
  - test/controller/new_base/content_type_test.rb
69
70
  - test/controller/new_base/render_rjs_test.rb
70
- - test/controller/mime_responds_test.rb
71
- - test/controller/content_type_test.rb
72
71
  - test/controller/render_js_test.rb
73
- - test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs
74
- - test/fixtures/functional_caching/formatted_fragment_cached.js.rjs
75
72
  - test/fixtures/functional_caching/_partial.erb
73
+ - test/fixtures/functional_caching/formatted_fragment_cached.js.rjs
74
+ - test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs
76
75
  - test/fixtures/old_content_type/render_default_for_rjs.rjs
77
- - test/fixtures/respond_to/using_defaults_with_type_list.js.rjs
78
- - test/fixtures/respond_to/layouts/standard.html.erb
79
76
  - test/fixtures/respond_to/all_types_with_layout.js.rjs
77
+ - test/fixtures/respond_to/layouts/standard.html.erb
80
78
  - test/fixtures/respond_to/using_defaults.js.rjs
81
- - test/fixtures/test/render_implicit_html_template.js.rjs
82
- - test/fixtures/test/delete_with_js.rjs
79
+ - test/fixtures/respond_to/using_defaults_with_type_list.js.rjs
80
+ - test/fixtures/respond_with/using_resource.js.rjs
81
+ - test/fixtures/test/_one.html.erb
83
82
  - test/fixtures/test/_partial.html.erb
84
- - test/fixtures/test/enum_rjs_test.rjs
85
- - test/fixtures/test/render_explicit_html_template.js.rjs
86
83
  - test/fixtures/test/_partial.js.erb
87
- - test/fixtures/test/greeting.js.rjs
88
- - test/fixtures/test/_one.html.erb
89
84
  - test/fixtures/test/_two.html.erb
90
- - test/fixtures/respond_with/using_resource.js.rjs
85
+ - test/fixtures/test/delete_with_js.rjs
86
+ - test/fixtures/test/enum_rjs_test.rjs
87
+ - test/fixtures/test/greeting.js.rjs
88
+ - test/fixtures/test/render_explicit_html_template.js.rjs
89
+ - test/fixtures/test/render_implicit_html_template.js.rjs
91
90
  - test/javascript_helper_test.rb
91
+ - test/lib/abstract_unit.rb
92
+ - test/lib/controller/fake_models.rb
93
+ - test/render_other_test.rb
94
+ - test/template/prototype_helper_test.rb
95
+ - test/template/render_test.rb
96
+ - test/template/scriptaculous_helper_test.rb
92
97
  homepage: http://github.com/rails/prototype-rails
93
98
  licenses: []
99
+ metadata: {}
94
100
  post_install_message:
95
101
  rdoc_options: []
96
102
  require_paths:
97
103
  - lib
98
104
  required_ruby_version: !ruby/object:Gem::Requirement
99
- none: false
100
105
  requirements:
101
- - - ! '>='
106
+ - - '>='
102
107
  - !ruby/object:Gem::Version
103
108
  version: '0'
104
109
  required_rubygems_version: !ruby/object:Gem::Requirement
105
- none: false
106
110
  requirements:
107
- - - ! '>='
111
+ - - '>='
108
112
  - !ruby/object:Gem::Version
109
113
  version: '0'
110
114
  requirements: []
111
115
  rubyforge_project:
112
- rubygems_version: 1.8.10
116
+ rubygems_version: 2.1.11
113
117
  signing_key:
114
- specification_version: 3
118
+ specification_version: 4
115
119
  summary: Prototype, Scriptaculous, and RJS for Ruby on Rails
116
120
  test_files: []
121
+ has_rdoc: