ferry 0.1.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,38 @@
1
+ def create_products
2
+ # assumes create_categories prior
3
+ @food1 = FactoryGirl.create(:product, category: @food)
4
+ @food2 = FactoryGirl.create(:product, category: @food, name: "potato", price: 0.69, sales_start_date: nil, sales_end_date: nil, flash_sale_time: nil, on_sale: false, stock: 50)
5
+ @food3 = FactoryGirl.create(:product, category: @food, name: "rice", price: 2.35, sales_start_date: Date.new(2014,7,14), sales_end_date: Date.new(2014,8,14), flash_sale_time: nil, on_sale: false, stock: 45)
6
+ @food4 = FactoryGirl.create(:product, category: @food, name: "chicken", price: 7.60, sales_start_date: Date.new(2012,1,14), sales_end_date: Date.new(2012,2,14), flash_sale_time: Time.new(2014, 11, 23, 16, 20, 0), on_sale: true, stock: 35)
7
+ @cleaning1 = FactoryGirl.create(:product, category: @cleaning, name: "soap", price: 1.29, sales_start_date: Date.new(2014,4,20), sales_end_date: Date.new(2014,7,14), flash_sale_time: nil , on_sale: false, stock: 100)
8
+ @cleaning2 = FactoryGirl.create(:product, category: @cleaning, name: "detergent", price: 3.00, sales_start_date: Date.new(2014,10,26), sales_end_date: Date.new(2014,7,14), flash_sale_time: nil, on_sale: false, stock: 120)
9
+ @cleaning3 = FactoryGirl.create(:product, category: @cleaning, name: "bleach", price: 6.00, sales_start_date: Date.new(2013,12,25), sales_end_date: Date.new(2014,1,7), flash_sale_time: Time.new(2014, 12, 23, 0, 0, 0), on_sale: true, stock: 121)
10
+ @antique1 = FactoryGirl.create(:product, category: @antiques, name: "lamp", price: 329.65, sales_start_date: nil, sales_end_date: nil, flash_sale_time: nil, on_sale: false, stock: 3)
11
+ @antique2 = FactoryGirl.create(:product, category: @antiques, name: "Elizabethan-era dress", price: 1777888999.99, sales_start_date: Date.new(2002,2,7), sales_end_date: nil, flash_sale_time: nil, on_sale: false, stock: 1)
12
+ @toy1 = FactoryGirl.create(:product, category: @toys, name: "teddy bear", price: 12.98, sales_start_date: Date.new(2014,12,1), sales_end_date: Date.new(2015,2,15), flash_sale_time: Time.new(2014, 12, 24, 12, 12, 0), on_sale: true, stock: 1000)
13
+ @toy2 = FactoryGirl.create(:product, category: @toys, name: "Monopoly", price: 19.67, sales_start_date: nil, sales_end_date: nil, flash_sale_time: nil, on_sale: false, stock: 35)
14
+ @toy3 = FactoryGirl.create(:product, category: @toys, name: "doll", price: 8.00, sales_start_date: Date.new(2013,4,4), sales_end_date: Date.new(2013,5,5), flash_sale_time: nil, on_sale: false, stock: 121)
15
+ @furniture1 = FactoryGirl.create(:product, category: @furniture, name: "chair", price: 75.00, sales_start_date: nil, sales_end_date: nil, flash_sale_time: nil, on_sale: false, stock: 222)
16
+ @furniture2 = FactoryGirl.create(:product, category: @furniture, name: "table", price: 1200.99, sales_start_date: nil, sales_end_date: nil, flash_sale_time: nil, on_sale: false, stock: 12)
17
+ @furniture3 = FactoryGirl.create(:product, category: @furniture, name: "sofa", price: 1423.80, sales_start_date: nil, sales_end_date: nil, flash_sale_time: nil, on_sale: false, stock: 279)
18
+ @furniture4 = FactoryGirl.create(:product, category: @furniture, name: "desk", price: 600.00, sales_start_date: nil, sales_end_date: nil, flash_sale_time: nil, on_sale: false, stock: 300)
19
+ end
20
+
21
+ def delete_products
22
+ @food1.delete
23
+ @food2.delete
24
+ @food3.delete
25
+ @food4.delete
26
+ @cleaning1.delete
27
+ @cleaning2.delete
28
+ @cleaning3.delete
29
+ @antique1.delete
30
+ @antique2.delete
31
+ @toy1.delete
32
+ @toy2.delete
33
+ @toy3.delete
34
+ @furniture1.delete
35
+ @furniture2.delete
36
+ @furniture3.delete
37
+ @furniture4.delete
38
+ end
@@ -1,11 +1,26 @@
1
1
  require 'ferry'
