mongify 1.4.0 → 1.4.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d206704186fb2f3540e6c6528859b5b28dd50476d5cd9e59037a95bdcf105095
4
- data.tar.gz: 19f7951ac4286722d6fd12bdde9b6b27428bc18658c94bf75c521cf9baca37d7
3
+ metadata.gz: 07e8b3eee218999bea9a49f4f4f6235b1755dcd44671ed2af1d6c6a65a4e44a6
4
+ data.tar.gz: ada90480195c6eccd8bccb9f88fdd37672fb35314f12fc45f165512a7ebc08f9
5
5
  SHA512:
6
- metadata.gz: cd9958f34535ef538bf93ec31fa1b16f0f18a949644fa0b3fe793a33d663fcd6e84a1d2fd4f69da133a9d7ff52934c742039f41041fa11bd3c6e220825454c45
7
- data.tar.gz: e26d6525de4971d3941bf55325b6645e695d967068fb0dc0fbfb38d8526f0ec47f6487e2fbf7b4c989972b9745b5eae545acbf3c5af095952dd6d129814d0b8a
6
+ metadata.gz: d059e8cafc3e1947c76b1f1b571c0e81f812a8e3241e38fdfe59272496e0edd697e5d348be959031fa65c6adf0bb3d2d6895ecf9d63666a77409cde9ac629330
7
+ data.tar.gz: 3c5a31a377f438a43c62f05d345633a5c6eee857ad687b860e1dcb99fb23db705b1f48b849ff272b7cd7ccb98b950fc390385c83adea45402c78320f774ce0f1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Mongify ChangeLog
2
2
 
3
+ ## 1.4.2 / 18 Aug 2026
4
+ * **BREAKING**: Ruby 3.1+ now required (was 3.0+)
5
+ * Fixed dependency security vulnerabilities:
6
+ - Require ActiveRecord and ActiveSupport >= 7.2.3.2, < 8.0
7
+ - Require concurrent-ruby >= 1.3.7, < 2.0
8
+
9
+ ## 1.4.1 / 13 Jan 2026
10
+ * Added MongoDB 8.0 support and compatibility testing
11
+ * Fixed Ruby 3.4 compatibility:
12
+ - Added `abbrev` gem dependency (removed from Ruby 3.4 stdlib)
13
+ - Replaced deprecated `File.exists?` with `File.exist?`
14
+ - Updated cucumber dependency to >= 9.0
15
+ * Fixed batch insert compatibility with mongo driver 2.22+ (`insert_many` for arrays)
16
+ * Updated docker-compose.dev.yml to use MongoDB 8.0
17
+ * Documented tested MongoDB versions (4.4, 8.0) in README
18
+
3
19
  ## 1.4.0 / 12 Jan 2026
4
20
  * **BREAKING**: Ruby 3.0+ now required (was 2.5+)
5
21
  * Upgraded to ActiveRecord/ActiveSupport 7.x (7.2.3)
@@ -14,8 +30,6 @@
14
30
  * Fixed Ruby 3.x compatibility in DataRow#respond_to?
15
31
  * Fixed Rails 7.0+ deprecation: Time#to_s(:db) -> Time#to_fs(:db)
16
32
  * Removed explicit bson/bson_ext dependencies (now bundled with mongo gem)
17
-
18
- ## 1.3.3 / 12 Jan 2026
19
33
  * Updated ActiveRecord/ActiveSupport compatibility to support versions 4.2 through 6.0
20
34
  * Updated minimum Ruby version to 2.5+
21
35
  * Fixed ActiveRecord type casting API changes (`type_cast_from_database` -> `deserialize`)
@@ -192,4 +206,4 @@
192
206
  * Improved tests to cover most of the code
193
207
  * Changed overall commands for Mongify
194
208
  ## 0.0.1 / 22 Mar 2010
195
- * Initial Setup
209
+ * Initial Setup
data/Gemfile.lock CHANGED
@@ -1,22 +1,25 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mongify (1.4.0)
5
- activerecord (>= 7.1.5.2, < 8.0)
6
- activesupport (>= 7.1.5.2, < 8.0)
4
+ mongify (1.4.2)
5
+ abbrev
6
+ activerecord (>= 7.2.3.2, < 8.0)
7
+ activesupport (>= 7.2.3.2, < 8.0)
8
+ concurrent-ruby (~> 1.3, >= 1.3.7)
7
9
  highline (>= 1.7.8)
