activerecord-oracle_enhanced-adapter 1.7.0 → 1.7.1

Sign up to get free protection for your applications and to get access to all the features.
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