2
+ require 'fileutils'
3
+ require 'factory_girl'
2
4
 
3
- ActiveRecord::Base.establish_connection(:adapter => "sqlite3",
4
- :database => File.dirname(__FILE__) + "/ferry.sqlite3")
5
+ Dir[File.dirname(__FILE__) + "/models/*.rb"].each{ |file| require file }
6
+ load File.dirname(__FILE__) + "/support/factories.rb"
5
7
 
6
- load File.dirname(__FILE__) + '/support/schema.rb'
7
- load File.dirname(__FILE__) + '/support/models.rb'
8
- load File.dirname(__FILE__) + '/support/data.rb'
8
+ require "logger"
9
+ require "contexts.rb"
10
+
11
+ FileUtils.mkdir_p 'log'
12
+ ActiveRecord::Base.logger = Logger.new("log/test.log")
13
+ ActiveRecord::Base.logger.level = Logger::DEBUG
9
14
 
10
15
  RSpec.configure do |config|
16
+ config.include FactoryGirl::Syntax::Methods
17
+ include Contexts
18
+ end
19
+
20
+ def connect(adapter)
21
+ test_dir = Pathname.new File.dirname(__FILE__)
22
+ ENV["RAILS_ENV"] = adapter || "test"
23
+ db = YAML.load_file(test_dir.join("config/database.yml"))[adapter]
24
+ ActiveRecord::Base.establish_connection(:adapter => adapter, :database => db["database"])
25
+ load File.dirname(__FILE__) + '/support/schema.rb'
11
26
  end
@@ -0,0 +1 @@
1
+ id,name,description,float_score,active
@@ -0,0 +1,27 @@
1
+ FactoryGirl.define do
2
+ factory :product do
3
+ name "Candy Bar"
4
+ price 1.29
5
+ sales_start_date Date.new(2013,7,14)
6
+ sales_end_date nil
7
+ flash_sale_time Time.new(2016, 10, 31, 16, 20, 0)
8
+ on_sale false
9
+ stock 120
10
+ end
11
+
12
+ factory :category do
13
+ name "Food"
14
+ description "Any item that can be consumed. Can't be included in both \"Food\" and \"Decorations\" categories."
15
+ float_score 3.14159236579
16
+ active true
17
+ end
18
+
19
+ factory :cart do
20
+ email "ted@example.com"
21
+ end
22
+
23
+ factory :order do
24
+ quantity 1
25
+ date Date.new(2014,10,14)
26
+ end
27
+ end
@@ -1,17 +1,32 @@
1
1
  ActiveRecord::Schema.define do