8
10
  mongo (~> 2.19)
9
11
 
10
12
  GEM
11
13
  remote: https://rubygems.org/
12
14
  specs:
13
- activemodel (7.2.3)
14
- activesupport (= 7.2.3)
15
- activerecord (7.2.3)
16
- activemodel (= 7.2.3)
17
- activesupport (= 7.2.3)
15
+ abbrev (0.1.2)
16
+ activemodel (7.2.3.2)
17
+ activesupport (= 7.2.3.2)
18
+ activerecord (7.2.3.2)
19
+ activemodel (= 7.2.3.2)
20
+ activesupport (= 7.2.3.2)
18
21
  timeout (>= 0.4.0)
19
- activesupport (7.2.3)
22
+ activesupport (7.2.3.2)
20
23
  base64
21
24
  benchmark (>= 0.3)
22
25
  bigdecimal
@@ -25,7 +28,7 @@ GEM
25
28
  drb
26
29
  i18n (>= 1.6, < 2)
27
30
  logger (>= 1.4.2)
28
- minitest (>= 5.1)
31
+ minitest (>= 5.1, < 6)
29
32
  securerandom (>= 0.3)
30
33
  tzinfo (~> 2.0, >= 2.0.5)
31
34
  amazing_print (1.6.0)
@@ -36,34 +39,35 @@ GEM
36
39
  builder (3.3.0)
37
40
  byebug (11.1.3)
38
41
  coderay (1.1.3)
39
- concurrent-ruby (1.3.6)
42
+ concurrent-ruby (1.3.8)
40
43
  connection_pool (2.5.5)
41
44
  coolline (0.5.0)
42
45
  unicode_utils (~> 1.4)
43
- cucumber (8.0.0)
44
- builder (~> 3.2, >= 3.2.4)
45
- cucumber-ci-environment (~> 9.0, >= 9.0.4)
46
- cucumber-core (~> 11.0, >= 11.0.0)
47
- cucumber-cucumber-expressions (~> 15.1, >= 15.1.1)
48
- cucumber-gherkin (~> 23.0, >= 23.0.1)
49
- cucumber-html-formatter (~> 19.1, >= 19.1.0)
50
- cucumber-messages (~> 18.0, >= 18.0.0)
51
- diff-lcs (~> 1.5, >= 1.5.0)
52
- mime-types (~> 3.4, >= 3.4.1)
53
- multi_test (~> 1.1, >= 1.1.0)
54
- sys-uname (~> 1.2, >= 1.2.2)
55
- cucumber-ci-environment (9.2.0)
56
- cucumber-core (11.0.0)
57
- cucumber-gherkin (~> 23.0, >= 23.0.1)
58
- cucumber-messages (~> 18.0, >= 18.0.0)
59
- cucumber-tag-expressions (~> 4.1, >= 4.1.0)
60
- cucumber-cucumber-expressions (15.2.0)
61
- cucumber-gherkin (23.0.1)
62
- cucumber-messages (~> 18.0, >= 18.0.0)
63
- cucumber-html-formatter (19.2.0)
64
- cucumber-messages (~> 18.0, >= 18.0.0)
65
- cucumber-messages (18.0.0)
66
- cucumber-tag-expressions (4.1.0)
46
+ cucumber (10.2.0)
47
+ base64 (~> 0.2)
48
+ builder (~> 3.2)
49
+ cucumber-ci-environment (> 9, < 12)
50
+ cucumber-core (> 15, < 17)
51
+ cucumber-cucumber-expressions (> 17, < 20)
52
+ cucumber-html-formatter (> 21, < 23)
53
+ diff-lcs (~> 1.5)
54
+ logger (~> 1.6)
55
+ mini_mime (~> 1.1)
56
+ multi_test (~> 1.1)
57
+ sys-uname (~> 1.3)
58
+ cucumber-ci-environment (11.0.0)
59
+ cucumber-core (16.1.1)
60
+ cucumber-gherkin (> 36, < 40)
61
+ cucumber-messages (> 31, < 33)
62
+ cucumber-tag-expressions (> 6, < 9)
63
+ cucumber-cucumber-expressions (18.0.1)
64
+ bigdecimal
65
+ cucumber-gherkin (37.0.1)
66
+ cucumber-messages (>= 31, < 32)
67
+ cucumber-html-formatter (22.3.0)
68
+ cucumber-messages (> 23, < 33)
69
+ cucumber-messages (31.2.0)
70
+ cucumber-tag-expressions (8.1.0)
67
71
  diff-lcs (1.6.2)
