cwyckoff-babel_icious 0.0.6.2 → 0.0.6.3

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.
@@ -1,18 +1,16 @@
1
1
  require 'xml/libxml'
2
2
 
3
+ def new_node(name)
4
+ XML::Node.new(name)
5
+ end
6
+
3
7
  module BabeliciousNodeHacks
4
8
 
5
- def to_a
6
- self.children.reject { }
7
- res = self.children.inject([]) do |a,b|
8
- unless b.content.strip.empty?
9
- a << b.content.strip
10
- else
11
- a
12
- end
13
- end
14
- end
15
-
9
+ def add(*nodes)
10
+ nodes.each { |n| self << n }
11
+ self
12
+ end
13
+
16
14
  def concatenate_children(glue)
17
15
  to_a.join(glue)
18
16
  end
@@ -31,6 +29,17 @@ module BabeliciousNodeHacks
31
29
  e
32
30
  end
33
31
 
32
+ def to_a
33
+ self.children.reject { }
34
+ res = self.children.inject([]) do |a,b|
35
+ unless b.content.strip.empty?
36
+ a << b.content.strip
37
+ else
38
+ a
39
+ end
40
+ end
41
+ end
42
+
34
43
  private
35
44
 
36
45
  def child_arr(child)
@@ -44,10 +44,25 @@ module Babelicious
44
44
  populate_nodes(xml_output)
45
45
  map_from(xml_output, source_value)
46
46
  end
47
+
48
+ rescue Exception => e
49
+ raise "There was a problem mapping the xml output for mapping '#{@path_translator.full_path}' with source value #{source_value}"
47
50
  end
48
51
 
49
52
  private
50
53
 
54
+ def map_source_value(source_value)
55
+ if(@customized_map)
56
+ @customized_map.call(source_value)
57
+ else
58
+ if(source_value.is_a?(String))
59
+ source_value.strip
60
+ else
61
+ source_value
62
+ end
63
+ end
64
+ end
65
+
51
66
  def populate_nodes(xml_output)
52
67
  return if @index == 0
53
68
 
@@ -74,10 +89,9 @@ module Babelicious
74
89
  def update_node?(xml_output, source_value)
75
90
  node = xml_output.find("/#{@path_translator.full_path}")
76
91
  unless(node.empty?)
77
- node[0] << source_value.strip unless source_value.nil?
92
+ node[0] << map_source_value(source_value) # source_value.strip unless source_value.nil?
78
93
  return true
79
94
  end
80
- false
81
95
  end
82
96
  end
83
97
 
@@ -28,6 +28,10 @@ module Babelicious
28
28
  def last
29
29
  @parsed_path.last
30
30
  end
31
+
32
+ def prepare_path(path)
33
+ path.gsub(/^\//, "").gsub(/\/$/, "")
34
+ end
31
35
 
32
36
  def set_path(untranslated_path)
33
37
  @full_path = untranslated_path
@@ -38,13 +42,13 @@ module Babelicious
38
42
  @parsed_path.size
39
43
  end
40
44
 
41
- def translate(untranslated_path)
42
- untranslated_path.gsub(/^\//, "").split("/")
45
+ def translate(path)
46
+ prepare_path(path).split("/")
43
47
  end
44
48
 
45
- def unshift(element)
46
- @parsed_path.unshift(element)
47
- @full_path = "#{element}/" << @full_path
49
+ def unshift(path)
50
+ @parsed_path.unshift(translate(path)).flatten!
51
+ @full_path = "#{prepare_path(path)}/" << @full_path
48
52
  end
49
53
 
50
54
  end
data/lib/babel_icious.rb CHANGED
@@ -14,3 +14,4 @@ require "babel_icious/mappers/xml_map"
14
14
  require "babel_icious/mappers/hash_map"
15
15
  require "babel_icious/mapper"
16
16
  require "babel_icious/map_condition"
17
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cwyckoff-babel_icious
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6.2
4
+ version: 0.0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Wyckoff
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-20 00:00:00 -07:00
12
+ date: 2009-06-23 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency