feedme 0.8.3 → 0.8.4
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/lib/feedme.rb +26 -23
- metadata +2 -2
data/History.txt
CHANGED
data/lib/feedme.rb
CHANGED
@@ -172,7 +172,10 @@ module FeedMe
|
|
172
172
|
|
173
173
|
# this shouldn't be necessary since all text is automatically
|
174
174
|
# unescaped, but some feeds double-escape HTML
|
175
|
-
:esc => proc {|str| CGI.unescapeHTML(str) }
|
175
|
+
:esc => proc {|str| CGI.unescapeHTML(str) },
|
176
|
+
|
177
|
+
# apply an arbitrary function
|
178
|
+
:apply => proc {|str, fn, *args| fn.call(str, *args) }
|
176
179
|
}
|
177
180
|
end
|
178
181
|
|
@@ -435,7 +438,7 @@ module FeedMe
|
|
435
438
|
!call_virtual_method(name_str[0..-2], args, history).nil? rescue false
|
436
439
|
elsif name_str[-1,1] == '!'
|
437
440
|
value = call_virtual_method(name_str[0..-2], args, history)
|
438
|
-
|
441
|
+
transform_value(fm_builder.default_transformation, value)
|
439
442
|
elsif name_str =~ /(.+)_values/
|
440
443
|
call_virtual_method(arrayize($1), args, history).collect do |value|
|
441
444
|
_resolve_value value
|
@@ -446,7 +449,7 @@ module FeedMe
|
|
446
449
|
call_virtual_method(arrayize($1), args, history).size
|
447
450
|
elsif name_str =~ /(.+)_(.+)/ && fm_builder.transformations.key?($2)
|
448
451
|
value = call_virtual_method($1, args, history)
|
449
|
-
|
452
|
+
transform_value(fm_builder.transformations[$2], value)
|
450
453
|
elsif name_str.include?('/') # this is only intended to be used internally
|
451
454
|
value = self
|
452
455
|
name_str.split('/').each do |p|
|
@@ -493,32 +496,15 @@ module FeedMe
|
|
493
496
|
value = call_virtual_method(tag) or return nil
|
494
497
|
transformations = trans.is_a?(String) ?
|
495
498
|
fm_builder.transformations[trans] : trans
|
496
|
-
|
497
|
-
end
|
498
|
-
|
499
|
-
protected
|
500
|
-
|
501
|
-
def clean_tag(tag)
|
502
|
-
tag.to_s.downcase.gsub(':','_').intern
|
503
|
-
end
|
504
|
-
|
505
|
-
# generate a name for the array variable corresponding to a single-value variable
|
506
|
-
def arrayize(key)
|
507
|
-
clean_tag(key.to_s + '_array')
|
499
|
+
transform_value(transformations, value)
|
508
500
|
end
|
509
501
|
|
510
|
-
def
|
511
|
-
clean_tag(key.to_s.gsub(/_array$/, ''))
|
512
|
-
end
|
513
|
-
|
514
|
-
private
|
515
|
-
|
516
|
-
def _transform(trans_array, value)
|
502
|
+
def transform_value(trans_array, value)
|
517
503
|
trans_array.each do |t|
|
518
504
|
return nil if value.nil?
|
519
505
|
|
520
506
|
if t.is_a? String
|
521
|
-
value =
|
507
|
+
value = transform_value(fm_builder.transformations[t], value)
|
522
508
|
else
|
523
509
|
if t.is_a? Symbol
|
524
510
|
t_name = t
|
@@ -545,6 +531,23 @@ module FeedMe
|
|
545
531
|
value
|
546
532
|
end
|
547
533
|
|
534
|
+
protected
|
535
|
+
|
536
|
+
def clean_tag(tag)
|
537
|
+
tag.to_s.downcase.gsub(':','_').intern
|
538
|
+
end
|
539
|
+
|
540
|
+
# generate a name for the array variable corresponding to a single-value variable
|
541
|
+
def arrayize(key)
|
542
|
+
clean_tag(key.to_s + '_array')
|
543
|
+
end
|
544
|
+
|
545
|
+
def unarrayize(key)
|
546
|
+
clean_tag(key.to_s.gsub(/_array$/, ''))
|
547
|
+
end
|
548
|
+
|
549
|
+
private
|
550
|
+
|
548
551
|
def _resolve_value(obj)
|
549
552
|
value = obj
|
550
553
|
if obj.is_a?(FeedData)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: feedme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Didion
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-06-02 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|