68
72
  drb (2.2.3)
69
73
  ffi (1.17.3-arm64-darwin)
@@ -76,12 +80,9 @@ GEM
76
80
  pry-byebug (~> 3.9)
77
81
  pry-coolline (~> 0.2)
78
82
  logger (1.7.0)
79
- memoist (0.16.2)
83
+ memoist3 (1.0.0)
80
84
  method_source (1.1.0)
81
- mime-types (3.7.0)
82
- logger
83
- mime-types-data (~> 3.2025, >= 3.2025.0507)
84
- mime-types-data (3.2025.0924)
85
+ mini_mime (1.1.5)
85
86
  minitest (5.27.0)
86
87
  mocha (3.0.1)
87
88
  ruby2_keywords (>= 0.0.5)
@@ -119,22 +120,22 @@ GEM
119
120
  rspec-support (3.13.6)
120
121
  ruby2_keywords (0.0.5)
121
122
  securerandom (0.4.1)
122
- sqlite3 (1.6.9-arm64-darwin)
123
- sys-uname (1.4.0)
123
+ sqlite3 (2.9.6-arm64-darwin)
124
+ sys-uname (1.4.1)
124
125
  ffi (~> 1.1)
125
- memoist (~> 0.16.2)
126
+ memoist3 (~> 1.0.0)
126
127
  timeout (0.6.0)
127
128
  tzinfo (2.0.6)
128
129
  concurrent-ruby (~> 1.0)
129
130
  unicode_utils (1.4.0)
130
131
  watchr (0.7)
131
- yard (0.9.38)
132
+ yard (0.9.45)
132
133
 
133
134
  PLATFORMS
134
135
  arm64-darwin-25
135
136
 
136
137
  DEPENDENCIES
137
- cucumber (>= 0.10)
138
+ cucumber (>= 9.0)
138
139
  jazz_fingers
139
140
  mocha (>= 0.9.8)
140
141
  mongify!
data/README.rdoc CHANGED
@@ -10,7 +10,10 @@ A data translator from sql database to mongoDB.
10
10
  Supports MySQL, PostgreSQL, SQLite, Oracle, SQLServer, and DB2 (Basically anything ActiveRecord has built-in).
11
11
  However, I've only tested it with MySql and SQLite
12
12
 
13
- Supports any version of MongoDB
13
+ === Tested MongoDB Versions
14
+
15
+ * MongoDB 4.4
16
+ * MongoDB 8.0
14
17
 
15
18
  Learn more about MongoDB at: http://www.mongodb.org
16
19
 
@@ -1,6 +1,6 @@
1
1
  services:
2
2
  mongodb:
3
- image: mongo:4.4
3
+ image: mongo:8.0
4
4
  container_name: mongify_mongodb
5
5
  ports:
6
6
  - "27017:27017"
@@ -26,7 +26,7 @@ module MongifyWorld
26
26
 
27
27
  # Executes mongify command with arguments
28
28
  def mongify(args)
29
- run("ruby -Ilib -rubygems bin/mongify #{args}")
29
+ run("bundle exec ruby -Ilib bin/mongify #{args}")
30
30
  end
31
31
  end
32
32
 
@@ -55,7 +55,7 @@ module Mongify
55
55
  raise ConfigurationFileNotFound, "Database Configuration file is missing or cannot be found" if command_options[:required] && command_options[:required].include?(:configuration_file) && @config.nil?