2
- self.verbose = false
3
- create_table :designs do |t|
4
- t.integer :design_id
5
- t.integer :product_id
6
- t.integer :account_id
7
- t.string :account_file
8
- t.string :save_method
9
- t.integer :total_units
10
- t.boolean :has_upload
11
- t.date :created_at
12
- t.date :updated_at
13
- t.integer :postal_code
2
+ create_table :products, :force=>true do |t|
3
+ t.column :name, :string, :null => false
4
+ t.column :price, :decimal
5
+ t.column :category_id, :integer
6
+ t.column :sales_start_date, :datetime
7
+ t.column :sales_end_date, :datetime
8
+ t.column :flash_sale_time, :time
9
+ t.column :on_sale, :boolean, :default=>false, :null => false
10
+ t.column :stock, :integer
11
+ end
12
+
13
+ create_table :categories, :force=>true do |t|
14
+ t.column :name, :string, :null => false
15
+ t.column :description, :text
16
+ t.column :float_score, :float
17
+ t.column :active, :boolean
18
+ end
14
19
 
15
- t.timestamps
20
+ create_table :carts, :force=>true do |t|
21
+ t.column :email, :string
16
22
  end
23
+
24
+ create_table :orders, :force=>true do |t|
25
+ t.column :product_id, :integer
26
+ t.column :cart_id, :integer
27
+ t.column :quantity, :integer
28
+ t.column :date, :date
29
+ end
30
+ add_index :orders, [:cart_id, :product_id], :unique => true, :name => 'cart_product'
31
+
17
32
  end
