eita-jrails 0.9.8 → 0.10.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 +4 -4
- data/lib/action_view/helpers/jquery_helper.rb +14 -14
- data/lib/jrails/selector_assertions.rb +53 -20
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5cf7c9e8c1a449a826bde01ea0688f5d44778646
|
4
|
+
data.tar.gz: b24f5cb2c44c3d8866e46e39479764305fb59fbf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2a218e5e17496de12a8be15af618e06aa82ad174be969800ae877fad993aa013bb3d63245889f55462f1828fb42ed3f1ce34fe2d840902dd6402a3074eedfcf
|
7
|
+
data.tar.gz: 0f4f470abce7f396bc89d58f6e0f699745785874d3bbaa255fe87bd51b79d6467bf64b8fbb478d30f66531771482abb5f48a08f993e46a83538d1c4213fd6b10
|
@@ -328,26 +328,26 @@ module ActionView
|
|
328
328
|
# If you don't need to attach a form to a resource, then check out form_remote_tag.
|
329
329
|
#
|
330
330
|
# See FormHelper#form_for for additional semantics.
|
331
|
-
def remote_form_for
|
332
|
-
|
331
|
+
def remote_form_for record, options = {}, &block
|
332
|
+
as = options[:as]
|
333
333
|
|
334
|
-
case
|
334
|
+
case record
|
335
335
|
when String, Symbol
|
336
|
-
object_name =
|
337
|
-
|
338
|
-
object = record_or_name_or_array.last
|
339
|
-
object_name = ActiveModel::Naming.singular(object)
|
340
|
-
apply_form_for_options!(record_or_name_or_array, options)
|
341
|
-
args.unshift object
|
336
|
+
object_name = record
|
337
|
+
object = nil
|
342
338
|
else
|
343
|
-
object
|
344
|
-
|
345
|
-
|
346
|
-
|
339
|
+
object = if record.is_a? Array then record.last else record end
|
340
|
+
if Rails::VERSION::MAJOR >= 4
|
341
|
+
object_name = as || model_name_from_record_or_class(object).param_key
|
342
|
+
apply_form_for_options! record, object, options
|
343
|
+
else
|
344
|
+
object_name = as || ActiveModel::Naming.param_key(object)
|
345
|
+
apply_form_for_options! record, options
|
346
|
+
end
|
347
347
|
end
|
348
348
|
|
349
349
|
form_remote_tag options do
|
350
|
-
fields_for
|
350
|
+
fields_for object, options, &block
|
351
351
|
end
|
352
352
|
end
|
353
353
|
alias_method :form_remote_for, :remote_form_for
|
@@ -1,8 +1,8 @@
|
|
1
|
-
# FIXME: support rails 4.2
|
2
|
-
if Rails::VERSION::STRING < "4.2.0"
|
3
1
|
|
4
2
|
require 'active_support/core_ext/module/aliasing'
|
5
|
-
if Rails::VERSION::STRING
|
3
|
+
if Rails::VERSION::STRING >= "4.2.0"
|
4
|
+
# uses nokogiri
|
5
|
+
elsif Rails::VERSION::STRING < "4.1.0"
|
6
6
|
require 'action_controller/vendor/html-scanner'
|
7
7
|
else
|
8
8
|
require 'action_view/vendor/html-scanner'
|
@@ -15,7 +15,14 @@ require 'action_dispatch/testing/assertions/selector'
|
|
15
15
|
# Under MIT and/or CC By license.
|
16
16
|
#++
|
17
17
|
|
18
|
-
|
18
|
+
module JRails::SelectorAssertions
|
19
|
+
|
20
|
+
if Rails::VERSION::STRING >= "4.2.0"
|
21
|
+
def response_from_page
|
22
|
+
html_document.root
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
19
26
|
# Selects content from the RJS response.
|
20
27
|
#
|
21
28
|
# === Narrowing down
|
@@ -122,11 +129,20 @@ ActionDispatch::Assertions::SelectorAssertions.module_eval do
|
|
122
129
|
when :remove, :show, :hide, :toggle
|
123
130
|
matches = @response.body.match(pattern)
|
124
131
|
else
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
132
|
+
if Rails::VERSION::STRING >= "4.2.0"
|
133
|
+
@response.body.gsub pattern do |match|
|
134
|
+
html = unescape_rjs match
|
135
|
+
matches ||= Nokogiri::HTML.fragment ''
|
136
|
+
Nokogiri::HTML(html).root.children.each{ |n| matches.add_child n if n.element? }
|
137
|
+
""
|
138
|
+
end
|
139
|
+
else
|
140
|
+
@response.body.gsub pattern do |match|
|
141
|
+
html = unescape_rjs match
|
142
|
+
matches ||= []
|
143
|
+
matches.concat HTML::Document.new(html).root.children.select{ |n| n.tag? }
|
144
|
+
""
|
145
|
+
end
|
130
146
|
end
|
131
147
|
end
|
132
148
|
|
@@ -184,19 +200,34 @@ ActionDispatch::Assertions::SelectorAssertions.module_eval do
|
|
184
200
|
|
185
201
|
if content_type && Mime::JS =~ content_type
|
186
202
|
body = @response.body.dup
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
203
|
+
if Rails::VERSION::STRING >= "4.2.0"
|
204
|
+
root = Nokogiri::HTML.fragment ''
|
205
|
+
|
206
|
+
while true
|
207
|
+
next if body.sub!(RJS_STATEMENTS[:any]) do |match|
|
208
|
+
html = unescape_rjs match
|
209
|
+
Nokogiri::HTML(html).root.children.each{ |n| root.add_child n if n.element? }
|
210
|
+
""
|
211
|
+
end
|
212
|
+
break
|
195
213
|
end
|
196
|
-
break
|
197
|
-
end
|
198
214
|
|
199
|
-
|
215
|
+
root
|
216
|
+
else
|
217
|
+
root = HTML::Node.new(nil)
|
218
|
+
|
219
|
+
while true
|
220
|
+
next if body.sub!(RJS_STATEMENTS[:any]) do |match|
|
221
|
+
html = unescape_rjs(match)
|
222
|
+
matches = HTML::Document.new(html).root.children.select { |n| n.tag? }
|
223
|
+
root.children.concat matches
|
224
|
+
""
|
225
|
+
end
|
226
|
+
break
|
227
|
+
end
|
228
|
+
|
229
|
+
root
|
230
|
+
end
|
200
231
|
else
|
201
232
|
response_from_page_without_rjs
|
202
233
|
end
|
@@ -217,4 +248,6 @@ ActionDispatch::Assertions::SelectorAssertions.module_eval do
|
|
217
248
|
end
|
218
249
|
end
|
219
250
|
|
251
|
+
ActionDispatch::Assertions.module_eval do
|
252
|
+
include JRails::SelectorAssertions
|
220
253
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eita-jrails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Eisenberger
|
@@ -111,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
111
|
version: '0'
|
112
112
|
requirements: []
|
113
113
|
rubyforge_project:
|
114
|
-
rubygems_version: 2.4.
|
114
|
+
rubygems_version: 2.4.5
|
115
115
|
signing_key:
|
116
116
|
specification_version: 4
|
117
117
|
summary: RJS and JqueryHelper/JqueryUiHelper with the same API from prototype-rails
|