mass_insert 0.2.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,85 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mass_insert
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alejandro Gutiérrez
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-05 00:00:00.000000000 Z
11
+ date: 2021-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: activerecord
14
+ name: pg
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '4.0'
20
- type: :runtime
19
+ version: '1.2'
20
+ type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '4.0'
26
+ version: '1.2'
27
27
  - !ruby/object:Gem::Dependency
28
- name: pg
28
+ name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.18'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.18'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: mysql2
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '11.1'
47
+ version: '0.5'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '11.1'
54
+ version: '0.5'
55
55
  - !ruby/object:Gem::Dependency
56
- name: mysql2
56
+ name: sqlite3
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.4'
61
+ version: '1.4'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0.4'
68
+ version: '1.4'
69
69
  - !ruby/object:Gem::Dependency
70
- name: sqlite3
70
+ name: appraisal
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.3'
75
+ version: '2.4'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.3'
82
+ version: '2.4'
83
+ - !ruby/object:Gem::Dependency
84
+ name: coveralls
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.8'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.8'
97
+ - !ruby/object:Gem::Dependency
98
+ name: activerecord
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '5.2'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '5.2'
83
111
  description: This gem aims to provide an easy and faster way to do single database
84
112
  insertions in Rails.
85
113
  email:
@@ -89,12 +117,22 @@ extensions: []
89
117
  extra_rdoc_files: []
90
118
  files:
91
119
  - ".gitignore"
92
- - ".rspec"
93
120
  - ".travis.yml"
121
+ - Appraisals
122
+ - CODE_OF_CONDUCT.md
94
123
  - Gemfile
95
124
  - LICENSE.txt
96
125
  - README.md
97
126
  - Rakefile
127
+ - bin/console
128
+ - bin/setup
129
+ - gemfiles/.bundle/config
130
+ - gemfiles/rails_5.2.gemfile
131
+ - gemfiles/rails_5.2.gemfile.lock
132
+ - gemfiles/rails_6.0.gemfile
133
+ - gemfiles/rails_6.0.gemfile.lock
134
+ - gemfiles/rails_6.1.gemfile
135
+ - gemfiles/rails_6.1.gemfile.lock
98
136
  - lib/mass_insert.rb
99
137
  - lib/mass_insert/adapters/abstract_adapter.rb
100
138
  - lib/mass_insert/adapters/mysql2_adapter.rb
@@ -107,22 +145,13 @@ files:
107
145
  - lib/mass_insert/utilities.rb
108
146
  - lib/mass_insert/version.rb
109
147
  - mass_insert.gemspec
110
- - test/adapters/mysql2/example_test.rb
111
- - test/adapters/postgresql/example_test.rb
112
- - test/adapters/sqlite3/example_test.rb
113
- - test/database.yml.example
114
- - test/models/kind.rb
115
- - test/models/user.rb
116
- - test/schema.rb
117
- - test/support/adapters/mysql2.rb
118
- - test/support/adapters/postgresql.rb
119
- - test/support/adapters/sqlite3.rb
120
- - test/support/shared_examples.rb
121
- - test/test_helper.rb
122
148
  homepage: https://github.com/alejandrodevs/mass_insert
123
149
  licenses:
124
150
  - MIT
125
- metadata: {}
151
+ metadata:
152
+ homepage_uri: https://github.com/alejandrodevs/mass_insert
153
+ source_code_uri: https://github.com/alejandrodevs/mass_insert
154
+ changelog_uri: https://github.com/alejandrodevs/mass_insert/blob/master/LICENSE.txt
126
155
  post_install_message:
127
156
  rdoc_options: []
128
157
  require_paths:
@@ -131,28 +160,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
160
  requirements:
132
161
  - - ">="
133
162
  - !ruby/object:Gem::Version
134
- version: 2.0.0
163
+ version: '0'
135
164
  required_rubygems_version: !ruby/object:Gem::Requirement
136
165
  requirements:
137
166
  - - ">="
138
167
  - !ruby/object:Gem::Version
139
168
  version: '0'
140
169
  requirements: []
141
- rubyforge_project:
142
- rubygems_version: 2.5.1
170
+ rubygems_version: 3.1.4
143
171
  signing_key:
144
172
  specification_version: 4
145
173
  summary: Mass database insertion in Rails