@@ -0,0 +1,105 @@
1
+ exporter = Ferry::Exporter.new
2
+
3
+ Dir.chdir("spec") unless Dir.pwd.split('/').last == "spec"
4
+
5
+ describe("export functionality") do
6
+ describe "#export" do
7
+ describe "sqlite3 db" do
8
+ before(:all) do
9
+ connect("sqlite3")
10
+ Contexts.setup
11
+ end
12
+ after(:all) do
13
+ Contexts.teardown
14
+ FileUtils.rm_rf('db')
15
+ end
16
+ it "to_csv should create a populated csv file" do
17
+ exporter.to_csv('sqlite3', 'carts')
18
+ file_path = File.expand_path("..",Dir.pwd) + "/spec/db/csv/sqlite3/carts.csv"
19
+ expect(File).to exist(file_path)
20
+ lines = CSV.read(file_path)
21
+ expect(lines.length).to eql(27)
22
+ expect(lines[0]).to eql(["id", "email"])
23
+ expect(lines[1]).to eql(["1", "abby@example.com"])
24
+ expect(lines[26]).to eql(["26", "zach@example.com"])
25
+ end
26
+ it "to_yaml should create a populated yaml file" do
27
+ exporter.to_yaml('sqlite3', 'carts')
28
+ file_path = File.expand_path("..",Dir.pwd) + "/spec/db/yaml/sqlite3/carts.yml"
29
+ expect(File).to exist(file_path)
30
+ output = YAML.load_file(file_path)
31
+ expect(output["carts"].length).to eql(2)
32
+ expect(output["carts"].keys).to eql(["columns","records"])
33
+ expect(output["carts"]["columns"]).to eql(["id","email"])
34
+ expect(output["carts"]["records"][0]).to eql([1,"abby@example.com"])
35
+ expect(output["carts"]["records"][25]).to eql([26,"zach@example.com"])
36
+ end
37
+ end
38
+
39
+ describe "postgresql db" do
40
+ before(:all) do
41
+ connect("postgresql")
42
+ # requires you to have a ferry_test db in pg
43
+ Contexts.setup
44
+ end
45
+ after(:all) do
46
+ Contexts.teardown
47
+ FileUtils.rm_rf('db')
48
+ end
49
+ it "to_csv should create a populated csv file" do
50
+ exporter.to_csv('postgresql', 'carts')
51
+ file_path = File.expand_path("..",Dir.pwd) + "/spec/db/csv/postgresql/carts.csv"
52
+ expect(File).to exist(file_path)
53
+ lines = CSV.read(file_path)
54
+ expect(lines.length).to eql(27)
55
+ expect(lines[0]).to eql(["id", "email"])
56
+ expect(lines[1]).to eql(["1", "abby@example.com"])
57
+ expect(lines[26]).to eql(["26", "zach@example.com"])
58
+ end
59
+ it "to_yaml should create a populated yaml file" do
60
+ exporter.to_yaml('postgresql', 'carts')
61
+ file_path = File.expand_path("..",Dir.pwd) + "/spec/db/yaml/postgresql/carts.yml"
62
+ expect(File).to exist(file_path)
63
+ output = YAML.load_file(file_path)
64
+ expect(output["carts"].length).to eql(2)
65
+ expect(output["carts"].keys).to eql(["columns","records"])
66
+ expect(output["carts"]["columns"]).to eql(["id","email"])
67
+ expect(output["carts"]["records"][0]).to eql(["1","abby@example.com"])
68
+ expect(output["carts"]["records"][25]).to eql(["26","zach@example.com"])
69
+ end
70
+ end
71
+
72
+ describe "mysql2 db" do
73
+ before(:all) do
74
+ connect("mysql2")
75
+ # requires you to have a ferry_test db in mysql
76
+ Contexts.setup
77
+ end
78
+ after(:all) do
79
+ Contexts.teardown
80
+ FileUtils.rm_rf('db')
81
+ end
82
+ it "to_csv should create a populated csv file" do
83
+ exporter.to_csv('mysql2', 'carts')
84
+ file_path = File.expand_path("..",Dir.pwd) + "/spec/db/csv/mysql2/carts.csv"
85
+ expect(File).to exist(file_path)
86
+ lines = CSV.read(file_path)
87
+ expect(lines.length).to eql(27)
88
+ expect(lines[0]).to eql(["id", "email"])
89
+ expect(lines[1]).to eql(["1", "abby@example.com"])
90
+ expect(lines[26]).to eql(["26", "zach@example.com"])
91
+ end
92
+ it "to_yaml should create a populated yaml file" do
93
+ exporter.to_yaml('mysql2', 'carts')
94
+ file_path = File.expand_path("..",Dir.pwd) + "/spec/db/yaml/mysql2/carts.yml"
95
+ expect(File).to exist(file_path)
96
+ output = YAML.load_file(file_path)
97
+ expect(output["carts"].length).to eql(2)
98
+ expect(output["carts"].keys).to eql(["columns","records"])
99
+ expect(output["carts"]["columns"]).to eql(["id","email"])
100
+ expect(output["carts"]["records"][0]).to eql([1,"abby@example.com"])
101
+ expect(output["carts"]["records"][25]).to eql([26,"zach@example.com"])
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,69 @@
1
+ importer = Ferry::Importer.new
2
+
3
+ Dir.chdir("spec") unless Dir.pwd.split('/').last == "spec"
4
+
5
+ describe("import functionality") do
6
+ describe "#import" do
7
+ describe "sqlite3 db" do
8
+ before(:all) do
9
+ connect("sqlite3")
10
+ Contexts.setup
11
+ end
12
+ after(:all) do
13
+ Contexts.teardown
14
+ Category.delete_all
15
+ end
16
+ it "import should import valid csv values into ActiveRecord and the db" do
17
+ import_path = File.expand_path("..",Dir.pwd) + "/spec/support/categories_import.csv"
18
+ importer.import("sqlite3", "categories", import_path)
19
+ expect(Category.all.length).to eql(146)
20
+ expect(Category.find_by(id: 42).name).to eql("outdoor decor")
21
+ expect(Category.find_by(id: 42).description).to eql("Pellentesque magna odio, blandit in nisi fringilla, commodo.")
22
+ expect(Category.find_by(id: 42).float_score).to eql(42.42)
23
+ expect(Category.find_by(id: 42).active).to eql(true)
24
+ end
25
+ end
26
+
27
+ describe "postgresql db" do
28
+ before(:all) do
29
+ connect("postgresql")
30
+ # requires you to have a ferry_test db in pg
31
+ Contexts.setup
32
+ end
33
+ after(:all) do
34
+ Contexts.teardown
35
+ Category.delete_all
36
+ end
37
+ it "import should import valid csv values into ActiveRecord and the db" do
38
+ import_path = File.expand_path("..",Dir.pwd) + "/spec/support/categories_import.csv"
39
+ importer.import("postgresql", "categories", import_path)
40
+ expect(Category.all.length).to eql(146)
41
+ expect(Category.find_by(id: 42).name).to eql("outdoor decor")
42
+ expect(Category.find_by(id: 42).description).to eql("Pellentesque magna odio, blandit in nisi fringilla, commodo.")
43
+ expect(Category.find_by(id: 42).float_score).to eql(42.42)
44
+ expect(Category.find_by(id: 42).active).to eql(true)
45
+ end
46
+ end
47
+
48
+ describe "mysql2 db" do
49
+ before(:all) do
50
+ connect("mysql2")
51
+ # requires you to have a ferry_test db in pg
52
+ Contexts.setup
53
+ end
54
+ after(:all) do
55
+ Contexts.teardown
56
+ Category.delete_all
57
+ end
58
+ it "import should import valid csv values into ActiveRecord and the db" do
59
+ import_path = File.expand_path("..",Dir.pwd) + "/spec/support/categories_import.csv"
60
+ importer.import("mysql2", "categories", import_path)
61
+ expect(Category.all.length).to eql(146)
62
+ expect(Category.find_by(id: 42).name).to eql("outdoor decor")
63
+ expect(Category.find_by(id: 42).description).to eql("Pellentesque magna odio, blandit in nisi fringilla, commodo.")
64
+ expect(Category.find_by(id: 42).float_score).to eql(42.42)
65
+ expect(Category.find_by(id: 42).active).to eql(true)
66
+ end
67
+ end
68
+ end
69
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ferry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Corletti
@@ -10,22 +10,22 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-10-12 00:00:00.000000000 Z
13
+ date: 2014-11-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ">="
19
+ - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: 4.1.7
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ">="
26
+ - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: '0'
28
+ version: 4.1.7
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: bundler
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -41,89 +41,131 @@ dependencies:
41
41
  - !ruby/object:Gem::Version
