jgdavey-movable_erb 0.1.3 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|