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 +4 -4
- data/History.md +10 -0
- data/VERSION +1 -1
- data/activerecord-oracle_enhanced-adapter.gemspec +3 -2
- data/lib/active_record/connection_adapters/oracle_enhanced/column.rb +19 -0
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb +1 -1
- data/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +4 -1
- data/lib/active_record/oracle_enhanced/type/boolean.rb +22 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb +34 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf4084aa6fe2217315ef98166e65bf6191e412e6
|
4
|
+
data.tar.gz: fdf580fff012e2e395d63391752769afcfa84eaf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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.
|
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-
|
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
|
@@ -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.
|
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-
|
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.
|
150
|
+
rubygems_version: 2.5.1
|
150
151
|
signing_key:
|
151
152
|
specification_version: 4
|
152
153
|
summary: Oracle enhanced adapter for ActiveRecord
|