jgdavey-movable_erb 0.1.3 → 0.2.0
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/CHANGELOG +3 -0
- data/{README.textile → LICENSE} +2 -28
- data/Manifest +20 -0
- data/README.md +57 -0
- data/Rakefile +14 -37
- data/bin/movable_erb +25 -54
- data/cucumber.yml +1 -0
- data/features/csv.feature +40 -0
- data/features/step_definitions/csv_steps.rb +14 -0
- data/features/step_definitions/tmp.csv +4 -0
- data/features/support/env.rb +20 -0
- data/lib/movable_erb.rb +78 -35
- data/lib/templates/mtimport.erb +22 -0
- data/movable_erb.gemspec +16 -15
- data/spec/csv_spec.rb +289 -40
- data/spec/fixtures/advanced.csv +3 -0
- data/spec/fixtures/template.erb +4 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +2 -13
- data/tasks/rspec.rake +11 -0
- metadata +49 -24
- data/History.txt +0 -4
- data/lib/movable_erb/csv.rb +0 -30
- data/lib/movable_erb/mtimport.rb +0 -65
- data/lib/movable_erb/templates/default.erb +0 -21
- data/spec/movable_erb_spec.rb +0 -10
- data/spec/mtimport_spec.rb +0 -173
- data/test/test_movable_erb.rb +0 -0
data/CHANGELOG
ADDED
data/{README.textile → LICENSE}
RENAMED
@@ -1,31 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
http://github.com/jgdavey/movable_erb
|
4
|
-
|
5
|
-
h2. DESCRIPTION:
|
6
|
-
|
7
|
-
A simple CSV to MTImport conversion utility
|
8
|
-
|
9
|
-
h2. FEATURES/PROBLEMS:
|
10
|
-
|
11
|
-
* Commandline access
|
12
|
-
|
13
|
-
h2. SYNOPSIS:
|
14
|
-
|
15
|
-
@movable_erb [options] yourfile.csv@
|
16
|
-
|
17
|
-
h2. REQUIREMENTS:
|
18
|
-
|
19
|
-
* fastercsv gem
|
20
|
-
|
21
|
-
h2. INSTALL:
|
22
|
-
|
23
|
-
@sudo gem install movable_erb@
|
24
|
-
(PENDING release)
|
25
|
-
|
26
|
-
h2. LICENSE:
|
27
|
-
|
28
|
-
(The MIT License)
|
1
|
+
The MIT License
|
2
|
+
---------------
|
29
3
|
|
30
4
|
Copyright (c) 2009
|
31
5
|
|
data/Manifest
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
CHANGELOG
|
2
|
+
LICENSE
|
3
|
+
Manifest
|
4
|
+
README.md
|
5
|
+
Rakefile
|
6
|
+
bin/movable_erb
|
7
|
+
cucumber.yml
|
8
|
+
features/csv.feature
|
9
|
+
features/step_definitions/csv_steps.rb
|
10
|
+
features/step_definitions/tmp.csv
|
11
|
+
features/support/env.rb
|
12
|
+
lib/movable_erb.rb
|
13
|
+
lib/templates/mtimport.erb
|
14
|
+
spec/csv_spec.rb
|
15
|
+
spec/fixtures/advanced.csv
|
16
|
+
spec/fixtures/example.csv
|
17
|
+
spec/fixtures/template.erb
|
18
|
+
spec/spec.opts
|
19
|
+
spec/spec_helper.rb
|
20
|
+
tasks/rspec.rake
|
data/README.md
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
Movable Erb
|
2
|
+
===========
|
3
|
+
|
4
|
+
by Joshua Davey
|
5
|
+
http://github.com/jgdavey/movable_erb
|
6
|
+
|
7
|
+
Description
|
8
|
+
-----------
|
9
|
+
|
10
|
+
A simple CSV to MTImport conversion utility.
|
11
|
+
Useful for mapping contacts data into individual entries in Movable Type.
|
12
|
+
|
13
|
+
MTImport format is simple enough that most blogging platforms can import it, so this utility could ease the pain of moving some older data structure in CSV format into a blog platform.
|
14
|
+
|
15
|
+
Requirements
|
16
|
+
------------
|
17
|
+
|
18
|
+
* fastercsv gem
|
19
|
+
|
20
|
+
Installation
|
21
|
+
------------
|
22
|
+
|
23
|
+
[sudo] gem install jgdavey-movable_erb
|
24
|
+
|
25
|
+
|
26
|
+
Usage
|
27
|
+
-----
|
28
|
+
|
29
|
+
After installing the gem, just run
|
30
|
+
|
31
|
+
movable_erb [options] yourfile.csv
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
The MIT License
|
36
|
+
---------------
|
37
|
+
|
38
|
+
Copyright (c) 2009
|
39
|
+
|
40
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
41
|
+
a copy of this software and associated documentation files (the
|
42
|
+
'Software'), to deal in the Software without restriction, including
|
43
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
44
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
45
|
+
permit persons to whom the Software is furnished to do so, subject to
|
46
|
+
the following conditions:
|
47
|
+
|
48
|
+
The above copyright notice and this permission notice shall be
|
49
|
+
included in all copies or substantial portions of the Software.
|
50
|
+
|
51
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
52
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
53
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
54
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
55
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
56
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
57
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
CHANGED
@@ -1,40 +1,17 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'echoe'
|
4
|
+
|
5
|
+
Echoe.new('movable_erb') do |p|
|
6
|
+
p.description = "A General-purpose CSV to ERB template formatter"
|
7
|
+
p.url = "http://github.com/jgdavey/movable_erb"
|
8
|
+
p.author = "Joshua Davey"
|
9
|
+
p.email = "josh@joshuadavey.com"
|
10
|
+
p.ignore_pattern = ["tmp/*", "script/*", "coverage/*"]
|
11
|
+
p.development_dependencies = ['rspec']
|
12
|
+
p.executable_pattern = ["bin/*"]
|
13
|
+
p.runtime_dependencies = ["fastercsv", "trollop"]
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
|
-
require 'movable_erb'
|
18
|
-
|
19
|
-
task :default => 'spec:run'
|
20
|
-
|
21
|
-
PROJ.name = 'movable_erb'
|
22
|
-
PROJ.authors = 'Joshua Davey'
|
23
|
-
PROJ.email = 'josh@joshuadavey.com'
|
24
|
-
PROJ.summary = 'A simple CSV to MTImport conversion utility'
|
25
|
-
PROJ.description = 'Usage: movable_erb [options]'
|
26
|
-
PROJ.url = 'http://github.com/jgdavey/movable_erb/'
|
27
|
-
PROJ.version = MovableErb::VERSION
|
28
|
-
PROJ.rubyforge.name = 'movable_erb'
|
29
|
-
|
30
|
-
PROJ.gem.dependencies = ['fastercsv']
|
31
|
-
|
32
|
-
PROJ.readme_file = 'README.textile'
|
33
|
-
PROJ.exclude << %w(\.git ^pkg tmp$)
|
34
|
-
|
35
|
-
PROJ.notes.exclude = %w(^README\.txt$ ^data/)
|
36
|
-
PROJ.rdoc.exclude = %w(^README\.txt$ ^data/)
|
37
|
-
|
38
|
-
PROJ.spec.opts << '--color'
|
16
|
+
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
|
39
17
|
|
40
|
-
# EOF
|
data/bin/movable_erb
CHANGED
@@ -1,66 +1,37 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
require 'optparse'
|
3
|
-
require 'ostruct'
|
4
2
|
require 'pp'
|
3
|
+
require 'rubygems'
|
4
|
+
require 'trollop'
|
5
5
|
|
6
|
-
require File.expand_path(
|
7
|
-
File.join(File.dirname(__FILE__), %w[.. lib movable_erb]))
|
6
|
+
require File.expand_path(File.join(File.dirname(__FILE__), %w[.. lib movable_erb]))
|
8
7
|
|
9
|
-
|
10
|
-
def self.parse(args)
|
11
|
-
# The options specified on the command line will be collected in *options*.
|
12
|
-
# We set default values here.
|
13
|
-
options = OpenStruct.new
|
14
|
-
options.template = nil
|
15
|
-
options.file = ''
|
8
|
+
DEFAULT_TEMPLATE = File.expand_path(File.join(File.dirname(__FILE__), %w[.. lib templates mtimport.erb]))
|
16
9
|
|
17
|
-
|
18
|
-
opts.banner = "Usage: movable_erb [options]"
|
19
|
-
|
20
|
-
opts.separator ""
|
21
|
-
opts.separator "It is often useful to pipe the output from STDOUT to a file"
|
22
|
-
opts.separator "e.g. # movable_erb -f yourfile.csv > import.txt"
|
23
|
-
|
24
|
-
opts.separator ""
|
25
|
-
opts.separator "Specific options:"
|
10
|
+
opts = Trollop::options do
|
26
11
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
opts.on("-t", "--template TEMPLATE", "Template to use (default is MTImport)") do |t|
|
32
|
-
options.template = t
|
33
|
-
end
|
12
|
+
version "MovableErb v#{MovableErb::VERSION} (c) 2009 Joshua Davey"
|
13
|
+
banner <<-EOS
|
14
|
+
Usage:
|
34
15
|
|
35
|
-
|
36
|
-
opts.separator "Common options:"
|
16
|
+
movable_erb [options] <filenames.csv>
|
37
17
|
|
38
|
-
|
39
|
-
# Try it and see!
|
40
|
-
opts.on_tail("-h", "--help", "Show this message") do
|
41
|
-
puts opts
|
42
|
-
exit
|
43
|
-
end
|
18
|
+
Options:
|
44
19
|
|
45
|
-
|
46
|
-
opts.on_tail("--version", "Show version") do
|
47
|
-
puts MovableErb::VERSION
|
48
|
-
exit
|
49
|
-
end
|
50
|
-
end
|
20
|
+
EOS
|
51
21
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
mtnew.render_with_template
|
59
|
-
end
|
60
|
-
end # parse()
|
61
|
-
end
|
22
|
+
# Options
|
23
|
+
opt :separator, "Separator between records", :default => "", :short => '-s'
|
24
|
+
opt :template, "path to ERB template", :default => DEFAULT_TEMPLATE, :short => '-t'
|
25
|
+
|
26
|
+
# Show the help screen when no file given
|
27
|
+
educate if ARGV.empty?
|
62
28
|
|
63
|
-
|
64
|
-
|
29
|
+
# Only continue if the CSV file is found
|
30
|
+
Trollop::die "That file could not be found" unless File.exist?(ARGV.first)
|
31
|
+
end
|
65
32
|
|
66
|
-
#
|
33
|
+
# Paths for CSV files are left in ARGV
|
34
|
+
ARGV.each do |csv|
|
35
|
+
opts.merge!(:csv => csv)
|
36
|
+
puts MovableErb.new(opts).convert
|
37
|
+
end
|
data/cucumber.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
default: --tags ~wip features
|
@@ -0,0 +1,40 @@
|
|
1
|
+
Feature: CSV Conversion
|
2
|
+
In order to convert my list of contacts to blog format
|
3
|
+
As a Command-line user
|
4
|
+
I want to use commandline utility to convert CSV files to MTImport files
|
5
|
+
|
6
|
+
Scenario: A short CSV of contacts
|
7
|
+
Given I am on the commandline
|
8
|
+
When I invoke the utility with the following CSV file:
|
9
|
+
"""
|
10
|
+
Title,Body,Body
|
11
|
+
John,773-123-1234,john@example.com
|
12
|
+
Abigail,,abby@example.com
|
13
|
+
Bernard,903-294-3921,
|
14
|
+
"""
|
15
|
+
Then I should see the following output:
|
16
|
+
"""
|
17
|
+
TITLE: John
|
18
|
+
-----
|
19
|
+
BODY:
|
20
|
+
|
21
|
+
773-123-1234
|
22
|
+
john@example.com
|
23
|
+
|
24
|
+
--------
|
25
|
+
TITLE: Abigail
|
26
|
+
-----
|
27
|
+
BODY:
|
28
|
+
|
29
|
+
abby@example.com
|
30
|
+
|
31
|
+
--------
|
32
|
+
TITLE: Bernard
|
33
|
+
-----
|
34
|
+
BODY:
|
35
|
+
|
36
|
+
903-294-3921
|
37
|
+
|
38
|
+
--------
|
39
|
+
|
40
|
+
"""
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Given /^I am on the commandline$/ do
|
2
|
+
# dummy step
|
3
|
+
end
|
4
|
+
|
5
|
+
When /^I invoke the utility with the following CSV file:?$/ do |string|
|
6
|
+
File.open(File.dirname(__FILE__) + '/tmp.csv', 'w') {|f| f.write(string) }
|
7
|
+
puts FasterCSV.parse(string).inspect
|
8
|
+
@erb = MovableErb.new({:csv => File.dirname(__FILE__) + '/tmp.csv', :separator => ''})
|
9
|
+
end
|
10
|
+
|
11
|
+
Then /^I should see the following output:?$/ do |string|
|
12
|
+
puts @erb.csv.to_hashes.inspect
|
13
|
+
@erb.convert.should == string
|
14
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'spec'
|
3
|
+
|
4
|
+
require File.expand_path(File.join(File.dirname(__FILE__), %w[.. .. lib movable_erb]))
|
5
|
+
|
6
|
+
require "mocha"
|
7
|
+
|
8
|
+
World(Mocha::API)
|
9
|
+
|
10
|
+
Before do
|
11
|
+
mocha_setup
|
12
|
+
end
|
13
|
+
|
14
|
+
After do
|
15
|
+
begin
|
16
|
+
mocha_verify
|
17
|
+
ensure
|
18
|
+
mocha_teardown
|
19
|
+
end
|
20
|
+
end
|
data/lib/movable_erb.rb
CHANGED
@@ -1,49 +1,92 @@
|
|
1
|
+
class MovableErb
|
2
|
+
VERSION = "0.2.0"
|
3
|
+
attr_accessor :csv, :erb, :separator
|
1
4
|
|
2
|
-
|
5
|
+
DEFAULT_TEMPLATE = File.expand_path(File.dirname(__FILE__) + '/templates/mtimport.erb')
|
3
6
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
def initialize(options = {})
|
8
|
+
@erb = MovableErb::Erb.setup do |erb|
|
9
|
+
erb.template = options[:template] || DEFAULT_TEMPLATE
|
10
|
+
end
|
11
|
+
if options[:csv]
|
12
|
+
@csv = MovableErb::CSV.setup do |csv|
|
13
|
+
csv.filename = options[:csv]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
@separator = options[:separator] || ""
|
17
|
+
end
|
9
18
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
19
|
+
def convert
|
20
|
+
@results = []
|
21
|
+
csv.parse!
|
22
|
+
csv.hashes.each do |hash_data|
|
23
|
+
erb.data = hash_data
|
24
|
+
@results << erb.build!
|
25
|
+
end
|
26
|
+
@results.join(separator)
|
14
27
|
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class MovableErb::CSV
|
31
|
+
require 'fastercsv'
|
32
|
+
|
33
|
+
attr_accessor :filename, :hashes
|
15
34
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
def self.libpath( *args )
|
21
|
-
args.empty? ? LIBPATH : ::File.join(LIBPATH, args.flatten)
|
35
|
+
def setup(&block)
|
36
|
+
yield self
|
37
|
+
parse! if @filename
|
38
|
+
self
|
22
39
|
end
|
23
40
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
def self.path( *args )
|
29
|
-
args.empty? ? PATH : ::File.join(PATH, args.flatten)
|
41
|
+
def self.setup
|
42
|
+
csv = self.new
|
43
|
+
yield csv
|
44
|
+
csv.parse!
|
30
45
|
end
|
31
46
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
#
|
37
|
-
def self.require_all_libs_relative_to( fname, dir = nil )
|
38
|
-
dir ||= ::File.basename(fname, '.*')
|
39
|
-
search_me = ::File.expand_path(
|
40
|
-
::File.join(::File.dirname(fname), dir, '**', '*.rb'))
|
47
|
+
def parse!
|
48
|
+
@hashes = self.to_hashes
|
49
|
+
self
|
50
|
+
end
|
41
51
|
|
42
|
-
|
52
|
+
def to_hashes
|
53
|
+
array_of_arrays = FasterCSV.read(filename)
|
54
|
+
headers = array_of_arrays.shift
|
55
|
+
headers.each { |h| h.downcase! && h.gsub!(/\s/,"_") } if headers
|
56
|
+
hashes = Array.new(array_of_arrays.length) { Hash.new }
|
57
|
+
array_of_arrays.each_with_index do |row,i|
|
58
|
+
headers.each_with_index do |header, j|
|
59
|
+
unless row[j].nil?
|
60
|
+
hashes[i][header] = [] if hashes[i][header].nil?
|
61
|
+
hashes[i][header] << row[j]
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
hashes
|
43
66
|
end
|
67
|
+
end
|
68
|
+
|
69
|
+
class MovableErb::Erb
|
70
|
+
require 'erb'
|
44
71
|
|
45
|
-
|
72
|
+
attr_accessor :template, :parsed_string, :data
|
46
73
|
|
47
|
-
|
74
|
+
def self.setup
|
75
|
+
erb = self.new
|
76
|
+
yield erb
|
77
|
+
erb
|
78
|
+
end
|
48
79
|
|
49
|
-
|
80
|
+
def template=(template_file)
|
81
|
+
@template = File.read template_file
|
82
|
+
end
|
83
|
+
|
84
|
+
def setup
|
85
|
+
yield self
|
86
|
+
end
|
87
|
+
|
88
|
+
def build!
|
89
|
+
erb = ERB.new(template, nil, '<>')
|
90
|
+
@parsed_string = erb.result(binding) if erb
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
TITLE: <%= data['title'].join(', ') if data['title'] %>
|
2
|
+
<% if data['author'] %>
|
3
|
+
AUTHOR: <%= data['author'].join(', ') %>
|
4
|
+
<% end %>
|
5
|
+
<% data['category'] && data['category'].each do |cat| %>
|
6
|
+
CATEGORY: <%= cat %>
|
7
|
+
<% end %>
|
8
|
+
-----
|
9
|
+
BODY:
|
10
|
+
|
11
|
+
<%= data['body'].join("\n") if data['body'] %>
|
12
|
+
|
13
|
+
<% if data['extended_body'] %>
|
14
|
+
|
15
|
+
-----
|
16
|
+
EXTENDED BODY:
|
17
|
+
|
18
|
+
<%= data['extended_body'] %>
|
19
|
+
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
--------
|
data/movable_erb.gemspec
CHANGED
@@ -2,25 +2,23 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{movable_erb}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.2.0"
|
6
6
|
|
7
|
-
s.required_rubygems_version = Gem::Requirement.new(">=
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Joshua Davey"]
|
9
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-09-26}
|
10
10
|
s.default_executable = %q{movable_erb}
|
11
|
-
s.description = %q{
|
11
|
+
s.description = %q{A General-purpose CSV to ERB template formatter}
|
12
12
|
s.email = %q{josh@joshuadavey.com}
|
13
13
|
s.executables = ["movable_erb"]
|
14
|
-
s.extra_rdoc_files = ["
|
15
|
-
s.files = ["
|
16
|
-
s.
|
17
|
-
s.
|
18
|
-
s.rdoc_options = ["--main", "README.textile"]
|
14
|
+
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README.md", "bin/movable_erb", "lib/movable_erb.rb", "lib/templates/mtimport.erb", "tasks/rspec.rake"]
|
15
|
+
s.files = ["CHANGELOG", "LICENSE", "README.md", "Rakefile", "bin/movable_erb", "cucumber.yml", "features/csv.feature", "features/step_definitions/csv_steps.rb", "features/step_definitions/tmp.csv", "features/support/env.rb", "lib/movable_erb.rb", "lib/templates/mtimport.erb", "spec/csv_spec.rb", "spec/fixtures/advanced.csv", "spec/fixtures/example.csv", "spec/fixtures/template.erb", "spec/spec.opts", "spec/spec_helper.rb", "tasks/rspec.rake", "Manifest", "movable_erb.gemspec"]
|
16
|
+
s.homepage = %q{http://github.com/jgdavey/movable_erb}
|
17
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Movable_erb", "--main", "README.md"]
|
19
18
|
s.require_paths = ["lib"]
|
20
19
|
s.rubyforge_project = %q{movable_erb}
|
21
|
-
s.rubygems_version = %q{1.3.
|
22
|
-
s.summary = %q{A
|
23
|
-
s.test_files = ["test/test_movable_erb.rb"]
|
20
|
+
s.rubygems_version = %q{1.3.5}
|
21
|
+
s.summary = %q{A General-purpose CSV to ERB template formatter}
|
24
22
|
|
25
23
|
if s.respond_to? :specification_version then
|
26
24
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
@@ -28,13 +26,16 @@ Gem::Specification.new do |s|
|
|
28
26
|
|
29
27
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
30
28
|
s.add_runtime_dependency(%q<fastercsv>, [">= 0"])
|
31
|
-
s.
|
29
|
+
s.add_runtime_dependency(%q<trollop>, [">= 0"])
|
30
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
32
31
|
else
|
33
32
|
s.add_dependency(%q<fastercsv>, [">= 0"])
|
34
|
-
s.add_dependency(%q<
|
33
|
+
s.add_dependency(%q<trollop>, [">= 0"])
|
34
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
35
35
|
end
|
36
36
|
else
|
37
37
|
s.add_dependency(%q<fastercsv>, [">= 0"])
|
38
|
-
s.add_dependency(%q<
|
38
|
+
s.add_dependency(%q<trollop>, [">= 0"])
|
39
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
39
40
|
end
|
40
41
|
end
|