146
- test_files:
147
- - test/adapters/mysql2/example_test.rb
148
- - test/adapters/postgresql/example_test.rb
149
- - test/adapters/sqlite3/example_test.rb
150
- - test/database.yml.example
151
- - test/models/kind.rb
152
- - test/models/user.rb
153
- - test/schema.rb
154
- - test/support/adapters/mysql2.rb
155
- - test/support/adapters/postgresql.rb
156
- - test/support/adapters/sqlite3.rb
157
- - test/support/shared_examples.rb
158
- - test/test_helper.rb
174
+ test_files: []
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --color
@@ -1,29 +0,0 @@
1
- require 'test_helper'
2
-
3
- shared_examples
4
-
5
- describe 'Database Adapters' do
6
- let(:attributes) do
7
- { name: 'Ruby' }
8
- end
9
-
10
- after :each do
11
- Kind.delete_all
12
- end
13
-
14
- describe 'with duplicated record' do
15
- def setup
16
- Kind.mass_insert([attributes])
17
- end
18
-
19
- it 'does not raises error if is duplicated and has the duplication handler on' do
20
- Kind.mass_insert([attributes], handle_duplication: true)
21
- end
22
-
23
- it 'raises error if is duplicated and does not have the duplication handler on' do
24
- assert_raises ActiveRecord::RecordNotUnique do
25
- Kind.mass_insert([attributes])
26
- end
27
- end
28
- end
29
- end
@@ -1,3 +0,0 @@
1
- require 'test_helper'
2
-
3
- shared_examples
@@ -1,3 +0,0 @@
1
- require 'test_helper'
2
-
3
- shared_examples
@@ -1,20 +0,0 @@
1
- common: &common
2
- encoding: utf8
3
- database: mass_insert_test
4
-
5
- mysql2:
6
- <<: *common
7
- adapter: mysql2
8
- username: #your_mysql_username
9
- password: #your_mysql_password
10
-
11
- postgresql:
12
- <<: *common
13
- adapter: postgresql
14
- username: #your_postgresql_username
15
- password: #your_postgresql_password
16
-
17
- sqlite3:
18
- <<: *common
19
- adapter: sqlite3
20
- database: tmp/mass_insert_test.db
data/test/models/kind.rb DELETED
@@ -1,2 +0,0 @@
1
- class Kind < ActiveRecord::Base
2
- end
data/test/models/user.rb DELETED
@@ -1,2 +0,0 @@
1
- class User < ActiveRecord::Base
2
- end
data/test/schema.rb DELETED
@@ -1,15 +0,0 @@
1
- ActiveRecord::Schema.define do
2
- create_table :users, force: true do |t|
3
- t.string :name
4
- t.boolean :active
5
- t.integer :age
6
- t.decimal :money, precision: 10, scale: 2
7
- t.date :birth_date
8
- t.timestamps null: false
9
- end
10
-
11
- create_table :kinds, force: true do |t|
12
- t.string :name
13
- t.index ['name'], name: 'index_kinds_on_name', unique: true, using: :btree
14
- end
15
- end
@@ -1 +0,0 @@
1
- ENV['DATABASE_ADAPTER'] = 'mysql2'
@@ -1 +0,0 @@
1
- ENV['DATABASE_ADAPTER'] = 'postgresql'
@@ -1 +0,0 @@
1
- ENV['DATABASE_ADAPTER'] = 'sqlite3'
@@ -1,57 +0,0 @@
1
- def shared_examples
2
- describe 'Database Adapters' do
3
- let(:attributes) do
4
- {
5
- name: 'User Name',
6
- active: true,
7
- age: 25,
8
- money: 20.50,
9
- birth_date: Date.today,
10
- created_at: DateTime.now,
11
- updated_at: DateTime.now
12
- }
13
- end
14
-
15
- after :each do
16
- User.delete_all
17
- end
18
-
19
- describe 'Column types' do
20
- def setup
21
- User.mass_insert([attributes])
22
- end
23
-
24
- def user
25
- @user ||= User.last
26
- end
27
-
28
- it 'saves values correctly' do
29
- assert_equal user.name, 'User Name'
30
- assert_equal user.active, true
31
- assert_equal user.age, 25
32
- assert_equal user.money, 20.50
33
- assert_equal user.birth_date, Date.today
34
- end
35
- end
36
-
37
- describe 'Bulk inseting' do
38
- def array_of_values_with(size)
39
- (0...size).map do |i|
40
- attributes
41
- end
42
- end
43
-
44
- it 'saves 500 records correctly' do
45
- values = array_of_values_with(500)
46
- User.mass_insert(values)
47
- assert_equal User.count, 500
48
- end
49
-
50
- it 'saves 1000 records correctly' do
51
- values = array_of_values_with(1000)
52
- User.mass_insert(values)
53
- assert_equal User.count, 1000
54
- end
55
- end
56
- end
57
- end
data/test/test_helper.rb DELETED
@@ -1,36 +0,0 @@
1
- require 'coveralls'
2
- Coveralls.wear!
3
-
4
- require 'simplecov'
5
- SimpleCov.start
6
-
7
- require 'logger'
8
- require 'minitest/autorun'
9
- require 'active_record'
10
- require 'mass_insert'
11
- require 'fileutils'
12
-
13
- adapter = ENV['DATABASE_ADAPTER'] || 'sqlite3'
14
-
15
- FileUtils.mkdir_p('tmp')
16
- FileUtils.mkdir_p('log')
17
-
18
- ActiveRecord::Base.logger = Logger.new('log/test.log')
19
- ActiveRecord::Base.logger.level = Logger::DEBUG
20
-
21
- database_configuration = YAML.load_file(File.dirname(__FILE__) + '/database.yml')[adapter]
22
- ActiveRecord::Base.configurations['test'] = database_configuration
23
- ActiveRecord::Base.establish_connection(:test)
24
-
25
- begin
26
- ActiveRecord::Base.connection
27
- rescue
28
- # Ensures database exists.
29
- ActiveRecord::Tasks::DatabaseTasks.database_configuration = database_configuration
30
- ActiveRecord::Tasks::DatabaseTasks.create_current('test')
31
- end
32
-
33
- require File.dirname(__FILE__) + '/schema.rb'
34
-
35
- Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each{ |file| require file }
36
- Dir[File.dirname(__FILE__) + "/models/**/*.rb"].each{ |file| require file }