csv2other 0.0.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/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/.simplecov ADDED
@@ -0,0 +1,6 @@
1
+ SimpleCov.start do
2
+ add_filter '/spec/'
3
+ add_filter '/config/'
4
+ add_filter '/lib/'
5
+ add_filter '/vendor/'
6
+ end if ENV["COVERAGE"]
data/.travis.yml ADDED
@@ -0,0 +1,2 @@
1
+ language: ruby
2
+ script: bundle exec rspec spec
data/Gemfile ADDED
@@ -0,0 +1,20 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in csv2other.gemspec
4
+ gemspec
5
+
6
+ group :developpement do
7
+ gem "guard"
8
+ gem "guard-rspec"
9
+ gem "rb-fsevent"
10
+
11
+ gem "growl"
12
+ gem "spork"
13
+ gem "guard-spork"
14
+ end
15
+
16
+ group :test do
17
+ gem "simplecov"
18
+ gem "json", '~> 1.7.7'
19
+ gem "coveralls"
20
+ end
data/Guardfile ADDED
@@ -0,0 +1,13 @@
1
+ guard 'spork' do
2
+ watch('Gemfile')
3
+ watch('Gemfile.lock')
4
+ watch('spec/spec_helper.rb') { :rspec }
5
+ end
6
+
7
+ guard 'rspec' do
8
+ watch(%r{^spec/.+_spec\.rb$})
9
+ watch(%r{.+\.erb}) { "spec" }
10
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
11
+ watch('spec/spec_helper.rb') { "spec" }
12
+ watch(%r{^spec/data/.*/.*}) { "spec" }
13
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Nicolas Ledez
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,28 @@
1
+ # Csv2other
2
+
3
+ A tiny gem to convert CSV files to other format with template
4
+
5
+ Current build:
6
+ [![Build Status](https://travis-ci.org/nledez/csv2other.png)](https://travis-ci.org/nledez/csv2other)
7
+ [![Coverage Status](https://coveralls.io/repos/nledez/csv2other/badge.png)](https://coveralls.io/r/nledez/csv2other)
8
+ [![Dependency Status](https://gemnasium.com/nledez/csv2other.png)](https://gemnasium.com/nledez/csv2other)
9
+ [![Code Climate](https://codeclimate.com/github/nledez/csv2other.png)](https://codeclimate.com/github/nledez/csv2other)
10
+
11
+
12
+ ## Installation
13
+
14
+ Add this line to your application's Gemfile:
15
+
16
+ gem 'csv2other'
17
+
18
+ And then execute:
19
+
20
+ $ bundle
21
+
22
+ Or install it yourself as:
23
+
24
+ $ gem install csv2other
25
+
26
+ ## Usage
27
+
28
+ TODO: Write usage instructions here
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/csv2other.gemspec ADDED
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'csv2other/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "csv2other"
8
+ gem.version = Csv2other::VERSION
9
+ gem.authors = ["Nicolas Ledez"]
10
+ gem.email = ["github@ledez.net"]
11
+ gem.description = %q{A tiny gem to convert CSV files to other format with template}
12
+ gem.summary = %q{You prepare a template, use CSV to iterate and you have some informations}
13
+ gem.homepage = ""
14
+
15
+ gem.add_dependency "nokogiri"
16
+
17
+ gem.add_development_dependency "rspec"
18
+
19
+ gem.files = `git ls-files`.split($/)
20
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
21
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
22
+ gem.require_paths = ["lib"]
23
+ end
data/lib/csv2other.rb ADDED
@@ -0,0 +1,55 @@
1
+ require 'csv2other/version'
2
+ require 'csv'
3
+ require 'erb'
4
+ require 'nokogiri'
5
+
6
+ class Csv2other
7
+ attr_reader :content
8
+
9
+ def initialize
10
+ @content = {}
11
+ end
12
+
13
+ def parse(csv_filename, key)
14
+ key_symbol = key.to_sym
15
+ CSV.foreach(csv_filename, :col_sep =>';', :headers => true, :header_converters => :symbol) do |line|
16
+ current_key = line[key_symbol]
17
+ @content[current_key] = line
18
+ end
19
+ end
20
+
21
+ def list
22
+ @content.keys
23
+ end
24
+
25
+ def load_template(template_filename)
26
+ @template_filename = template_filename
27
+ @template = File.open(@template_filename).readlines.join
28
+ end
29
+
30
+ def each
31
+ @content.each do |k, v|
32
+ yield k, v
33
+ end
34
+ end
35
+
36
+ def render(my_binding = binding)
37
+ ERB.new(@template).result(my_binding)
38
+ end
39
+
40
+ def validate_with_xsd(xsd_path, binding_from, xpath = nil)
41
+ content = self.render(binding_from)
42
+ unless xpath.nil?
43
+ content = Nokogiri::XML(content).xpath(xpath).to_xml
44
+ end
45
+
46
+ xsd_path = xsd_path
47
+ xsddoc = Nokogiri::XML(File.read(xsd_path), xsd_path)
48
+ xsd = Nokogiri::XML::Schema.from_document(xsddoc)
49
+
50
+ xsd.validate(Nokogiri::XML(content)).each do |error|
51
+ puts error.message
52
+ raise error
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,3 @@
1
+ class Csv2other
2
+ VERSION = "0.0.4"
3
+ end
@@ -0,0 +1,5 @@
1
+ module Csv2otherSpecHelper
2
+ def diff_file(dest, reference)
3
+ File.read(dest).should == File.read(reference)
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ host;login;passwd
2
+ host1;logina;host1-logina
3
+ host2;loginb;host2-loginb
4
+ host3;loginc;host3-loginc
@@ -0,0 +1,5 @@
1
+ Create host: <%= @e[:host] %>
2
+ With credentials:
3
+ Login: <%= @e[:login] %>
4
+ Passwd: <%= @e[:passwd] %>
5
+
@@ -0,0 +1,15 @@
1
+ Create host: host1
2
+ With credentials:
3
+ Login: logina
4
+ Passwd: host1-logina
5
+
6
+ Create host: host2
7
+ With credentials:
8
+ Login: loginb
9
+ Passwd: host2-loginb
10
+
11
+ Create host: host3
12
+ With credentials:
13
+ Login: loginc
14
+ Passwd: host3-loginc
15
+
@@ -0,0 +1,4 @@
1
+ username;account;password
2
+ Rudolph Weldon;rudolph;sasdacFoaDry
3
+ Pierrick Judicaël;pierrick;GutVicDyWeuk
4
+ Mael Roparzh;mael;WheklAcyeug8
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0"?>
2
+ <account>
3
+ <username><%= @e[:username] %></username>
4
+ <account><%= @e[:account] %></account>
5
+ <password><%= @e[:password] %></password>
6
+ </account>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0"?>
2
+ <account>
3
+ <username>Mael Roparzh</username>
4
+ <account>mael</account>
5
+ <password>WheklAcyeug8</password>
6
+ </account>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0"?>
2
+ <account>
3
+ <username>Pierrick Judicaël</username>
4
+ <account>pierrick</account>
5
+ <password>GutVicDyWeuk</password>
6
+ </account>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0"?>
2
+ <account>
3
+ <username>Rudolph Weldon</username>
4
+ <account>rudolph</account>
5
+ <password>sasdacFoaDry</password>
6
+ </account>
@@ -0,0 +1,2 @@
1
+ username;account;password
2
+ Rudolph Weldon;rudolph;sasdacFoaDry
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0"?>
2
+ <account>
3
+ <username><%= @e[:username] %></username>
4
+ <account><%= @e[:account] %></account>
5
+ <password><%= @e[:password] %></password>
6
+ <account>
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
+
4
+ <xs:element name="account">
5
+ <xs:complexType>
6
+ <xs:sequence>
7
+ <xs:element name="username" type="xs:string"/>
8
+ <xs:element name="account" type="xs:string"/>
9
+ <xs:element name="password" type="xs:string"/>
10
+ </xs:sequence>
11
+ </xs:complexType>
12
+ </xs:element>
13
+
14
+ </xs:schema>
@@ -0,0 +1,2 @@
1
+ username;account;password
2
+ Rudolph Weldon;rudolph;sasdacFoaDry
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0"?>
2
+ <account>
3
+ <username><%= @e[:username] %></username>
4
+ <account><%= @e[:account] %></account>
5
+ <password><%= @e[:password] %></password>
6
+ <subpart>
7
+ <needed>What ?</needed>
8
+ </subpart>
9
+ </account>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0"?>
2
+ <account>
3
+ <username><%= @e[:username] %></username>
4
+ <account><%= @e[:account] %></account>
5
+ <password><%= @e[:password] %></password>
6
+ <subpart>
7
+ <needed>What ?</needed>
8
+ <anotherneed>With value</anotherneed>
9
+ </subpart>
10
+ </account>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
+
4
+ <xs:element name="account">
5
+ <xs:complexType>
6
+ <xs:sequence>
7
+ <xs:element name="username" type="xs:string"/>
8
+ <xs:element name="account" type="xs:string"/>
9
+ <xs:element name="password" type="xs:string"/>
10
+ <xs:element name="subpart">
11
+ <xs:complexType>
12
+ <xs:sequence>
13
+ <xs:element name="needed" type="xs:string"/>
14
+ <xs:element name="anotherneed" type="xs:string"/>
15
+ </xs:sequence>
16
+ </xs:complexType>
17
+ </xs:element>
18
+ </xs:sequence>
19
+ </xs:complexType>
20
+ </xs:element>
21
+
22
+ </xs:schema>
@@ -0,0 +1,4 @@
1
+ <subpart>
2
+ <needed>What ?</needed>
3
+ <anotherneed>With value</anotherneed>
4
+ </subpart>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
+
4
+ <xs:element name="subpart">
5
+ <xs:complexType>
6
+ <xs:sequence>
7
+ <xs:element name="needed" type="xs:string"/>
8
+ <xs:element name="anotherneed" type="xs:string"/>
9
+ </xs:sequence>
10
+ </xs:complexType>
11
+ </xs:element>
12
+
13
+ </xs:schema>
@@ -0,0 +1,157 @@
1
+ require File.dirname(__FILE__) + '../../spec_helper'
2
+ require 'csv2other_helper'
3
+ require 'csv2other'
4
+
5
+ Dir.mkdir "tmp" unless Dir.exist? "tmp"
6
+
7
+ describe "Csv2other" do
8
+ include Csv2otherSpecHelper
9
+
10
+ it "Can load data and create target file" do
11
+ converter01 = Csv2other.new
12
+ converter01.parse("spec/data/case01/01-input.csv", "host")
13
+ converter01.content.should be_an_instance_of(Hash)
14
+ converter01.list.should == [ "host1", "host2", "host3" ]
15
+
16
+ converter01.load_template("spec/data/case01/02-template.cli.erb")
17
+
18
+ filename_key = 'tmp/01-03-expected-with-key.cli'
19
+ destination = File.open(filename_key, "w")
20
+ converter01.each do |k, e|
21
+ @e = e
22
+ destination.puts converter01.render(binding)
23
+ end
24
+ destination.close
25
+
26
+ diff_file(filename_key, 'spec/data/case01/03-expected.cli')
27
+ end
28
+
29
+ it "Can create target file with value" do
30
+ converter01 = Csv2other.new
31
+ converter01.parse("spec/data/case01/01-input.csv", "host")
32
+
33
+ converter01.load_template("spec/data/case01/02-template.cli.erb")
34
+
35
+ filename_value = 'tmp/01-03-expected-with-value.cli'
36
+ destination = File.open(filename_value, "w")
37
+ converter01.each do |k, e|
38
+ @e = e
39
+ destination.puts converter01.render(binding)
40
+ end
41
+ destination.close
42
+
43
+ diff_file(filename_value, 'spec/data/case01/03-expected.cli')
44
+ end
45
+
46
+ it "Can create target file without parameters" do
47
+ converter01 = Csv2other.new
48
+ converter01.parse("spec/data/case01/01-input.csv", "host")
49
+
50
+ converter01.load_template("spec/data/case01/02-template.cli.erb")
51
+
52
+ filename_value = 'tmp/01-03-expected-with-parameters.cli'
53
+ destination = File.open(filename_value, "w")
54
+ converter01.each do |k, e|
55
+ @e = e
56
+ destination.puts converter01.render(binding)
57
+ end
58
+ destination.close
59
+
60
+ diff_file(filename_value, 'spec/data/case01/03-expected.cli')
61
+ end
62
+
63
+ it "Can generate separe files" do
64
+ converter02 = Csv2other.new
65
+ converter02.parse("spec/data/case02/01-case02.csv", "account")
66
+
67
+ converter02.load_template("spec/data/case02/02-template.xml.erb")
68
+
69
+ converter02.each do |k, e|
70
+ @e = e
71
+ filename_value = "tmp/02-#{k}.xml"
72
+ destination = File.open(filename_value, "w")
73
+ destination.puts converter02.render(binding)
74
+ destination.close
75
+ end
76
+
77
+ converter02.list.each do |account|
78
+ diff_file("tmp/02-#{account}.xml", "spec/data/case02/03-results/#{account}.xml")
79
+ end
80
+ end
81
+
82
+ it "Can validate XML" do
83
+ converter03 = Csv2other.new
84
+ converter03.parse("spec/data/case03/01-case03.csv", "account")
85
+
86
+ converter03.load_template("spec/data/case03/02-template.xml.erb")
87
+
88
+ filename_value = "tmp/03-dummy.xml"
89
+ destination = File.open(filename_value, "w")
90
+
91
+ begin
92
+ orig_stdout = $stdout.clone
93
+ $stdout.reopen File.new('tmp/stdout.txt', 'w')
94
+
95
+ expect do
96
+ converter03.each do |k, e|
97
+ @e = e
98
+ destination.puts converter03.render(binding)
99
+ converter03.validate_with_xsd("spec/data/case03/account.xsd", binding)
100
+ end
101
+ end.to raise_error(Nokogiri::XML::SyntaxError, "Element 'account': This element is not expected.")
102
+ rescue Exception => e
103
+ $stdout.reopen orig_stdout
104
+ raise e
105
+ ensure
106
+ $stdout.reopen orig_stdout
107
+ end
108
+
109
+ destination.close
110
+ end
111
+
112
+ it "Can validate XML subpart" do
113
+ converter04 = Csv2other.new
114
+ converter04.parse("spec/data/case04/01-case04.csv", "account")
115
+
116
+ converter04.load_template("spec/data/case04/02-template.xml.erb")
117
+
118
+ filename_value = "tmp/03-dummy-02.xml"
119
+ destination = File.open(filename_value, "w")
120
+
121
+ converter04.each do |k, e|
122
+ @e = e
123
+ converter04.validate_with_xsd("spec/data/case04/account.xsd", binding)
124
+ converter04.validate_with_xsd("spec/data/case04/subpart.xsd", binding, '/account/subpart')
125
+ destination.puts converter04.render(binding)
126
+ end
127
+
128
+ destination.close
129
+
130
+ # With bad part
131
+ converter04.load_template("spec/data/case04/02-template-bad.xml.erb")
132
+
133
+ filename_value = "tmp/03-dummy-02-bad.xml"
134
+ destination = File.open(filename_value, "w")
135
+
136
+ begin
137
+ orig_stdout = $stdout.clone
138
+ $stdout.reopen File.new('tmp/stdout.txt', 'w')
139
+
140
+ expect do
141
+ converter04.each do |k, e|
142
+ @e = e
143
+ converter04.validate_with_xsd("spec/data/case04/account.xsd", binding)
144
+ converter04.validate_with_xsd("spec/data/case04/subpart.xsd", binding, '/account/subpart')
145
+ destination.puts converter04.render(binding)
146
+ end
147
+ end.to raise_error(Nokogiri::XML::SyntaxError, "Element 'subpart': Missing child element(s). Expected is ( anotherneed ).")
148
+ rescue Exception => e
149
+ $stdout.reopen orig_stdout
150
+ raise e
151
+ ensure
152
+ $stdout.reopen orig_stdout
153
+ end
154
+
155
+ destination.close
156
+ end
157
+ end
@@ -0,0 +1,29 @@
1
+ require 'spork'
2
+ require 'rspec'
3
+
4
+ Spork.prefork do
5
+ unless ENV['DRB']
6
+ require 'simplecov'
7
+ SimpleCov.start 'rails'
8
+ end
9
+ end
10
+
11
+ Spork.each_run do
12
+ if ENV['DRB']
13
+ require 'simplecov'
14
+ SimpleCov.start 'rails'
15
+ end
16
+ end
17
+
18
+ if ENV["CI"]
19
+ require 'coveralls'
20
+ Coveralls.wear!
21
+ end
22
+
23
+ RSpec.configure do |config|
24
+ config.treat_symbols_as_metadata_keys_with_true_values = true
25
+ config.run_all_when_everything_filtered = true
26
+ config.filter_run :focus
27
+
28
+ config.order = 'random'
29
+ end
metadata ADDED
@@ -0,0 +1,130 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: csv2other
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Nicolas Ledez
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-07-19 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: nokogiri
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: A tiny gem to convert CSV files to other format with template
47
+ email:
48
+ - github@ledez.net
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - .gitignore
54
+ - .rspec
55
+ - .simplecov
56
+ - .travis.yml
57
+ - Gemfile
58
+ - Guardfile
59
+ - LICENSE.txt
60
+ - README.md
61
+ - Rakefile
62
+ - csv2other.gemspec
63
+ - lib/csv2other.rb
64
+ - lib/csv2other/version.rb
65
+ - spec/csv2other_helper.rb
66
+ - spec/data/case01/01-input.csv
67
+ - spec/data/case01/02-template.cli.erb
68
+ - spec/data/case01/03-expected.cli
69
+ - spec/data/case02/01-case02.csv
70
+ - spec/data/case02/02-template.xml.erb
71
+ - spec/data/case02/03-results/mael.xml
72
+ - spec/data/case02/03-results/pierrick.xml
73
+ - spec/data/case02/03-results/rudolph.xml
74
+ - spec/data/case03/01-case03.csv
75
+ - spec/data/case03/02-template.xml.erb
76
+ - spec/data/case03/account.xsd
77
+ - spec/data/case04/01-case04.csv
78
+ - spec/data/case04/02-template-bad.xml.erb
79
+ - spec/data/case04/02-template.xml.erb
80
+ - spec/data/case04/account.xsd
81
+ - spec/data/case04/subpart.xml
82
+ - spec/data/case04/subpart.xsd
83
+ - spec/lib/csv2other_spec.rb
84
+ - spec/spec_helper.rb
85
+ homepage: ''
86
+ licenses: []
87
+ post_install_message:
88
+ rdoc_options: []
89
+ require_paths:
90
+ - lib
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ none: false
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ requirements: []
104
+ rubyforge_project:
105
+ rubygems_version: 1.8.23
106
+ signing_key:
107
+ specification_version: 3
108
+ summary: You prepare a template, use CSV to iterate and you have some informations
109
+ test_files:
110
+ - spec/csv2other_helper.rb
111
+ - spec/data/case01/01-input.csv
112
+ - spec/data/case01/02-template.cli.erb
113
+ - spec/data/case01/03-expected.cli
114
+ - spec/data/case02/01-case02.csv
115
+ - spec/data/case02/02-template.xml.erb
116
+ - spec/data/case02/03-results/mael.xml
117
+ - spec/data/case02/03-results/pierrick.xml
118
+ - spec/data/case02/03-results/rudolph.xml
119
+ - spec/data/case03/01-case03.csv
120
+ - spec/data/case03/02-template.xml.erb
121
+ - spec/data/case03/account.xsd
122
+ - spec/data/case04/01-case04.csv
123
+ - spec/data/case04/02-template-bad.xml.erb
124
+ - spec/data/case04/02-template.xml.erb
125
+ - spec/data/case04/account.xsd
126
+ - spec/data/case04/subpart.xml
127
+ - spec/data/case04/subpart.xsd
128
+ - spec/lib/csv2other_spec.rb
129
+ - spec/spec_helper.rb
130
+ has_rdoc: