mozenda 0.0.5 → 0.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f72b544b775f33f4aa815e063a6cc9b327d536a5
4
- data.tar.gz: 06f75ca0f03e18e44ae5e05930649dc0dcf9e757
3
+ metadata.gz: 616013269f0c42edbfbabbd9db33e5a855df3061
4
+ data.tar.gz: b475359d6d9fd1019267bfe2c91793827ff8de25
5
5
  SHA512:
6
- metadata.gz: 46d8cf16dbb426c28c21574c187199d137b2e35ee000104904308f30ec05065ec4528952f818bacbbf8e2a6cb3955871a597aae23325b738f121c88b166f21be
7
- data.tar.gz: bc20b926897cccca1edc659d800e2be3a6527a15cad482305ae8f27e9953f1878390b458fc012394471fcba6fd749cff533308cf9d248d7d2714cacfd7cf8c93
6
+ metadata.gz: 6410c9d21de9478883cf6ed4f727034cf7afe1de2845fd9ae65f4c5055a2b438e1cb5faf73267370a9b5b919f937099d3dab1eddf2869b687066cf895bf8e242
7
+ data.tar.gz: 46678c3cbb503e6e260e8e73e146fec05169accc41731f3cf040568e9fea0ab11d4fcd7d60e97bf1e9bd21545c2a61b5ab17cd04e12a198411bc04124781a26b
data/README.md CHANGED
@@ -80,7 +80,46 @@ agent.run(optional_params, {
80
80
  :job_ended => Mozenda::ReplacementValues::JOB_ENDED
81
81
  }
82
82
  })
83
- ```
83
+ ```
84
+
85
+ To generate XML file for bulk Collection.AddItem:
86
+ ```ruby
87
+ data = [
88
+ {
89
+ 'Name' => "Bob",
90
+ "Age" => 12
91
+ },
92
+ {
93
+ 'Name' => "Ed",
94
+ "Age" => 99
95
+ },
96
+ {
97
+ 'Name' => "Kate",
98
+ "Age" => 23
99
+ }
100
+ ]
101
+ xml_generator = Mozenda::XmlGenerator.new(data)
102
+ xml = xml_generator.generate
103
+ ```
104
+
105
+ result XML:
106
+ ```xml
107
+ <?xml version="1.0" encoding="utf-8"?>
108
+ <ItemList>
109
+ <Item>
110
+ <Name>Bob</Name>
111
+ <Age>12</Age>
112
+ </Item>
113
+ <Item>
114
+ <Name>Ed</Name>
115
+ <Age>99</Age>
116
+ </Item>
117
+ <Item>
118
+ <Name>Kate</Name>
119
+ <Age>23</Age>
120
+ </Item>
121
+ </ItemList>
122
+ ```
84
123
 
85
124
  ## TODO
86
125
  * Implement requests-per-minute limit.
data/lib/mozenda.rb CHANGED
@@ -3,12 +3,14 @@ require 'uri'
3
3
  require 'pathname'
4
4
  require 'active_support/core_ext/string/inflections'
5
5
  require 'faraday'
6
+ require 'nokogiri'
6
7
  require 'nori'
7
8
 
8
9
  require "mozenda/version"
9
10
  require "mozenda/exception"
10
11
  require "mozenda/configuration"
11
12
  require "mozenda/replacement_values"
13
+ require "mozenda/xml_generator"
12
14
  require "mozenda/infrastructure"
13
15
  require "mozenda/request"
14
16
  require "mozenda/response"
@@ -1,5 +1,5 @@
1
1
  module Mozenda
2
2
 
3
- VERSION = "0.0.5"
3
+ VERSION = "0.0.6"
4
4
 
5
5
  end
@@ -0,0 +1,23 @@
1
+ class Mozenda::XmlGenerator
2
+
3
+ def initialize data
4
+ @data = data
5
+ end
6
+
7
+ def generate
8
+ builder = ::Nokogiri::XML::Builder.new(encoding: 'utf-8') do |xml|
9
+ xml.ItemList do
10
+ @data.each do |hash|
11
+ xml.Item do
12
+ hash.each_pair do |tag_name, value|
13
+ xml.send(:"#{tag_name}", value)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ xml = builder.to_xml
20
+ xml.encode(xml.encoding, :universal_newline => true)
21
+ end
22
+
23
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mozenda
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Woloszun
@@ -129,6 +129,7 @@ files:
129
129
  - lib/mozenda/response/collection_add_item.rb
130
130
  - lib/mozenda/response/collection_clear.rb
131
131
  - lib/mozenda/version.rb
132
+ - lib/mozenda/xml_generator.rb
132
133
  - mozenda.gemspec
133
134
  homepage: https://github.com/pwoloszun/mozenda
134
135
  licenses: