roda-component 0.1.22 → 0.1.23
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/roda/component.rb +20 -1
- data/lib/roda/component/form.rb +22 -3
- data/lib/roda/component/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92853f7a4482978ca64e2dbb1dc688c6b113f8ba
|
4
|
+
data.tar.gz: 15690b78f86016b7569bda1d94e2ea25e9478542
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d85d941ac1792fa14556b70585e423fe4662b891b2e4f0251360e85321a10f59b86f3731d5c9ea9c31a533c04011061dc0338b03390d9fec5ab722f6e0001a5
|
7
|
+
data.tar.gz: 20b3badf17176a236538f8386a37c01643f65e7ccd0e79de55a6eceefeae27d74c9f54609388bef37f783fd56bb09d429733399e1925e303c2883f5f92c0c5f4
|
data/lib/roda/component.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'opal'
|
2
2
|
require 'opal-jquery'
|
3
|
+
require 'ostruct'
|
3
4
|
|
4
5
|
unless RUBY_ENGINE == 'opal'
|
5
6
|
require 'tilt'
|
@@ -126,7 +127,9 @@ class Roda
|
|
126
127
|
Element.find('meta[name=_csrf]').attr 'content', csrf
|
127
128
|
###########################
|
128
129
|
|
129
|
-
|
130
|
+
res = JSON.from_object(`response`)
|
131
|
+
|
132
|
+
blk.call res[:body], res
|
130
133
|
end
|
131
134
|
|
132
135
|
# Element['body'].on event_id do |event, local, data|
|
@@ -401,6 +404,22 @@ class Roda
|
|
401
404
|
value
|
402
405
|
end
|
403
406
|
|
407
|
+
# Recursively process the request params and convert
|
408
|
+
# hashes to support indifferent access, leaving
|
409
|
+
# other values alone.
|
410
|
+
def indifferent_params(params)
|
411
|
+
case params
|
412
|
+
when Hash
|
413
|
+
hash = Hash.new{|h, k| h[k.to_s] if Symbol === k}
|
414
|
+
params.each{|k, v| hash[k] = indifferent_params(v)}
|
415
|
+
hash
|
416
|
+
when Array
|
417
|
+
params.map{|x| indifferent_params(x)}
|
418
|
+
else
|
419
|
+
params
|
420
|
+
end
|
421
|
+
end
|
422
|
+
|
404
423
|
private
|
405
424
|
|
406
425
|
def server?
|
data/lib/roda/component/form.rb
CHANGED
@@ -176,7 +176,7 @@ class Roda
|
|
176
176
|
|
177
177
|
error = error.first
|
178
178
|
|
179
|
-
if error.is_a?
|
179
|
+
if error.is_a?(Hash)
|
180
180
|
d_options = options.dup
|
181
181
|
d_options[:keys] = d_keys
|
182
182
|
d_options[:override_errors] = d_errors[key].first
|
@@ -187,7 +187,16 @@ class Roda
|
|
187
187
|
i != 0 ? "[#{field}]" : field
|
188
188
|
end.join
|
189
189
|
|
190
|
-
|
190
|
+
if tmpl = options[:tmpl]
|
191
|
+
if client?
|
192
|
+
field_error_dom = DOM.new(`#{tmpl.dom}[0].outerHTML`)
|
193
|
+
else
|
194
|
+
field_error_dom = DOM.new(tmpl.dom.to_html)
|
195
|
+
end
|
196
|
+
else
|
197
|
+
field_error_dom = DOM.new('<span class="field-error"><span>')
|
198
|
+
end
|
199
|
+
|
191
200
|
field_error_dom.html _error_name(key, error)
|
192
201
|
|
193
202
|
field = dom.find("[name='#{name}']")
|
@@ -268,7 +277,7 @@ class Roda
|
|
268
277
|
end
|
269
278
|
|
270
279
|
def _error_name key, error
|
271
|
-
case error.to_sym
|
280
|
+
case error.to_s.to_sym
|
272
281
|
when :not_email
|
273
282
|
'Email Isn\'t Valid.'
|
274
283
|
when :not_present
|
@@ -283,6 +292,16 @@ class Roda
|
|
283
292
|
def empty?
|
284
293
|
_attributes.empty?
|
285
294
|
end
|
295
|
+
|
296
|
+
def server? &block
|
297
|
+
RUBY_ENGINE == 'ruby'
|
298
|
+
end
|
299
|
+
alias :server :server?
|
300
|
+
|
301
|
+
def client?
|
302
|
+
RUBY_ENGINE == 'opal'
|
303
|
+
end
|
304
|
+
alias :client :client?
|
286
305
|
end
|
287
306
|
end
|
288
307
|
end
|