activerecord-import 0.23.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/test.yaml +107 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +214 -4
- data/Gemfile +11 -9
- data/LICENSE +21 -56
- data/README.markdown +574 -22
- data/Rakefile +2 -1
- data/activerecord-import.gemspec +4 -4
- data/benchmarks/benchmark.rb +5 -1
- data/benchmarks/schema/{mysql_schema.rb → mysql2_schema.rb} +0 -0
- data/gemfiles/5.0.gemfile +1 -0
- data/gemfiles/5.1.gemfile +1 -0
- data/gemfiles/5.2.gemfile +2 -2
- data/gemfiles/6.0.gemfile +2 -0
- data/gemfiles/6.1.gemfile +2 -0
- data/gemfiles/7.0.gemfile +1 -0
- data/lib/activerecord-import/active_record/adapters/jdbcmysql_adapter.rb +4 -4
- data/lib/activerecord-import/adapters/abstract_adapter.rb +7 -1
- data/lib/activerecord-import/adapters/mysql_adapter.rb +8 -11
- data/lib/activerecord-import/adapters/postgresql_adapter.rb +14 -16
- data/lib/activerecord-import/adapters/sqlite3_adapter.rb +125 -8
- data/lib/activerecord-import/base.rb +9 -1
- data/lib/activerecord-import/import.rb +269 -123
- data/lib/activerecord-import/synchronize.rb +2 -2
- data/lib/activerecord-import/value_sets_parser.rb +2 -0
- data/lib/activerecord-import/version.rb +1 -1
- data/lib/activerecord-import.rb +1 -0
- data/test/adapters/makara_postgis.rb +1 -0
- data/test/{travis → github}/database.yml +3 -1
- data/test/import_test.rb +138 -8
- data/test/makara_postgis/import_test.rb +8 -0
- data/test/models/animal.rb +6 -0
- data/test/models/card.rb +3 -0
- data/test/models/customer.rb +6 -0
- data/test/models/deck.rb +6 -0
- data/test/models/order.rb +6 -0
- data/test/models/playing_card.rb +2 -0
- data/test/models/user.rb +3 -1
- data/test/models/user_token.rb +4 -0
- data/test/schema/generic_schema.rb +30 -0
- data/test/schema/mysql2_schema.rb +19 -0
- data/test/schema/postgresql_schema.rb +16 -0
- data/test/schema/sqlite3_schema.rb +13 -0
- data/test/support/factories.rb +8 -8
- data/test/support/generate.rb +6 -6
- data/test/support/mysql/import_examples.rb +12 -0
- data/test/support/postgresql/import_examples.rb +100 -2
- data/test/support/shared_examples/on_duplicate_key_update.rb +54 -0
- data/test/support/shared_examples/recursive_import.rb +74 -4
- data/test/support/sqlite3/import_examples.rb +189 -25
- data/test/test_helper.rb +28 -3
- metadata +37 -18
- data/.travis.yml +0 -62
- data/gemfiles/3.2.gemfile +0 -2
- data/gemfiles/4.0.gemfile +0 -2
- data/gemfiles/4.1.gemfile +0 -2
- data/test/schema/mysql_schema.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 71623b61f085adce5254fc92ae524f595594cb5a960bb4bf0cb46d961ca9d203
|
4
|
+
data.tar.gz: ce2200678685afd85dc0a887d967bae7e2e4220942ab2f8fc34bb949b8f5a31b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71bdd79b977164223d77c77ec796ac3914124318bb377c8aa044bc8085d0f7ba9536e35b99b6a670b0a4c825e4dfe49aef5a10626b92109b2ce7dd8cd529dbb1
|
7
|
+
data.tar.gz: 89db7ca7f321a473391d2083a2dc6cb4fe8614069441c2a16601a0a3e4ab848e889eafba67b53fc2042d60b7095aab50926f4795d07930c0c90820527f07c28c
|
@@ -0,0 +1,107 @@
|
|
1
|
+
name: Test
|
2
|
+
on: [push, pull_request]
|
3
|
+
jobs:
|
4
|
+
test:
|
5
|
+
services:
|
6
|
+
postgres:
|
7
|
+
image: postgis/postgis:10-2.5
|
8
|
+
env:
|
9
|
+
POSTGRES_USER: postgres
|
10
|
+
POSTGRES_PASSWORD: postgres
|
11
|
+
ports:
|
12
|
+
- 5432:5432
|
13
|
+
# Set health checks to wait until postgres has started
|
14
|
+
options: >-
|
15
|
+
--health-cmd pg_isready
|
16
|
+
--health-interval 10s
|
17
|
+
--health-timeout 5s
|
18
|
+
--health-retries 5
|
19
|
+
strategy:
|
20
|
+
fail-fast: false
|
21
|
+
matrix:
|
22
|
+
ruby:
|
23
|
+
- 3.1
|
24
|
+
env:
|
25
|
+
- AR_VERSION: '7.0'
|
26
|
+
RUBYOPT: --enable-frozen-string-literal
|
27
|
+
- AR_VERSION: 6.1
|
28
|
+
RUBYOPT: --enable-frozen-string-literal
|
29
|
+
include:
|
30
|
+
- ruby: '3.0'
|
31
|
+
env:
|
32
|
+
AR_VERSION: '7.0'
|
33
|
+
- ruby: '3.0'
|
34
|
+
env:
|
35
|
+
AR_VERSION: 6.1
|
36
|
+
- ruby: 2.7
|
37
|
+
env:
|
38
|
+
AR_VERSION: '7.0'
|
39
|
+
- ruby: 2.7
|
40
|
+
env:
|
41
|
+
AR_VERSION: 6.1
|
42
|
+
- ruby: 2.7
|
43
|
+
env:
|
44
|
+
AR_VERSION: '6.0'
|
45
|
+
- ruby: 2.6
|
46
|
+
env:
|
47
|
+
AR_VERSION: 5.2
|
48
|
+
- ruby: 2.6
|
49
|
+
env:
|
50
|
+
AR_VERSION: 5.1
|
51
|
+
- ruby: 2.4
|
52
|
+
env:
|
53
|
+
AR_VERSION: '5.0'
|
54
|
+
- ruby: 2.4
|
55
|
+
env:
|
56
|
+
AR_VERSION: 4.2
|
57
|
+
runs-on: ubuntu-latest
|
58
|
+
env:
|
59
|
+
AR_VERSION: ${{ matrix.env.AR_VERSION }}
|
60
|
+
DB_DATABASE: activerecord_import_test
|
61
|
+
steps:
|
62
|
+
- uses: actions/checkout@v2
|
63
|
+
- uses: ruby/setup-ruby@v1
|
64
|
+
with:
|
65
|
+
ruby-version: ${{ matrix.ruby }}
|
66
|
+
bundler-cache: true
|
67
|
+
- name: Set up databases
|
68
|
+
run: |
|
69
|
+
sudo /etc/init.d/mysql start
|
70
|
+
mysql -e 'CREATE DATABASE ${{ env.DB_DATABASE }} CHARACTER SET utf8 COLLATE utf8_general_ci;' -u root -proot
|
71
|
+
psql -h localhost -U postgres -c 'create database ${{ env.DB_DATABASE }};'
|
72
|
+
psql -h localhost -U postgres -d ${{ env.DB_DATABASE }} -c 'create extension if not exists hstore;'
|
73
|
+
psql -h localhost -U postgres -c 'create extension if not exists postgis;'
|
74
|
+
psql -h localhost -U postgres -c 'create extension if not exists "uuid-ossp";'
|
75
|
+
cp test/github/database.yml test/database.yml
|
76
|
+
env:
|
77
|
+
PGPASSWORD: postgres
|
78
|
+
- name: Run tests with mysql2
|
79
|
+
run: |
|
80
|
+
bundle exec rake test:mysql2
|
81
|
+
bundle exec rake test:mysql2_makara
|
82
|
+
bundle exec rake test:mysql2spatial
|
83
|
+
- name: Run tests with postgresql
|
84
|
+
run: |
|
85
|
+
bundle exec rake test:postgis
|
86
|
+
bundle exec rake test:postgresql
|
87
|
+
bundle exec rake test:postgresql_makara
|
88
|
+
- name: Run tests with seamless_database_pool
|
89
|
+
run: |
|
90
|
+
bundle exec rake test:seamless_database_pool
|
91
|
+
if: ${{ matrix.ruby < '3.0' }}
|
92
|
+
- name: Run tests with sqlite
|
93
|
+
run: |
|
94
|
+
bundle exec rake test:spatialite
|
95
|
+
bundle exec rake test:sqlite3
|
96
|
+
lint:
|
97
|
+
runs-on: ubuntu-latest
|
98
|
+
env:
|
99
|
+
AR_VERSION: '7.0'
|
100
|
+
steps:
|
101
|
+
- uses: actions/checkout@v2
|
102
|
+
- uses: ruby/setup-ruby@v1
|
103
|
+
with:
|
104
|
+
ruby-version: 2.7
|
105
|
+
bundler-cache: true
|
106
|
+
- name: Run Rubocop
|
107
|
+
run: bundle exec rubocop
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,221 @@
|
|
1
|
+
## Changes in 1.4.0
|
2
|
+
|
3
|
+
### New Features
|
4
|
+
|
5
|
+
* Enable compatibility with frozen string literals. Thanks to @desheikh via \##760.
|
6
|
+
|
7
|
+
## Changes in 1.3.0
|
8
|
+
|
9
|
+
### Fixes
|
10
|
+
|
11
|
+
* Ensure correct timestamp values are returned for models after insert. Thanks to @kos1kov via \##756.
|
12
|
+
* Restore database_version method to public scope. Thanks to @beauraF via \##753.
|
13
|
+
|
14
|
+
### New Features
|
15
|
+
|
16
|
+
* Add support for ActiveRecord 7.0. Thanks to @nickhammond, @ryanwood, @jkowens via \##749 and \##752.
|
17
|
+
* Add support for compound foreign keys. Thanks to @Uladzimiro via \##750.
|
18
|
+
* Add support for :recursive combined with on_duplicate_key_update: :all. Thanks to @deathwish via \##746.
|
19
|
+
|
20
|
+
## Changes in 1.2.0
|
21
|
+
|
22
|
+
### Fixes
|
23
|
+
|
24
|
+
* Update JDBC MySQL adapter to use mysql2 connection adapter. Thanks to @terencechow via \##744.
|
25
|
+
* Fix importing STI models with ActiveRecord 6. Thanks to @clemens1483 via \##743.
|
26
|
+
* Use polymorphic_name instead of base_class.name for imports. Thanks to @kmhajjar via \##741.
|
27
|
+
* Fix compatibility issue with composite primary keys. Thanks to @dlanileonardo via \##737.
|
28
|
+
* Prevent double validation of associations on recursive import.
|
29
|
+
|
30
|
+
## Changes in 1.1.0
|
31
|
+
|
32
|
+
### New Features
|
33
|
+
|
34
|
+
* Add batch progress reporting. Thanks to @gee-forr via \##729.
|
35
|
+
|
36
|
+
## Changes in 1.0.8
|
37
|
+
|
38
|
+
### Fixes
|
39
|
+
|
40
|
+
* Use correct method for clearing query cache. Thanks to @EtienneDepaulis via \##719.
|
41
|
+
|
42
|
+
## Changes in 1.0.7
|
43
|
+
|
44
|
+
### New Features
|
45
|
+
|
46
|
+
* Use @@max_allowed_packet session variable instead of querying SHOW VARIABLES. Thanks to @diclophis via \#706.
|
47
|
+
* Add option :track_validation_failures. When this is set to true, failed_instances will be an array of arrays, with each inner array having the form [:index_in_dataset, :object_with_errors]. Thanks to @rorymckinley via \#684.
|
48
|
+
|
49
|
+
### Fixes
|
50
|
+
|
51
|
+
* Prevent mass-assignment errors in Rails strict mode. Thanks to @diclophis via \##709.
|
52
|
+
|
53
|
+
## Changes in 1.0.6
|
54
|
+
|
55
|
+
### Fixes
|
56
|
+
|
57
|
+
* Handle after_initialize callbacks. Thanks to @AhMohsen46 via \#691 and
|
58
|
+
\#692.
|
59
|
+
* Fix regression introduced in 1.0.4. Explicitly allow adapters to
|
60
|
+
support on duplicate key update. Thanks to @dsobiera, @jkowens via \#696.
|
61
|
+
|
62
|
+
## Changes in 1.0.5
|
63
|
+
|
64
|
+
### Fixes
|
65
|
+
|
66
|
+
* Allow serialized attributes to be returned from import. Thanks to @timanovsky, @jkowens via \#660.
|
67
|
+
* Return ActiveRecord::Connection from
|
68
|
+
ActiveRecord::Base#establish_connection. Thanks to @reverentF via
|
69
|
+
\#663.
|
70
|
+
* Support PostgreSQL array. Thanks to @ujihisa via \#669.
|
71
|
+
* Skip loading association ids when column changed. Thanks to @Aristat
|
72
|
+
via \#673.
|
73
|
+
|
74
|
+
## Changes in 1.0.4
|
75
|
+
|
76
|
+
### Fixes
|
77
|
+
|
78
|
+
* Use prepend pattern for ActiveRecord::Base#establish_connection patching. Thanks to @dombesz via \#648.
|
79
|
+
* Fix NoMethodError when using PostgreSQL ENUM types. Thanks to @sebcoetzee via \#651.
|
80
|
+
* Fix issue updating optimistic lock in Postgres. Thanks to @timanovsky
|
81
|
+
via \#656.
|
82
|
+
|
83
|
+
## Changes in 1.0.3
|
84
|
+
|
85
|
+
### New Features
|
86
|
+
|
87
|
+
* Add support for ActiveRecord 6.1.0.alpha. Thanks to @imtayadeway via
|
88
|
+
\#642.
|
89
|
+
|
90
|
+
### Fixes
|
91
|
+
|
92
|
+
* Return an empty array for results instead of nil when importing empty
|
93
|
+
array. Thanks to @gyfis via \#636.
|
94
|
+
|
95
|
+
## Changes in 1.0.2
|
96
|
+
|
97
|
+
### New Features
|
98
|
+
|
99
|
+
* Add support for CockroachDB adapter. Thanks to @willie via \#605.
|
100
|
+
* Add support for ActiveRecord 6.0.0.rc1. Thanks to @madeindjs, @bill-filler,
|
101
|
+
@jkowens via \#619, \#623.
|
102
|
+
|
103
|
+
### Fixes
|
104
|
+
|
105
|
+
* Fixes NoMethodError when attempting to use nil logger. Thanks to @MattMecel,
|
106
|
+
@khiav22357.
|
107
|
+
* Fix issue validating STI models. Thanks to @thejbsmith, @jkowens via
|
108
|
+
\#626.
|
109
|
+
|
110
|
+
## Changes in 1.0.1
|
111
|
+
|
112
|
+
### Fixes
|
113
|
+
|
114
|
+
* Raise an error with a helpful message if array of values exceeds the number of
|
115
|
+
columns for a table. Thanks to @golddranks via \#589.
|
116
|
+
* Properly check if model responds to import before creating alias.
|
117
|
+
Thanks to @jcw- via \#591.
|
118
|
+
* No longer pass :returning option to child associations on recursive
|
119
|
+
import. Thanks to @dmitriy-kiriyenko via \#595.
|
120
|
+
* Fix import issue for models with Postgresql json/jsonb fields. Thanks
|
121
|
+
to @stokarenko via \#594.
|
122
|
+
* Fix issue importing models with timestamps that contain timezone
|
123
|
+
information. Thanks to @dekaikiwi, @jkowens via \#598.
|
124
|
+
* Ignore :no_returning when using :recursive option. Thanks to @dgollahon, @jkowens
|
125
|
+
via \#599.
|
126
|
+
|
127
|
+
## Changes in 1.0.0
|
128
|
+
|
129
|
+
### New Features
|
130
|
+
|
131
|
+
* Move ActiveRecord::Dirty changes to previous_changes after import.
|
132
|
+
Thanks to @stokarenko via \#584.
|
133
|
+
|
134
|
+
### Breaking Changes
|
135
|
+
|
136
|
+
* Previously :on_duplicate_key_update was enabled by default for MySQL.
|
137
|
+
The update timestamp columns (updated_at, updated_on) would be updated
|
138
|
+
on duplicate key. This was behavior is inconsistent with the other database
|
139
|
+
adapters and could also be considered surprising. Going forward it must
|
140
|
+
be explicitly enabled. See \#548.
|
141
|
+
|
142
|
+
## Changes in 0.28.2
|
143
|
+
|
144
|
+
### Fixes
|
145
|
+
|
146
|
+
* Fix issue where validations where not working in certain scenarios.
|
147
|
+
Thanks to @CASIXx1 via \#579.
|
148
|
+
|
149
|
+
## Changes in 0.28.1
|
150
|
+
|
151
|
+
### Fixes
|
152
|
+
|
153
|
+
* Fix issue where ActiveRecord presence validations were being mutated.
|
154
|
+
Limited custom presence validation to bulk imports.
|
155
|
+
|
156
|
+
## Changes in 0.28.0
|
157
|
+
|
158
|
+
### New Features
|
159
|
+
|
160
|
+
* Allow updated timestamps to be manually set.Thanks to @Rob117, @jkowens via \#570.
|
161
|
+
|
162
|
+
### Fixes
|
163
|
+
|
164
|
+
* Fix validating presence of belongs_to associations. Existence
|
165
|
+
of the parent record is not validated, but the foreign key field
|
166
|
+
cannot be empty. Thanks to @Rob117, @jkowens via \#575.
|
167
|
+
|
168
|
+
## Changes in 0.27.0
|
169
|
+
|
170
|
+
### New Features
|
171
|
+
|
172
|
+
* Add "secret" option validate_uniqueness to enable uniqueness
|
173
|
+
validators when validating import. This is not a recommended
|
174
|
+
approach (See #228), but is being added back in for projects
|
175
|
+
that depended on this feature. Thanks to @jkowens via \#554.
|
176
|
+
|
177
|
+
## Changes in 0.26.0
|
178
|
+
|
179
|
+
### New Features
|
180
|
+
|
181
|
+
* Add on_duplicate_key_update for SQLite. Thanks to @jkowens via \#542.
|
182
|
+
* Add option to update all fields on_duplicate_key_update. Thanks to @aimerald, @jkowens via \#543.
|
183
|
+
|
184
|
+
### Fixes
|
185
|
+
|
186
|
+
* Handle deeply frozen options hashes. Thanks to @jturkel via \#546.
|
187
|
+
* Switch from FactoryGirl to FactoryBot. Thanks to @koic via \#547.
|
188
|
+
* Allow import to work with ProxySQL. Thanks to @GregFarrell via \#550.
|
189
|
+
|
190
|
+
## Changes in 0.25.0
|
191
|
+
|
192
|
+
### New Features
|
193
|
+
|
194
|
+
* Add support for makara_postgis adapter. Thanks to @chadwilken via \#527.
|
195
|
+
* Skip validating presence of belongs_to associations. Thanks to @Sohair63, @naiyt, @jkowens via \#528.
|
196
|
+
|
197
|
+
### Fixes
|
198
|
+
|
199
|
+
* Add missing require for ActiveSupport.on_load. Thanks to @onk via \#529.
|
200
|
+
* Support setting attribute values in before_validation callbacks.
|
201
|
+
Thanks to @SirRawlins, @jkowens via \#531.
|
202
|
+
* Ignore virtual columns. Thanks to @dbourguignon, @jkowens via \#530.
|
203
|
+
|
204
|
+
## Changes in 0.24.0
|
205
|
+
|
206
|
+
### Fixes
|
207
|
+
|
208
|
+
* Use the association primary key when importing. Thanks to @dpogue via \#512.
|
209
|
+
* Allow association ids to be updated. Thanks to @Aristat via \#515.
|
210
|
+
|
1
211
|
## Changes in 0.23.0
|
2
212
|
|
3
213
|
### New Features
|
4
214
|
|
5
|
-
* Rename `import` method to `bulk_import and alias to `import`. Thanks
|
215
|
+
* Rename `import` method to `bulk_import` and alias to `import`. Thanks
|
6
216
|
to @itay-grudev, @jkowens via \#498.
|
7
217
|
* Increment lock_version on duplicate key update. Thanks to @aimerald
|
8
|
-
via \#
|
218
|
+
via \#500.
|
9
219
|
|
10
220
|
### Fixes
|
11
221
|
|
@@ -125,7 +335,7 @@
|
|
125
335
|
Thanks to @jkowens via \#301.
|
126
336
|
* Allow for custom timestamp columns. Thanks to @mojidabckuu, @jkowens
|
127
337
|
via \#401.
|
128
|
-
|
338
|
+
|
129
339
|
### Fixes
|
130
340
|
|
131
341
|
* Fix ActiveRecord 5 issue coercing boolean values when serializing
|
@@ -137,7 +347,7 @@
|
|
137
347
|
|
138
348
|
* Fix issue where PostgreSQL cannot recognize columns if names
|
139
349
|
include mixed case characters. Thanks to @hugobgranja via \#379.
|
140
|
-
* Fix an issue for ActiveRecord 5 where serialized fields with
|
350
|
+
* Fix an issue for ActiveRecord 5 where serialized fields with
|
141
351
|
default values were not being typecast. Thanks to @whistlerbrk,
|
142
352
|
@jkowens via \#386.
|
143
353
|
* Add option :force_single_insert for MySQL to make sure a single
|
data/Gemfile
CHANGED
@@ -6,6 +6,11 @@ version = ENV['AR_VERSION'].to_f
|
|
6
6
|
|
7
7
|
mysql2_version = '0.3.0'
|
8
8
|
mysql2_version = '0.4.0' if version >= 4.2
|
9
|
+
mysql2_version = '0.5.0' if version >= 6.1
|
10
|
+
sqlite3_version = '1.3.0'
|
11
|
+
sqlite3_version = '1.4.0' if version >= 6.0
|
12
|
+
pg_version = '0.9'
|
13
|
+
pg_version = '1.1' if version >= 6.1
|
9
14
|
|
10
15
|
group :development, :test do
|
11
16
|
gem 'rubocop', '~> 0.40.0'
|
@@ -15,9 +20,10 @@ end
|
|
15
20
|
# Database Adapters
|
16
21
|
platforms :ruby do
|
17
22
|
gem "mysql2", "~> #{mysql2_version}"
|
18
|
-
gem "pg", "~>
|
19
|
-
gem "sqlite3", "~>
|
20
|
-
|
23
|
+
gem "pg", "~> #{pg_version}"
|
24
|
+
gem "sqlite3", "~> #{sqlite3_version}"
|
25
|
+
# seamless_database_pool requires Ruby ~> 2.0
|
26
|
+
gem "seamless_database_pool", "~> 1.0.20" if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.0.0')
|
21
27
|
end
|
22
28
|
|
23
29
|
platforms :jruby do
|
@@ -29,7 +35,7 @@ platforms :jruby do
|
|
29
35
|
end
|
30
36
|
|
31
37
|
# Support libs
|
32
|
-
gem "
|
38
|
+
gem "factory_bot"
|
33
39
|
gem "timecop"
|
34
40
|
gem "chronic"
|
35
41
|
gem "mocha", "~> 1.3.0"
|
@@ -39,13 +45,9 @@ platforms :jruby do
|
|
39
45
|
gem "ruby-debug", "= 0.10.4"
|
40
46
|
end
|
41
47
|
|
42
|
-
platforms :mri_19 do
|
43
|
-
gem "debugger"
|
44
|
-
end
|
45
|
-
|
46
48
|
platforms :ruby do
|
47
49
|
gem "pry-byebug"
|
48
|
-
gem "
|
50
|
+
gem "pry", "~> 0.12.0"
|
49
51
|
end
|
50
52
|
|
51
53
|
if version >= 4.0
|
data/LICENSE
CHANGED
@@ -1,56 +1,21 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
d) make other distribution arrangements with the author.
|
24
|
-
|
25
|
-
3. You may distribute the software in object code or binary form,
|
26
|
-
provided that you do at least ONE of the following:
|
27
|
-
|
28
|
-
a) distribute the binaries and library files of the software,
|
29
|
-
together with instructions (in the manual page or equivalent)
|
30
|
-
on where to get the original distribution.
|
31
|
-
|
32
|
-
b) accompany the distribution with the machine-readable source of
|
33
|
-
the software.
|
34
|
-
|
35
|
-
c) give non-standard binaries non-standard names, with
|
36
|
-
instructions on where to get the original software distribution.
|
37
|
-
|
38
|
-
d) make other distribution arrangements with the author.
|
39
|
-
|
40
|
-
4. You may modify and include the part of the software into any other
|
41
|
-
software (possibly commercial). But some files in the distribution
|
42
|
-
are not written by the author, so that they are not under these terms.
|
43
|
-
|
44
|
-
For the list of those files and their copying conditions, see the
|
45
|
-
file LEGAL.
|
46
|
-
|
47
|
-
5. The scripts and library files supplied as input to or produced as
|
48
|
-
output from the software do not automatically fall under the
|
49
|
-
copyright of the software, but belong to whomever generated them,
|
50
|
-
and may be sold commercially, and may be aggregated with this
|
51
|
-
software.
|
52
|
-
|
53
|
-
6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
54
|
-
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
55
|
-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
56
|
-
PURPOSE.
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2020 Zach Dennis <zach.dennis@gmail.com>
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|