42
42
  version: '1.6'
43
43
  - !ruby/object:Gem::Dependency
44
- name: progressbar
44
+ name: rake
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ">="
47
+ - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '0'
49
+ version: 10.3.2
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - ">="
54
+ - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '0'
56
+ version: 10.3.2
57
57
  - !ruby/object:Gem::Dependency
58
- name: rake
58
+ name: minitest
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - ">="
61
+ - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: '0'
63
+ version: 5.4.1
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - ">="
68
+ - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: '0'
70
+ version: 5.4.1
71
71
  - !ruby/object:Gem::Dependency
72
- name: minitest
72
+ name: rspec
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - ">="
75
+ - - "~>"
76
76
  - !ruby/object:Gem::Version
77
- version: '0'
77
+ version: 3.1.0
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - ">="
82
+ - - "~>"
83
83
  - !ruby/object:Gem::Version
84
- version: '0'
84
+ version: 3.1.0
85
85
  - !ruby/object:Gem::Dependency
86
- name: rspec
86
+ name: pg
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - ">="
89
+ - - "~>"
90
90
  - !ruby/object:Gem::Version
91
- version: '0'
91
+ version: 0.17.1
92
92
  type: :development
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - ">="
96
+ - - "~>"
97
97
  - !ruby/object:Gem::Version
98
- version: '0'
98
+ version: 0.17.1
99
99
  - !ruby/object:Gem::Dependency
100
- name: pg
100
+ name: sqlite3
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
- - - ">="
103
+ - - "~>"
104
104
  - !ruby/object:Gem::Version
105
- version: '0'
105
+ version: 1.3.10
106
106
  type: :development
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
- - - ">="
110
+ - - "~>"
111
111
  - !ruby/object:Gem::Version
