mozenda 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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: