activerecord-oracle_enhanced-adapter 1.7.0 → 1.7.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
  SHA1:
3
- metadata.gz: 90fa8b1a7acfc65a87b37c9d9e6fab35b7a6fe35
4
- data.tar.gz: 3d1fe46c3644b1a5ac00bc7c212df6e7e55fa1fb
3
+ metadata.gz: bf4084aa6fe2217315ef98166e65bf6191e412e6
4
+ data.tar.gz: fdf580fff012e2e395d63391752769afcfa84eaf
5
5
  SHA512:
6
- metadata.gz: 04809974b2b2258aff6483828ae2d4c5db9d2b7ff7f6c5290c8d0c6f50b63d59b391c66efbe47bb3f911c0083fb16707c10479ddd4a3c1e7c9a00a5f8366cd04
7
- data.tar.gz: 2fb86439af72485537fa6e6545eedffd2716e77f3ee640a5e207a1ff935add1f650c94a71e6b0ef0e50b7922b69d07dd4c92c222a42b028e6eacc9255800c3aa
6
+ metadata.gz: 2284e55e7d67bc70a25dfd063cece15fc03b6d987d90fd596e81277bb5dc18902022e3675afe1646784d9f6d28c4ce541b85232d4e6d561cb0f42b954d68c6ba
7
+ data.tar.gz: 45c8321ce8d8b6482c2384ca4d8cdafacca7063f87fd88c8126caa290a3a26fd5234b91a3398c9e2f78109b458207027cfebef8b840c1e93b302f76f060e8885
data/History.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 1.7.1 / 2016-08-22
2
+
3
+ * Changes and bug fixes
4
+ * Add `ActiveRecord::OracleEnhanced::Type::Boolean` [#985, #979]
5
+ * Address `create_table': undefined method `each_pair' for []:Array (NoMethodError) [#980]
6
+ * Deprecate `fallback_string_to_date`, `fallback_string_to_time` [#974]
7
+
8
+ * Known issues
9
+ * No changes since 1.7.0.rc1
10
+
1
11
  ## 1.7.0 / 2016-08-04
2
12
 
3
13
  * Changes and bug fixes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.7.0
1
+ 1.7.1
@@ -1,12 +1,12 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{activerecord-oracle_enhanced-adapter}
3
- s.version = "1.7.0"
3
+ s.version = "1.7.1"
4
4
 
5
5
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
6
  s.required_ruby_version = '>= 2.2.2'
7
7
  s.license = 'MIT'
8
8
  s.authors = [%q{Raimonds Simanovskis}]
9
- s.date = %q{2016-08-04}
9
+ s.date = %q{2016-08-22}
10
10
  s.description = %q{Oracle "enhanced" ActiveRecord adapter contains useful additional methods for working with new and legacy Oracle databases.
11
11
  This adapter is superset of original ActiveRecord Oracle adapter.
12
12
  }
@@ -46,6 +46,7 @@ This adapter is superset of original ActiveRecord Oracle adapter.
46
46
  "lib/active_record/connection_adapters/oracle_enhanced/schema_statements_ext.rb",
47
47
  "lib/active_record/connection_adapters/oracle_enhanced/structure_dump.rb",
48
48
  "lib/active_record/connection_adapters/oracle_enhanced/version.rb",
49
+ "lib/active_record/oracle_enhanced/type/boolean.rb",
49
50
  "lib/active_record/oracle_enhanced/type/integer.rb",
50
51
  "lib/active_record/oracle_enhanced/type/national_character_string.rb",
51
52
  "lib/active_record/oracle_enhanced/type/raw.rb",
@@ -91,6 +91,12 @@ module ActiveRecord
91
91
 
92
92
  def fallback_string_to_date(string) #:nodoc:
93
93
  if OracleEnhancedAdapter.string_to_date_format || OracleEnhancedAdapter.string_to_time_format
94
+ ActiveSupport::Deprecation.warn(<<-MSG.squish)
95
+ `fallback_string_to_date` has been deprecated.
96
+ It will be removed from next version of Oracle enhanced adapter.
97
+ Users are unlikely to see this message since this method has gone
98
+ from ActiveRecord::ConnectionAdapters::Column in Rails 4.2.
99
+ MSG
94
100
  return (string_to_date_or_time_using_format(string).to_date rescue super)
95
101
  end
96
102
  super
@@ -98,12 +104,25 @@ module ActiveRecord
98
104
 
99
105
  def fallback_string_to_time(string) #:nodoc:
100
106
  if OracleEnhancedAdapter.string_to_time_format || OracleEnhancedAdapter.string_to_date_format
107
+ ActiveSupport::Deprecation.warn(<<-MSG.squish)
108
+ `fallback_string_to_time` has been deprecated.
109
+ It will be removed from next version of Oracle enhanced adapter.
110
+ Users are unlikely to see this message since this method has gone
111
+ from ActiveRecord::ConnectionAdapters::Column in Rails 4.2.
112
+ MSG
101
113
  return (string_to_date_or_time_using_format(string).to_time rescue super)
102
114
  end
103
115
  super
104
116
  end
105
117
 
106
118
  def string_to_date_or_time_using_format(string) #:nodoc:
119
+ ActiveSupport::Deprecation.warn(<<-MSG.squish)
120
+ `string_to_date_or_time_using_format` has been deprecated.
121
+ It will be removed from next version of Oracle enhanced adapter.
122
+ Users are unlikely to see this message since `fallback_string_to_date`
123
+ and `fallback_string_to_time` have gone
124
+ from ActiveRecord::ConnectionAdapters::Column in Rails 4.2.
125
+ MSG
107
126
  if OracleEnhancedAdapter.string_to_time_format && dt=Date._strptime(string, OracleEnhancedAdapter.string_to_time_format)
108
127
  return Time.parse("#{dt[:year]}-#{dt[:mon]}-#{dt[:mday]} #{dt[:hour]}:#{dt[:min]}:#{dt[:sec]}#{dt[:zone]}")
109
128
  end
@@ -83,7 +83,7 @@ module ActiveRecord
83
83
  change_column_comment(table_name, column.name, column.comment) if column.comment
84
84
  end
85
85
  end
86
- td.indexes.each_pair { |c,o| add_index table_name, c, o }
86
+ td.indexes.each { |c,o| add_index table_name, c, o }
87
87
 
88
88
  end
89
89
 
@@ -1195,7 +1195,7 @@ module ActiveRecord
1195
1195
 
1196
1196
  if OracleEnhancedAdapter.emulate_booleans
1197
1197
  if OracleEnhancedAdapter.emulate_booleans_from_strings
1198
- m.register_type %r(^VARCHAR2\(1\))i, Type::Boolean.new
1198
+ m.register_type %r(^VARCHAR2\(1\))i, ActiveRecord::OracleEnhanced::Type::Boolean.new
1199
1199
  else
1200
1200
  m.register_type %r(^NUMBER\(1\))i, Type::Boolean.new
1201
1201
  end
@@ -1338,3 +1338,6 @@ require 'active_record/oracle_enhanced/type/national_character_string'
1338
1338
 
1339
1339
  # Add OracleEnhanced::Type::Text
1340
1340
  require 'active_record/oracle_enhanced/type/text'
1341
+
1342
+ # Add OracleEnhanced::Type::Boolean
1343
+ require 'active_record/oracle_enhanced/type/boolean'
@@ -0,0 +1,22 @@
1
+ module ActiveRecord
2
+ module OracleEnhanced
3
+ module Type
4
+ class Boolean < ActiveModel::Type::Boolean # :nodoc:
5
+ # Add 'N' as FALSE_VALUES
6
+ FALSE_VALUES = [false, 0, '0', 'f', 'F', 'false', 'FALSE', 'off', 'OFF', 'n', 'N'].to_set
7
+
8
+ private
9
+
10
+ def cast_value(value)
11
+ # Not calling super to use its own `FALSE_VALUES`
12
+ if value == ''
13
+ nil
14
+ else
15
+ !FALSE_VALUES.include?(value)
16
+ end
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -439,6 +439,40 @@ describe "OracleEnhancedAdapter boolean type detection based on string column ty
439
439
 
440
440
  end
441
441
 
442
+ describe "OracleEnhancedAdapter boolean support when emulate_booleans_from_strings = true" do
443
+ before(:all) do
444
+ ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.emulate_booleans_from_strings = true
445
+ ActiveRecord::Base.establish_connection(CONNECTION_PARAMS)
446
+ ActiveRecord::Schema.define do
447
+ create_table :posts, :force => true do |t|
448
+ t.string :name, null: false
449
+ t.boolean :is_default, default: false
450
+ end
451
+ end
452
+ end
453
+
454
+ after(:all) do
455
+ ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.emulate_booleans_from_strings = false
456
+ end
457
+
458
+ before(:each) do
459
+ class ::Post < ActiveRecord::Base
460
+ end
461
+ end
462
+
463
+ after(:each) do
464
+ Object.send(:remove_const, "Post")
465
+ ActiveRecord::Base.clear_cache!
466
+ end
467
+
468
+ it "boolean should not change after reload" do
469
+ post = Post.create(name: 'Test 1', is_default: false)
470
+ expect(post.is_default).to be false
471
+ post.reload
472
+ expect(post.is_default).to be false
473
+ end
474
+ end
475
+
442
476
  describe "OracleEnhancedAdapter timestamp with timezone support" do
443
477
  before(:all) do
444
478
  ActiveRecord::Base.establish_connection(CONNECTION_PARAMS)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-oracle_enhanced-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raimonds Simanovskis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-04 00:00:00.000000000 Z
11
+ date: 2016-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -106,6 +106,7 @@ files:
106
106
  - lib/active_record/connection_adapters/oracle_enhanced/structure_dump.rb
107
107
  - lib/active_record/connection_adapters/oracle_enhanced/version.rb
108
108
  - lib/active_record/connection_adapters/oracle_enhanced_adapter.rb
109
+ - lib/active_record/oracle_enhanced/type/boolean.rb
109
110
  - lib/active_record/oracle_enhanced/type/integer.rb
110
111
  - lib/active_record/oracle_enhanced/type/national_character_string.rb
111
112
  - lib/active_record/oracle_enhanced/type/raw.rb
@@ -146,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
147
  version: '0'
147
148
  requirements: []
148
149
  rubyforge_project:
149
- rubygems_version: 2.6.4
150
+ rubygems_version: 2.5.1
150
151
  signing_key:
151
152
  specification_version: 4
152
153
  summary: Oracle enhanced adapter for ActiveRecord