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 +7 -0
- data/Gemfile +1 -2
- data/README +9 -12
- data/Rakefile +1 -1
- data/lib/action_view/helpers/prototype_helper.rb +34 -21
- data/lib/prototype-rails/javascript_helper.rb +2 -0
- data/lib/prototype-rails/selector_assertions.rb +2 -2
- data/test/controller/caching_test.rb +3 -6
- data/test/{abstract_unit.rb → lib/abstract_unit.rb} +9 -19
- data/test/render_other_test.rb +7 -9
- data/test/template/scriptaculous_helper_test.rb +11 -11
- metadata +48 -43
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
data/README
CHANGED
@@ -1,10 +1,9 @@
|
|
1
|
-
prototype-rails provides Prototype, Scriptaculous, and RJS
|
1
|
+
prototype-rails provides Prototype, Scriptaculous, and RJS on Rails 3.1
|
2
|
+
and later.
|
2
3
|
|
3
|
-
Prototype and Scriptaculous are
|
4
|
-
|
5
|
-
|
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
|
-
|
16
|
-
|
17
|
-
|
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
@@ -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.
|
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,
|
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
|
-
|
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::
|
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 =
|
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]
|
758
|
-
ENUMERABLE_METHODS = ENUMERABLE_METHODS_WITH_RETURN + [:each]
|
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 => [
|
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
|
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 =>
|
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 '
|
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
|
-
|
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.
|
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
|
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
|
-
|
2
|
-
|
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.
|
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
|
-
|
52
|
+
get ':controller(/:action)'
|
63
53
|
end
|
64
54
|
|
65
55
|
ActionDispatch::IntegrationTest.app.routes.draw do
|
66
|
-
|
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 =
|
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 "
|
102
|
+
middleware.use "Rack::Head"
|
113
103
|
yield(middleware) if block_given?
|
114
104
|
end
|
115
105
|
end
|
data/test/render_other_test.rb
CHANGED
@@ -162,17 +162,15 @@ class RenderOtherTest < ActionController::TestCase
|
|
162
162
|
end
|
163
163
|
|
164
164
|
def test_enum_rjs_test
|
165
|
-
|
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('
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
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
|
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
|
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
|
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
|
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
|
64
|
+
assert_dom_equal %(<script>\n//<![CDATA[\nnew Draggable(\"product_13\", {})\n//]]>\n</script>),
|
65
65
|
draggable_element("product_13")
|
66
|
-
assert_equal %(<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
|
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
|
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
|
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
|
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
|
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:
|
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:
|
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:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
19
|
+
version: '4.0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
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:
|
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:
|
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/
|
49
|
-
- lib/
|
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/
|
82
|
-
- test/fixtures/
|
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/
|
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.
|
116
|
+
rubygems_version: 2.1.11
|
113
117
|
signing_key:
|
114
|
-
specification_version:
|
118
|
+
specification_version: 4
|
115
119
|
summary: Prototype, Scriptaculous, and RJS for Ruby on Rails
|
116
120
|
test_files: []
|
121
|
+
has_rdoc:
|