unit_validator 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.autotest +2 -0
- data/.gitignore +43 -0
- data/Gemfile +19 -0
- data/Gemfile.lock +57 -0
- data/LICENSE +20 -0
- data/README.md +93 -0
- data/Rakefile +61 -0
- data/VERSION +1 -0
- data/autotest/discover.rb +3 -0
- data/fixtures/gdoc.csv +10 -0
- data/fixtures/gdoc.ods +0 -0
- data/fixtures/gdoc.xls +0 -0
- data/fixtures/gdoc.xlsx +0 -0
- data/lib/cf/input_validator.rb +72 -0
- data/lib/cf/result_validator.rb +52 -0
- data/lib/generic_spreadsheet.rb +23 -0
- data/lib/tasks/rcov_custom.rb +5 -0
- data/lib/validator_helpers.rb +56 -0
- data/spec/.rspec +1 -0
- data/spec/cf_input_validator_spec.rb +233 -0
- data/spec/cf_result_validator_spec.rb +76 -0
- data/spec/spec_helper.rb +23 -0
- data/unit_validator.gemspec +139 -0
- metadata +462 -0
@@ -0,0 +1,233 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe CF::InputValidator do
|
4
|
+
|
5
|
+
it "should validate the csv file rows against the rules provided by FormFactory gem" do
|
6
|
+
rules = [{:field_id => "field_1", :label => "company name", :field_type => "text_data",
|
7
|
+
:value => "Sprout", :required => true, :validation_format => "general"
|
8
|
+
},
|
9
|
+
{:field_id => "field_2", :label => "email", :field_type => "text_data",
|
10
|
+
:value => "spt@lala.com", :required => false, :validation_format => "email"
|
11
|
+
}]
|
12
|
+
inputs = "company name,email\nSprout,info@sproutify.com"
|
13
|
+
output = [["Sprout","info@sproutify.com"]]
|
14
|
+
|
15
|
+
cloud_validator = CF::InputValidator.new(rules)
|
16
|
+
val = cloud_validator.parse_and_validate(inputs)
|
17
|
+
val[:valid_units].should == output
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should not validate the csv file with extra headers" do
|
21
|
+
rules = [{:field_id => "field_1", :label => "company name", :field_type => "text_data",
|
22
|
+
:value => "Sprout", :required => true, :validation_format => "general"
|
23
|
+
}]
|
24
|
+
inputs = "company name,email\nSprout,info@sproutify.com"
|
25
|
+
output = [["Sprout","info@sproutify.com"]]
|
26
|
+
|
27
|
+
cloud_validator = CF::InputValidator.new(rules)
|
28
|
+
cloud_validator.parse_and_validate(inputs)[:valid_units].should_not == output
|
29
|
+
cloud_validator.errors.should include("Headers doesnot match the column counts")
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should not validate the csv file with invalid headers as per rules" do
|
33
|
+
rules = [{:field_id => "field_1", :label => "company name", :field_type => "text_data",
|
34
|
+
:value => "Sprout", :required => true, :validation_format => "general"
|
35
|
+
},
|
36
|
+
{:field_id => "field_2", :label => "email", :field_type => "text_data",
|
37
|
+
:value => "spt@lala.com", :required => false, :validation_format => "email"
|
38
|
+
}]
|
39
|
+
inputs = "company name\nSprout,info@sproutify.com"
|
40
|
+
output = [["Sprout","info@sproutify.com"]]
|
41
|
+
|
42
|
+
cloud_validator = CF::InputValidator.new(rules)
|
43
|
+
cloud_validator.parse_and_validate(inputs).should_not == output
|
44
|
+
cloud_validator.errors.should include("Headers doesnot match the column counts")
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should validate the input email by format rules" do
|
48
|
+
rules = [{:field_id => "field_1", :label => "company name", :field_type => "text_data",
|
49
|
+
:value => "Sprout", :required => true, :validation_format => "general"
|
50
|
+
},
|
51
|
+
{:field_id => "field_2", :label => "email", :field_type => "text_data",
|
52
|
+
:value => "spt@lala.com", :required => false, :validation_format => "email"
|
53
|
+
}]
|
54
|
+
inputs = "company name,email\nSprout,info@sproutify.com\nApple,ram@apple.co.uk\nPatan,ram.gmail@apple.co.in"
|
55
|
+
output = [["Sprout","info@sproutify.com"], ["Apple","ram@apple.co.uk"], ["Patan","ram.gmail@apple.co.in"]]
|
56
|
+
|
57
|
+
cloud_validator = CF::InputValidator.new(rules)
|
58
|
+
cloud_validator.parse_and_validate(inputs)[:valid_units].should == output
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should check valid & invalid email by format rules" do
|
62
|
+
rules = [{:field_id => "field_1", :label => "company name", :field_type => "text_data",
|
63
|
+
:value => "Sprout", :required => true, :validation_format => "general"
|
64
|
+
},
|
65
|
+
{:field_id => "field_2", :label => "email", :field_type => "text_data",
|
66
|
+
:value => "spt@lala.com", :required => false, :validation_format => "email"
|
67
|
+
}]
|
68
|
+
inputs = "company name,email\nSprout,info@sproutify.com\nApple,ram@apple\nPatan,ram.gmail@ap ple.co.in\nGmail,@gmail.com\nEmail,email@"
|
69
|
+
valid_output = [["Sprout","info@sproutify.com"]]
|
70
|
+
invalid_output = [["Apple", "ram@apple"], ["Patan", "ram.gmail@ap ple.co.in"], ["Gmail", "@gmail.com"], ["Email","email@"]]
|
71
|
+
|
72
|
+
cloud_validator = CF::InputValidator.new(rules)
|
73
|
+
cloud_validator.parse_and_validate(inputs)[:invalid_units].should == invalid_output
|
74
|
+
cloud_validator.parse_and_validate(inputs)[:valid_units].should == valid_output
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should validate url" do
|
78
|
+
rules = [{:field_id => "field_1", :label => "website", :field_type => "text_data",
|
79
|
+
:value => "http:\\www.yahoo.com", :required => true, :validation_format => "url"
|
80
|
+
}]
|
81
|
+
inputs = "website\nhttp://www.google.com\nabc"
|
82
|
+
valid_output = [["http://www.google.com"]]
|
83
|
+
invalid_output = [["abc"]]
|
84
|
+
|
85
|
+
cloud_validator = CF::InputValidator.new(rules)
|
86
|
+
cloud_validator.parse_and_validate(inputs)[:valid_units].should == valid_output
|
87
|
+
cloud_validator.parse_and_validate(inputs)[:invalid_units].should == invalid_output
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should validate number" do
|
91
|
+
rules = [{:field_id => "field_1", :label => "Age", :field_type => "text_data",
|
92
|
+
:value => "http:\\www.yahoo.com", :required => true, :validation_format => "number"
|
93
|
+
}]
|
94
|
+
inputs = "Age\n32\n@1"
|
95
|
+
valid_output = [["32"]]
|
96
|
+
invalid_output = [["@1"]]
|
97
|
+
|
98
|
+
cloud_validator = CF::InputValidator.new(rules)
|
99
|
+
cloud_validator.parse_and_validate(inputs)[:valid_units].should == valid_output
|
100
|
+
cloud_validator.parse_and_validate(inputs)[:invalid_units].should == invalid_output
|
101
|
+
end
|
102
|
+
|
103
|
+
# dd.mm.yyyy
|
104
|
+
it "should validate date" do
|
105
|
+
rules = [{:field_id => "field_1", :label => "Date of Birth", :field_type => "text_data",
|
106
|
+
:value => "01-01-2002", :required => true, :validation_format => "date"
|
107
|
+
}]
|
108
|
+
inputs = "Date of Birth\n15.12.2009\n1990-01-02"
|
109
|
+
valid_output = [["15.12.2009"]]
|
110
|
+
invalid_output = [["1990-01-02"]]
|
111
|
+
|
112
|
+
cloud_validator = CF::InputValidator.new(rules)
|
113
|
+
cloud_validator.parse_and_validate(inputs)[:valid_units].should == valid_output
|
114
|
+
cloud_validator.parse_and_validate(inputs)[:invalid_units].should == invalid_output
|
115
|
+
end
|
116
|
+
|
117
|
+
it "should validate time" do
|
118
|
+
rules = [{:field_id => "field_1", :label => "Now Time", :field_type => "text_data",
|
119
|
+
:value => "12:24", :required => true, :validation_format => "time"
|
120
|
+
}]
|
121
|
+
inputs = "Now Time\n01:21\n23:12\n24:12"
|
122
|
+
valid_output = [["01:21"],["23:12"]]
|
123
|
+
invalid_output = [["24:12"]]
|
124
|
+
|
125
|
+
cloud_validator = CF::InputValidator.new(rules)
|
126
|
+
cloud_validator.parse_and_validate(inputs)[:valid_units].should == valid_output
|
127
|
+
cloud_validator.parse_and_validate(inputs)[:invalid_units].should == invalid_output
|
128
|
+
end
|
129
|
+
|
130
|
+
it "should validate datetime" do
|
131
|
+
rules = [{:field_id => "field_1", :label => "Meeting On", :field_type => "text_data",
|
132
|
+
:value => "mm/dd/yyyy+hh:mm:ss", :required => true, :validation_format => "datetime"
|
133
|
+
}]
|
134
|
+
inputs = "Meeting On\n12/31/2003 12:12:12\n12:12:121990-01-02"
|
135
|
+
valid_output = [["12/31/2003 12:12:12"]]
|
136
|
+
invalid_output = [["12:12:121990-01-02"]]
|
137
|
+
|
138
|
+
cloud_validator = CF::InputValidator.new(rules)
|
139
|
+
cloud_validator.parse_and_validate(inputs)[:valid_units].should == valid_output
|
140
|
+
cloud_validator.parse_and_validate(inputs)[:invalid_units].should == invalid_output
|
141
|
+
end
|
142
|
+
|
143
|
+
it "should not validate unsupported validation_format" do
|
144
|
+
rules = [{:field_id => "field_1", :label => "Meeting On", :field_type => "text_data",
|
145
|
+
:value => "mm/dd/yyyy+hh:mm:ss", :required => true, :validation_format => "scroll"
|
146
|
+
}]
|
147
|
+
inputs = "Meeting On\n12/31/2003 12:12:12"
|
148
|
+
valid_output = [["12/31/2003 12:12:12"]]
|
149
|
+
err = "Validation format not supported:: scroll"
|
150
|
+
|
151
|
+
cloud_validator = CF::InputValidator.new(rules)
|
152
|
+
cloud_validator.parse_and_validate(inputs)[:valid_units].should_not == valid_output
|
153
|
+
cloud_validator.parse_and_validate(inputs)[:invalid_units].should == valid_output
|
154
|
+
cloud_validator.errors.should include(err)
|
155
|
+
end
|
156
|
+
|
157
|
+
it "should validate supported validation_format" do
|
158
|
+
rules = [{:field_id => "field_1", :label => "saroj", :field_type => "text_data",
|
159
|
+
:value => "mm/dd/yyyy+hh:mm:ss", :required => false, :validation_format => "datetime"
|
160
|
+
}]
|
161
|
+
inputs = "saroj\n\n"
|
162
|
+
valid_output = [["12/31/2003 12:12:12"]]
|
163
|
+
|
164
|
+
cloud_validator = CF::InputValidator.new(rules)
|
165
|
+
cloud_validator.parse_and_validate(inputs)[:valid_units].should_not == valid_output
|
166
|
+
cloud_validator.errors.should be_empty
|
167
|
+
end
|
168
|
+
|
169
|
+
it "should validate currency (USD)" do
|
170
|
+
rules = [{:field_id => "field_1", :label => "Amount", :field_type => "text_data",
|
171
|
+
:value => "$1,113,000.00", :required => true, :validation_format => "currency"
|
172
|
+
}]
|
173
|
+
inputs = "Amount\n\"$1,113,000.00\"\n\"$3.99\"\n\"$5,000\"\n\"$1.0\"\n\"$22,222,222,222,222,222\"\n\"$74387498372947387483978934758744329.00\"\n1\n-9\n+555\n$50*100"
|
174
|
+
valid_output = [["$1,113,000.00"], ["$3.99"], ["$5,000"], ["$1.0"], ["$22,222,222,222,222,222"], ["$74387498372947387483978934758744329.00"], ["1"]]
|
175
|
+
invalid_output = [["-9"], ["+555"], ["$50*100"]]
|
176
|
+
|
177
|
+
cloud_validator = CF::InputValidator.new(rules)
|
178
|
+
cloud_validator.parse_and_validate(inputs)[:valid_units].should == valid_output
|
179
|
+
cloud_validator.parse_and_validate(inputs)[:invalid_units].should == invalid_output
|
180
|
+
end
|
181
|
+
|
182
|
+
it "should check the file type and reject with error if its of the unsupported format" do
|
183
|
+
file_location = "fixtures/gdoc.xlsx"
|
184
|
+
CF::InputValidator.check_extension(file_location)[:check].should == true
|
185
|
+
|
186
|
+
file_location = "fixtures/gdoc.xlsxsfdsf"
|
187
|
+
CF::InputValidator.check_extension(file_location)[:check].should == false
|
188
|
+
CF::InputValidator.check_extension(file_location)[:error].should include("Invalid file! The specified format is not supported.")
|
189
|
+
end
|
190
|
+
|
191
|
+
it "should parse the input from .ods, .xlsx or .xls files" do
|
192
|
+
|
193
|
+
file_location = "fixtures/gdoc.xlsx"
|
194
|
+
inputs = Excelx.new(file_location).to_csv
|
195
|
+
|
196
|
+
output = <<STR
|
197
|
+
"company name","email"
|
198
|
+
"Apple",
|
199
|
+
"sprout","info@sproutify.com"
|
200
|
+
,
|
201
|
+
,"inf o@ab c.com"
|
202
|
+
,
|
203
|
+
"DEF"," info@def.com "
|
204
|
+
"GHI",
|
205
|
+
,
|
206
|
+
,
|
207
|
+
,
|
208
|
+
" "," "
|
209
|
+
STR
|
210
|
+
inputs.should == output
|
211
|
+
|
212
|
+
inputs = Excel.new("fixtures/gdoc.xls").to_csv
|
213
|
+
inputs.should == output
|
214
|
+
|
215
|
+
inputs = Openoffice.new("fixtures/gdoc.ods").to_csv
|
216
|
+
output = <<STR
|
217
|
+
"company name","email"
|
218
|
+
"Apple",
|
219
|
+
"sprout","info@sproutify.com"
|
220
|
+
,
|
221
|
+
,"inf o@ab c.com"
|
222
|
+
,
|
223
|
+
"DEF"," info@def.com "
|
224
|
+
"GHI",
|
225
|
+
,
|
226
|
+
,
|
227
|
+
,
|
228
|
+
,
|
229
|
+
STR
|
230
|
+
inputs.should == output
|
231
|
+
end
|
232
|
+
|
233
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe CF::ResultValidator do
|
4
|
+
|
5
|
+
it "should return a true boolean value (.valid?) if the rules match with result" do
|
6
|
+
rules = [{:field_id => "field_1", :label => "company name", :field_type => "text_data",
|
7
|
+
:value => "Sprout", :required => true, :validation_format => "general"
|
8
|
+
},
|
9
|
+
{:field_id => "field_2", :label => "website", :field_type => "text_data",
|
10
|
+
:value => "http:\\www.yahoo.com", :required => true, :validation_format => "url"
|
11
|
+
}]
|
12
|
+
|
13
|
+
# TODO
|
14
|
+
# params = {:name => "Saroj", :site => "saroj.com"} which we've to convert to the following format
|
15
|
+
result = "company name,website\nzorasinc,http://zorasinc.blogspot.com"
|
16
|
+
|
17
|
+
@result_validator = CF::ResultValidator.new
|
18
|
+
@result_validator.valid?(rules, result).should be_true
|
19
|
+
@result_validator.errors.should be_empty
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should return a false boolean value (.valid?) if the rules don't match with result and give particular error" do
|
23
|
+
rules = [{:field_id => "field_1", :label => "company name", :field_type => "text_data",
|
24
|
+
:value => "Sprout", :required => true, :validation_format => "general"
|
25
|
+
},
|
26
|
+
{:field_id => "field_2", :label => "website", :field_type => "text_data",
|
27
|
+
:value => "http:\\www.yahoo.com", :required => true, :validation_format => "url"
|
28
|
+
}]
|
29
|
+
|
30
|
+
result = "company name\nsaroz"
|
31
|
+
|
32
|
+
@result_validator = CF::ResultValidator.new
|
33
|
+
@result_validator.valid?(rules, result).should be_false
|
34
|
+
@result_validator.errors.should_not be_empty
|
35
|
+
@result_validator.errors.should include("website is/are required")
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should give xtra headers provided error and return a false boolean value (.valid?) if the rules don't match with result" do
|
40
|
+
rules = [{:field_id => "field_1", :label => "company name", :field_type => "text_data",
|
41
|
+
:value => "Sprout", :required => true, :validation_format => "general"
|
42
|
+
},
|
43
|
+
{:field_id => "field_2", :label => "website", :field_type => "text_data",
|
44
|
+
:value => "http:\\www.yahoo.com", :required => true, :validation_format => "url"
|
45
|
+
}]
|
46
|
+
|
47
|
+
result = "company name, website, email\nsaroz"
|
48
|
+
|
49
|
+
@result_validator = CF::ResultValidator.new
|
50
|
+
@result_validator.valid?(rules, result).should be_false
|
51
|
+
@result_validator.errors.should_not be_empty
|
52
|
+
@result_validator.errors.should include("cannot process as the input data consists extra headers")
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should give errors when validation fails" do
|
57
|
+
rules = [{:field_id => "field_1", :label => "company name", :field_type => "text_data",
|
58
|
+
:value => "Sprout", :required => true, :validation_format => "general"
|
59
|
+
},
|
60
|
+
{:field_id => "field_2", :label => "website", :field_type => "text_data",
|
61
|
+
:value => "http:\\www.yahoo.com", :required => true, :validation_format => "url"
|
62
|
+
}]
|
63
|
+
|
64
|
+
result = "company name, website\nsaroz, saroj@maharjan\nsprout, bttn://abc.com\nktm,"
|
65
|
+
|
66
|
+
@result_validator = CF::ResultValidator.new
|
67
|
+
@result_validator.valid?(rules, result).should be_false
|
68
|
+
@result_validator.errors.should_not be_empty
|
69
|
+
@result_validator.errors[0].should include("saroj@maharjan is not valid")
|
70
|
+
@result_validator.errors[1].should include("bttn://abc.com is not valid")
|
71
|
+
@result_validator.errors.should include("bttn://abc.com is not valid")
|
72
|
+
@result_validator.errors.should include("website is required")
|
73
|
+
@result_validator.errors.should include("saroj@maharjan is not valid","bttn://abc.com is not valid")
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
begin
|
3
|
+
Bundler.setup(:default, :development)
|
4
|
+
rescue Bundler::BundlerError => e
|
5
|
+
$stderr.puts e.message
|
6
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
7
|
+
exit e.status_code
|
8
|
+
end
|
9
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
10
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
11
|
+
|
12
|
+
require 'cf/input_validator'
|
13
|
+
require 'cf/result_validator'
|
14
|
+
require 'rspec'
|
15
|
+
|
16
|
+
# Requires supporting files with custom matchers and macros, etc,
|
17
|
+
# in ./support/ and its subdirectories.
|
18
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
19
|
+
|
20
|
+
RSpec.configure do |config|
|
21
|
+
require 'rspec/expectations'
|
22
|
+
config.include Rspec::Matchers
|
23
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{unit_validator}
|
8
|
+
s.version = "0.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["millisami", "zoras"]
|
12
|
+
s.date = %q{2010-10-22}
|
13
|
+
s.description = %q{Takes the Instruction Input as Rule, parse the CSV files and applies the validation and returns valid and invalid units}
|
14
|
+
s.email = %q{saroj@sprout-technology.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.md"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".autotest",
|
21
|
+
".gitignore",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"LICENSE",
|
25
|
+
"README.md",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"autotest/discover.rb",
|
29
|
+
"fixtures/gdoc.csv",
|
30
|
+
"fixtures/gdoc.ods",
|
31
|
+
"fixtures/gdoc.xls",
|
32
|
+
"fixtures/gdoc.xlsx",
|
33
|
+
"lib/cf/input_validator.rb",
|
34
|
+
"lib/cf/result_validator.rb",
|
35
|
+
"lib/generic_spreadsheet.rb",
|
36
|
+
"lib/tasks/rcov_custom.rb",
|
37
|
+
"lib/validator_helpers.rb",
|
38
|
+
"spec/.rspec",
|
39
|
+
"spec/cf_input_validator_spec.rb",
|
40
|
+
"spec/cf_result_validator_spec.rb",
|
41
|
+
"spec/spec_helper.rb",
|
42
|
+
"unit_validator.gemspec"
|
43
|
+
]
|
44
|
+
s.homepage = %q{http://github.com/sprout/unit_validator}
|
45
|
+
s.require_paths = ["lib"]
|
46
|
+
s.rubygems_version = %q{1.3.7}
|
47
|
+
s.summary = %q{Takes the Instruction Input as Rule, parse the CSV files and does the validation}
|
48
|
+
s.test_files = [
|
49
|
+
"spec/cf_input_validator_spec.rb",
|
50
|
+
"spec/cf_result_validator_spec.rb",
|
51
|
+
"spec/spec_helper.rb"
|
52
|
+
]
|
53
|
+
|
54
|
+
if s.respond_to? :specification_version then
|
55
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
56
|
+
s.specification_version = 3
|
57
|
+
|
58
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
59
|
+
s.add_development_dependency(%q<roo>, [">= 0"])
|
60
|
+
s.add_development_dependency(%q<zip>, [">= 0"])
|
61
|
+
s.add_development_dependency(%q<spreadsheet>, [">= 0"])
|
62
|
+
s.add_development_dependency(%q<nokogiri>, [">= 0"])
|
63
|
+
s.add_development_dependency(%q<google-spreadsheet-ruby>, [">= 0"])
|
64
|
+
s.add_development_dependency(%q<activesupport>, [">= 0"])
|
65
|
+
s.add_development_dependency(%q<fastercsv>, [">= 0"])
|
66
|
+
s.add_development_dependency(%q<autotest-fsevent>, [">= 0.2.2"])
|
67
|
+
s.add_development_dependency(%q<autotest-growl>, [">= 0.2.4"])
|
68
|
+
s.add_development_dependency(%q<builder>, [">= 0"])
|
69
|
+
s.add_development_dependency(%q<rspec>, [">= 2.0.0.rc"])
|
70
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
71
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
|
72
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
73
|
+
s.add_runtime_dependency(%q<roo>, [">= 0"])
|
74
|
+
s.add_runtime_dependency(%q<zip>, [">= 0"])
|
75
|
+
s.add_runtime_dependency(%q<spreadsheet>, [">= 0"])
|
76
|
+
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
77
|
+
s.add_runtime_dependency(%q<google-spreadsheet-ruby>, [">= 0"])
|
78
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
79
|
+
s.add_runtime_dependency(%q<builder>, [">= 0"])
|
80
|
+
s.add_development_dependency(%q<rspec>, [">= 2.0.0.rc"])
|
81
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
82
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
|
83
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
84
|
+
else
|
85
|
+
s.add_dependency(%q<roo>, [">= 0"])
|
86
|
+
s.add_dependency(%q<zip>, [">= 0"])
|
87
|
+
s.add_dependency(%q<spreadsheet>, [">= 0"])
|
88
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
89
|
+
s.add_dependency(%q<google-spreadsheet-ruby>, [">= 0"])
|
90
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
91
|
+
s.add_dependency(%q<fastercsv>, [">= 0"])
|
92
|
+
s.add_dependency(%q<autotest-fsevent>, [">= 0.2.2"])
|
93
|
+
s.add_dependency(%q<autotest-growl>, [">= 0.2.4"])
|
94
|
+
s.add_dependency(%q<builder>, [">= 0"])
|
95
|
+
s.add_dependency(%q<rspec>, [">= 2.0.0.rc"])
|
96
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
97
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
|
98
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
99
|
+
s.add_dependency(%q<roo>, [">= 0"])
|
100
|
+
s.add_dependency(%q<zip>, [">= 0"])
|
101
|
+
s.add_dependency(%q<spreadsheet>, [">= 0"])
|
102
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
103
|
+
s.add_dependency(%q<google-spreadsheet-ruby>, [">= 0"])
|
104
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
105
|
+
s.add_dependency(%q<builder>, [">= 0"])
|
106
|
+
s.add_dependency(%q<rspec>, [">= 2.0.0.rc"])
|
107
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
108
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
|
109
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
110
|
+
end
|
111
|
+
else
|
112
|
+
s.add_dependency(%q<roo>, [">= 0"])
|
113
|
+
s.add_dependency(%q<zip>, [">= 0"])
|
114
|
+
s.add_dependency(%q<spreadsheet>, [">= 0"])
|
115
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
116
|
+
s.add_dependency(%q<google-spreadsheet-ruby>, [">= 0"])
|
117
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
118
|
+
s.add_dependency(%q<fastercsv>, [">= 0"])
|
119
|
+
s.add_dependency(%q<autotest-fsevent>, [">= 0.2.2"])
|
120
|
+
s.add_dependency(%q<autotest-growl>, [">= 0.2.4"])
|
121
|
+
s.add_dependency(%q<builder>, [">= 0"])
|
122
|
+
s.add_dependency(%q<rspec>, [">= 2.0.0.rc"])
|
123
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
124
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
|
125
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
126
|
+
s.add_dependency(%q<roo>, [">= 0"])
|
127
|
+
s.add_dependency(%q<zip>, [">= 0"])
|
128
|
+
s.add_dependency(%q<spreadsheet>, [">= 0"])
|
129
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
130
|
+
s.add_dependency(%q<google-spreadsheet-ruby>, [">= 0"])
|
131
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
132
|
+
s.add_dependency(%q<builder>, [">= 0"])
|
133
|
+
s.add_dependency(%q<rspec>, [">= 2.0.0.rc"])
|
134
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
135
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
|
136
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|