112
- version: '0'
112
+ version: 1.3.10
113
113
  - !ruby/object:Gem::Dependency
114
- name: sqlite3
114
+ name: mysql2
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ">="
117
+ - - "~>"
118
118
  - !ruby/object:Gem::Version
119
- version: '0'
119
+ version: 0.3.16
120
120
  type: :development
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
- - - ">="
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: 0.3.16
127
+ - !ruby/object:Gem::Dependency
128
+ name: factory_girl
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: 4.5.0
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: 4.5.0
141
+ - !ruby/object:Gem::Dependency
142
+ name: progressbar
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
147
+ version: 0.21.0
148
+ type: :runtime
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: 0.21.0
155
+ - !ruby/object:Gem::Dependency
156
+ name: highline
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - "~>"
160
+ - !ruby/object:Gem::Version
161
+ version: 1.6.21
162
+ type: :runtime
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
125
167
  - !ruby/object:Gem::Version
126
- version: '0'
168
+ version: 1.6.21
127
169
  description: Ferry is a data migration and data manipulation tool that seeks to simplify
128
170
  the increasingly prevalent big data problems for developers
129
171
  email:
@@ -143,16 +185,32 @@ files:
143
185
  - Rakefile
144
186
  - bin/ferry
145
187
  - doc/ferry_readme_icon.png
188
+ - doc/ferry_readme_icon_2.png
146
189
  - ferry.gemspec
147
190
  - lib/ferry.rb
191
+ - lib/ferry/exporter.rb
192
+ - lib/ferry/importer.rb
193
+ - lib/ferry/switcher.rb
194
+ - lib/ferry/utilities.rb
148
195
  - lib/ferry/version.rb
149
- - spec/ferry.sqlite3
150
- - spec/lib/ferry_spec.rb
196
+ - spec/config/database.yml
197
+ - spec/contexts.rb
198
+ - spec/ferry_spec.rb
199
+ - spec/models/cart.rb
200
+ - spec/models/category.rb
201
+ - spec/models/order.rb
202
+ - spec/models/product.rb
203
+ - spec/sets/cart_context.rb
204
+ - spec/sets/category_context.rb
205
+ - spec/sets/order_context.rb
206
+ - spec/sets/product_context.rb
151
207
  - spec/spec_helper.rb
152
- - spec/support/data.rb
153
- - spec/support/models.rb
208
+ - spec/support/categories_import.csv
209
+ - spec/support/factories.rb
154
210
  - spec/support/schema.rb
155
- homepage: https://github.com/cmu-is-projects/
211
+ - spec/tests/exporter_tests.rb
212
+ - spec/tests/importer_tests.rb
213
+ homepage: https://cmu-is-projects.github.io/ferry
156
214
  licenses:
157
215
  - MIT
158
216
  metadata: {}
@@ -177,9 +235,20 @@ signing_key:
177
235
  specification_version: 4
178
236
  summary: Ferry is a data migration and data manipulation tool
179
237
  test_files:
180
- - spec/ferry.sqlite3
181
- - spec/lib/ferry_spec.rb
238
+ - spec/config/database.yml
239
+ - spec/contexts.rb
240
+ - spec/ferry_spec.rb
241
+ - spec/models/cart.rb
242
+ - spec/models/category.rb
243
+ - spec/models/order.rb
244
+ - spec/models/product.rb
245
+ - spec/sets/cart_context.rb
246
+ - spec/sets/category_context.rb
247
+ - spec/sets/order_context.rb
248
+ - spec/sets/product_context.rb
182
249
  - spec/spec_helper.rb
183
- - spec/support/data.rb
184
- - spec/support/models.rb
250
+ - spec/support/categories_import.csv
251
+ - spec/support/factories.rb
185
252
  - spec/support/schema.rb
253
+ - spec/tests/exporter_tests.rb
254
+ - spec/tests/importer_tests.rb