mongify 1.4.0 → 1.4.1

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: 9df23e8fc3b94b92b709ff1650178482c0dd184a44ce703c74fc40fc5b5e2b6f
4
+ data.tar.gz: 833b3a0068e9b9451a1cc26ec22c33673071b16bc848e4f8891fc09091b455e2
5
5
  SHA512:
6
- metadata.gz: cd9958f34535ef538bf93ec31fa1b16f0f18a949644fa0b3fe793a33d663fcd6e84a1d2fd4f69da133a9d7ff52934c742039f41041fa11bd3c6e220825454c45
7
- data.tar.gz: e26d6525de4971d3941bf55325b6645e695d967068fb0dc0fbfb38d8526f0ec47f6487e2fbf7b4c989972b9745b5eae545acbf3c5af095952dd6d129814d0b8a
6
+ metadata.gz: 8216795409436c7ad7c5164c0bce9baab5bdc7c24370809ea038a3935f970a1bf6a7efda2abe2f63159c8582f85a6da58265c3d8cd0e095e9b4b91e347264516
7
+ data.tar.gz: 4403a7f8792a1da7d3134052247714c6a0aff5ec2ab56d4ccb1da3d987e9c7707a09757da8e55e869da10447f033416ef15302f9f87eba1d8554c5874cea0b4c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Mongify ChangeLog
2
2
 
3
+ ## 1.4.1 / 13 Jan 2026
4
+ * Added MongoDB 8.0 support and compatibility testing
5
+ * Fixed Ruby 3.4 compatibility:
6
+ - Added `abbrev` gem dependency (removed from Ruby 3.4 stdlib)
7
+ - Replaced deprecated `File.exists?` with `File.exist?`
8
+ - Updated cucumber dependency to >= 9.0
9
+ * Fixed batch insert compatibility with mongo driver 2.22+ (`insert_many` for arrays)
10
+ * Updated docker-compose.dev.yml to use MongoDB 8.0
11
+ * Documented tested MongoDB versions (4.4, 8.0) in README
12
+
3
13
  ## 1.4.0 / 12 Jan 2026
4
14
  * **BREAKING**: Ruby 3.0+ now required (was 2.5+)
5
15
  * Upgraded to ActiveRecord/ActiveSupport 7.x (7.2.3)
@@ -14,8 +24,6 @@
14
24
  * Fixed Ruby 3.x compatibility in DataRow#respond_to?
15
25
  * Fixed Rails 7.0+ deprecation: Time#to_s(:db) -> Time#to_fs(:db)
16
26
  * Removed explicit bson/bson_ext dependencies (now bundled with mongo gem)
17
-
18
- ## 1.3.3 / 12 Jan 2026
19
27
  * Updated ActiveRecord/ActiveSupport compatibility to support versions 4.2 through 6.0
20
28
  * Updated minimum Ruby version to 2.5+
21
29
  * Fixed ActiveRecord type casting API changes (`type_cast_from_database` -> `deserialize`)
@@ -192,4 +200,4 @@
192
200
  * Improved tests to cover most of the code
193
201
  * Changed overall commands for Mongify
194
202
  ## 0.0.1 / 22 Mar 2010
195
- * Initial Setup
203
+ * Initial Setup
data/Gemfile.lock CHANGED
@@ -2,6 +2,7 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  mongify (1.4.0)
5
+ abbrev
5
6
  activerecord (>= 7.1.5.2, < 8.0)
6
7
  activesupport (>= 7.1.5.2, < 8.0)
7
8
  highline (>= 1.7.8)
@@ -10,6 +11,7 @@ PATH
10
11
  GEM
11
12
  remote: https://rubygems.org/
12
13
  specs:
14
+ abbrev (0.1.2)
13
15
  activemodel (7.2.3)
14
16
  activesupport (= 7.2.3)
15
17
  activerecord (7.2.3)
@@ -40,30 +42,31 @@ GEM
40
42
  connection_pool (2.5.5)
41
43
  coolline (0.5.0)
42
44
  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)
45
+ cucumber (10.2.0)
46
+ base64 (~> 0.2)
47
+ builder (~> 3.2)
48
+ cucumber-ci-environment (> 9, < 12)
49
+ cucumber-core (> 15, < 17)
50
+ cucumber-cucumber-expressions (> 17, < 20)
51
+ cucumber-html-formatter (> 21, < 23)
52
+ diff-lcs (~> 1.5)
53
+ logger (~> 1.6)
54
+ mini_mime (~> 1.1)
55
+ multi_test (~> 1.1)
56
+ sys-uname (~> 1.3)
57
+ cucumber-ci-environment (11.0.0)
58
+ cucumber-core (16.1.1)
59
+ cucumber-gherkin (> 36, < 40)
60
+ cucumber-messages (> 31, < 33)
61
+ cucumber-tag-expressions (> 6, < 9)
62
+ cucumber-cucumber-expressions (18.0.1)
63
+ bigdecimal
64
+ cucumber-gherkin (37.0.1)
65
+ cucumber-messages (>= 31, < 32)
66
+ cucumber-html-formatter (22.3.0)
67
+ cucumber-messages (> 23, < 33)
68
+ cucumber-messages (31.2.0)
69
+ cucumber-tag-expressions (8.1.0)
67
70
  diff-lcs (1.6.2)
