prototype-rails 3.2.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +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:
|