56
56
  if command_options[:required] && command_options[:required].include?(:translation_file)
57
57
  raise TranslationFileNotFound, "Translation file is required for command '#{current_command}'" unless @translation_file
58
- raise TranslationFileNotFound, "Unable to find Translation File at #{@translation_file}" unless File.exists?(@translation_file)
58
+ raise TranslationFileNotFound, "Unable to find Translation File at #{@translation_file}" unless File.exist?(@translation_file)
59
59
  @translation = Translation.parse(@translation_file)
60
60
  end
61
61
  end
@@ -9,7 +9,7 @@ module Mongify
9
9
 
10
10
  # Parses a external configuration file and evaluates it and returns a instence of a configuration class
11
11
  def parse(file_name)
12
- raise Mongify::ConfigurationFileNotFound, "File #{file_name} is missing" unless File.exists?(file_name)
12
+ raise Mongify::ConfigurationFileNotFound, "File #{file_name} is missing" unless File.exist?(file_name)
13
13
  config = self.new
14
14
  config.instance_eval(File.read(file_name))
15
15
  config
@@ -109,9 +109,13 @@ module Mongify
109
109
  client[collection].find(query)
110
110
  end
111
111
 
112
- # Inserts into the collection a given row
112
+ # Inserts into the collection a given row or array of rows
113
113
  def insert_into(collection_name, row)
114
- client[collection_name].insert_one(row)
114
+ if row.is_a?(Array)
115
+ client[collection_name].insert_many(row)
116
+ else
117
+ client[collection_name].insert_one(row)
118
+ end
115
119
  end
116
120
 
117
121
  # Updates a collection item with a given ID with the given attributes
@@ -1,4 +1,4 @@
1
1
  module Mongify
2
2
  # Mongify's Current Version Number
3
- VERSION = "1.4.0".freeze
3
+ VERSION = "1.4.2".freeze
4
4
  end
data/mongify.gemspec CHANGED
@@ -10,17 +10,19 @@ Gem::Specification.new do |s|
10
10
  s.homepage = "http://mongify.com"
11
11
  s.summary = %q{Translate your SQL data to MongoDB with ease}
12
12
  s.description = %q{Mongify allows you to map your sql data into a mongodb document database with a simple DSL.}
13
- s.required_ruby_version = ">= 3.0"
13
+ s.required_ruby_version = ">= 3.1"
14
14
 
15
- s.add_runtime_dependency('activerecord', ">= 7.1.5.2", "< 8.0")
16
- s.add_runtime_dependency('activesupport', ">= 7.1.5.2", "< 8.0")
15
+ s.add_runtime_dependency('activerecord', ">= 7.2.3.2", "< 8.0")
16
+ s.add_runtime_dependency('activesupport', ">= 7.2.3.2", "< 8.0")
17
+ s.add_runtime_dependency('concurrent-ruby', "~> 1.3", ">= 1.3.7")
17
18
  s.add_runtime_dependency('mongo', "~> 2.19")
18
19
  s.add_runtime_dependency('highline', '>= 1.7.8')
20
+ s.add_runtime_dependency('abbrev') # Required for Ruby 3.4+ (removed from stdlib)
19
21
 
20
22
 
21
23
  s.add_development_dependency('rspec', '~> 3.0')
22
24
  s.add_development_dependency('rspec-collection_matchers', '~> 1.0')
23
- s.add_development_dependency('cucumber', '>= 0.10')
25
+ s.add_development_dependency('cucumber', '>= 9.0')
24
26
  s.add_development_dependency('mocha', '>= 0.9.8')
25
27
  s.add_development_dependency('yard', '~> 0.9.11')
26
28
  s.add_development_dependency('sqlite3', '>= 1.3')
@@ -1,7 +1,7 @@
1
1
  # Used during testing to read in a config file
2
2
  class ConfigReader
3
3
  def initialize(filepath)
4
- if File.exists?(filepath)
4
+ if File.exist?(filepath)
5
5
  config = YAML.load_file(filepath)
6
6
  config.each { |key, value| instance_variable_set("@#{key}", value) }
7
7
  else
@@ -31,7 +31,7 @@ class DatabaseGenerator
31
31
 
