mass_insert 0.2.3 → 1.0.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.
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 }