68
71
  drb (2.2.3)
69
72
  ffi (1.17.3-arm64-darwin)
@@ -76,12 +79,9 @@ GEM
76
79
  pry-byebug (~> 3.9)
77
80
  pry-coolline (~> 0.2)
78
81
  logger (1.7.0)
79
- memoist (0.16.2)
82
+ memoist3 (1.0.0)
80
83
  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)
84
+ mini_mime (1.1.5)
85
85
  minitest (5.27.0)
86
86
  mocha (3.0.1)
87
87
  ruby2_keywords (>= 0.0.5)
@@ -119,10 +119,10 @@ GEM
119
119
  rspec-support (3.13.6)
120
120
  ruby2_keywords (0.0.5)
121
121
  securerandom (0.4.1)
122
- sqlite3 (1.6.9-arm64-darwin)
123
- sys-uname (1.4.0)
122
+ sqlite3 (2.9.0-arm64-darwin)
123
+ sys-uname (1.4.1)
124
124
  ffi (~> 1.1)
125
- memoist (~> 0.16.2)
125
+ memoist3 (~> 1.0.0)
126
126
  timeout (0.6.0)
127
127
  tzinfo (2.0.6)
128
128
  concurrent-ruby (~> 1.0)
@@ -134,7 +134,7 @@ PLATFORMS
134
134
  arm64-darwin-25
135
135
 
136
136
  DEPENDENCIES
137
- cucumber (>= 0.10)
137
+ cucumber (>= 9.0)
138
138
  jazz_fingers
139
139
  mocha (>= 0.9.8)
140
140
  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.1".freeze
4
4
  end
data/mongify.gemspec CHANGED
@@ -16,11 +16,12 @@ Gem::Specification.new do |s|
16
16
  s.add_runtime_dependency('activesupport', ">= 7.1.5.2", "< 8.0")
17
17
  s.add_runtime_dependency('mongo', "~> 2.19")
18
18
  s.add_runtime_dependency('highline', '>= 1.7.8')
19
+ s.add_runtime_dependency('abbrev') # Required for Ruby 3.4+ (removed from stdlib)
19
20
 
20
21
 
21
22
  s.add_development_dependency('rspec', '~> 3.0')
22
23
  s.add_development_dependency('rspec-collection_matchers', '~> 1.0')
23
- s.add_development_dependency('cucumber', '>= 0.10')
24
+ s.add_development_dependency('cucumber', '>= 9.0')
24
25
  s.add_development_dependency('mocha', '>= 0.9.8')
25
26
  s.add_development_dependency('yard', '~> 0.9.11')
26
27
  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.1
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
@@ -78,6 +77,20 @@ dependencies:
78
77
  - - ">="
79
78
  - !ruby/object:Gem::Version
80
79
  version: 1.7.8
80
+ - !ruby/object:Gem::Dependency
81
+ name: abbrev
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
81
94
  - !ruby/object:Gem::Dependency
82
95
  name: rspec
83
96
  requirement: !ruby/object:Gem::Requirement
@@ -112,14 +125,14 @@ dependencies:
112
125
  requirements:
113
126
  - - ">="
114
127
  - !ruby/object:Gem::Version
115
- version: '0.10'
128
+ version: '9.0'
116
129
  type: :development
117
130
  prerelease: false
118
131
  version_requirements: !ruby/object:Gem::Requirement
119
132
  requirements:
120
133
  - - ">="
121
134
  - !ruby/object:Gem::Version
122
- version: '0.10'
135
+ version: '9.0'
123
136
  - !ruby/object:Gem::Dependency
124
137
  name: mocha
125
138
  requirement: !ruby/object:Gem::Requirement
@@ -326,7 +339,6 @@ files:
326
339
  homepage: http://mongify.com
327
340
  licenses: []
328
341
  metadata: {}
329
- post_install_message:
330
342
  rdoc_options:
331
343
  - "--title"
332
344
  - Mongify -- SQL db to Mongo db converter
@@ -347,8 +359,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
347
359
  - !ruby/object:Gem::Version
348
360
  version: '0'
349
361
  requirements: []
350
- rubygems_version: 3.3.27
351
- signing_key:
362
+ rubygems_version: 4.0.1
352
363
  specification_version: 4
353
364
  summary: Translate your SQL data to MongoDB with ease
354
365
  test_files: