feedme 0.8.3 → 0.8.4
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.
- 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
|
|