32
32
  # Creates a new mysql database (and deletes the old one)
33
33
  def self.sqlite(include_data=true)
34
- File.delete(sqlite_connection.database) if File.exists?(sqlite_connection.database)
34
+ File.delete(sqlite_connection.database) if File.exist?(sqlite_connection.database)
35
35
 
36
36
  conn = sqlite_connection.connection
37
37
 
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongify
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kalek
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2026-01-12 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activerecord
@@ -16,7 +15,7 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: 7.1.5.2
18
+ version: 7.2.3.2
20
19
  - - "<"
21
20
  - !ruby/object:Gem::Version
22
21
  version: '8.0'
@@ -26,7 +25,7 @@ dependencies:
26
25
  requirements:
27
26
  - - ">="
28
27
  - !ruby/object:Gem::Version
29
- version: 7.1.5.2
28
+ version: 7.2.3.2
30
29
  - - "<"
31
30
  - !ruby/object:Gem::Version
32
31
  version: '8.0'
@@ -36,7 +35,7 @@ dependencies:
36
35
  requirements:
37
36
  - - ">="
38
37
  - !ruby/object:Gem::Version
39
- version: 7.1.5.2
38
+ version: 7.2.3.2
40
39
  - - "<"
41
40
  - !ruby/object:Gem::Version
42
41
  version: '8.0'
@@ -46,10 +45,30 @@ dependencies:
46
45
  requirements:
47
46
  - - ">="
48
47
  - !ruby/object:Gem::Version
49
- version: 7.1.5.2
48
+ version: 7.2.3.2
50
49
  - - "<"
51
50
  - !ruby/object:Gem::Version
52
51
  version: '8.0'
52
+ - !ruby/object:Gem::Dependency
53
+ name: concurrent-ruby
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - "~>"
57
+ - !ruby/object:Gem::Version
58
+ version: '1.3'
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 1.3.7
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.3'
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: 1.3.7
53
72
  - !ruby/object:Gem::Dependency
54
73
  name: mongo
55
74
  requirement: !ruby/object:Gem::Requirement
@@ -78,6 +97,20 @@ dependencies:
78
97
  - - ">="
79
98
  - !ruby/object:Gem::Version
80
99
  version: 1.7.8
100
+ - !ruby/object:Gem::Dependency
101
+ name: abbrev
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ type: :runtime
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
81
114
  - !ruby/object:Gem::Dependency
82
115
  name: rspec
83
116
  requirement: !ruby/object:Gem::Requirement
@@ -112,14 +145,14 @@ dependencies:
112
145
  requirements:
113
146
  - - ">="
114
147
  - !ruby/object:Gem::Version
115
- version: '0.10'
148
+ version: '9.0'
116
149
  type: :development
117
150
  prerelease: false
118
151
  version_requirements: !ruby/object:Gem::Requirement
119
152
  requirements:
120
153
  - - ">="
121
154
  - !ruby/object:Gem::Version
122
- version: '0.10'
155
+ version: '9.0'
123
156
  - !ruby/object:Gem::Dependency
124
157
  name: mocha
125
158
  requirement: !ruby/object:Gem::Requirement
@@ -326,7 +359,6 @@ files:
326
359
  homepage: http://mongify.com
327
360
  licenses: []
328
361
  metadata: {}
329
- post_install_message:
330
362
  rdoc_options:
331
363
  - "--title"
332
364
  - Mongify -- SQL db to Mongo db converter
@@ -340,15 +372,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
340
372
  requirements:
341
373
  - - ">="
342
374
  - !ruby/object:Gem::Version
343
- version: '3.0'
375
+ version: '3.1'
344
376
  required_rubygems_version: !ruby/object:Gem::Requirement
345
377
  requirements:
346
378
  - - ">="
347
379
  - !ruby/object:Gem::Version
348
380
  version: '0'
349
381
  requirements: []
350
- rubygems_version: 3.3.27
351
- signing_key:
382
+ rubygems_version: 4.0.4
352
383
  specification_version: 4
353
384
  summary: Translate your SQL data to MongoDB with ease
354
385
  test_files: