enum_type 2.0.0 → 2.1.0

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.
data/Gemfile CHANGED
@@ -13,5 +13,6 @@ group :development do
13
13
  # TEST
14
14
  gem 'rspec'
15
15
  gem 'factory_girl'
16
- gem 'pg'
17
- end
16
+ platform(:mri) { gem 'pg' }
17
+ platform(:jruby) { gem 'activerecord-jdbcpostgresql-adapter' }
18
+ end
data/Gemfile.lock CHANGED
@@ -1,46 +1,62 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- RedCloth (4.2.7)
5
- activemodel (3.0.9)
6
- activesupport (= 3.0.9)
7
- builder (~> 2.1.2)
8
- i18n (~> 0.5.0)
9
- activerecord (3.0.9)
10
- activemodel (= 3.0.9)
11
- activesupport (= 3.0.9)
12
- arel (~> 2.0.10)
13
- tzinfo (~> 0.3.23)
14
- activesupport (3.0.9)
15
- arel (2.0.10)
16
- builder (2.1.2)
17
- diff-lcs (1.1.2)
18
- factory_girl (1.3.3)
4
+ RedCloth (4.2.9)
5
+ RedCloth (4.2.9-java)
6
+ activemodel (3.2.3)
7
+ activesupport (= 3.2.3)
8
+ builder (~> 3.0.0)
9
+ activerecord (3.2.3)
10
+ activemodel (= 3.2.3)
11
+ activesupport (= 3.2.3)
12
+ arel (~> 3.0.2)
13
+ tzinfo (~> 0.3.29)
14
+ activerecord-jdbc-adapter (1.2.2)
15
+ activerecord-jdbcpostgresql-adapter (1.2.2)
16
+ activerecord-jdbc-adapter (~> 1.2.2)
17
+ jdbc-postgres (>= 9.0, < 9.2)
18
+ activesupport (3.2.3)
19
+ i18n (~> 0.6)
20
+ multi_json (~> 1.0)
21
+ arel (3.0.2)
22
+ builder (3.0.0)
23
+ diff-lcs (1.1.3)
24
+ factory_girl (3.3.0)
25
+ activesupport (>= 3.0.0)
19
26
  git (1.2.5)
20
- i18n (0.5.0)
21
- jeweler (1.6.2)
27
+ i18n (0.6.0)
28
+ jdbc-postgres (9.1.901)
29
+ jeweler (1.8.3)
22
30
  bundler (~> 1.0)
23
31
  git (>= 1.2.5)
24
32
  rake
25
- pg (0.11.0)
26
- rake (0.9.2)
27
- rspec (2.6.0)
28
- rspec-core (~> 2.6.0)
29
- rspec-expectations (~> 2.6.0)
30
- rspec-mocks (~> 2.6.0)
31
- rspec-core (2.6.4)
32
- rspec-expectations (2.6.0)
33
- diff-lcs (~> 1.1.2)
34
- rspec-mocks (2.6.0)
35
- tzinfo (0.3.28)
36
- yard (0.7.2)
33
+ rdoc
34
+ json (1.7.3)
35
+ json (1.7.3-java)
36
+ multi_json (1.3.5)
37
+ pg (0.13.2)
38
+ rake (0.9.2.2)
39
+ rdoc (3.12)
40
+ json (~> 1.4)
41
+ rspec (2.10.0)
42
+ rspec-core (~> 2.10.0)
43
+ rspec-expectations (~> 2.10.0)
44
+ rspec-mocks (~> 2.10.0)
45
+ rspec-core (2.10.0)
46
+ rspec-expectations (2.10.0)
47
+ diff-lcs (~> 1.1.3)
48
+ rspec-mocks (2.10.1)
49
+ tzinfo (0.3.33)
50
+ yard (0.8.1)
37
51
 
38
52
  PLATFORMS
53
+ java
39
54
  ruby
40
55
 
41
56
  DEPENDENCIES
42
57
  RedCloth
43
58
  activerecord (>= 3.0)
59
+ activerecord-jdbcpostgresql-adapter
44
60
  activesupport (>= 3.0)
45
61
  factory_girl
46
62
  jeweler
data/README.textile CHANGED
@@ -1,7 +1,7 @@
1
1
  h1. enum_type -- Enumerated Types in ActiveRecord
2
2
 
3
3
  | *Author* | Tim Morgan |
4
- | *Version* | 1.0 (Oct 29, 2010) |
4
+ | *Version* | 2.1 (May 14, 2012) |
5
5
  | *License* | Released under the MIT license. |
6
6
 
7
7
  h2. About
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0
1
+ 2.1.0
data/enum_type.gemspec CHANGED
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{enum_type}
8
- s.version = "2.0.0"
7
+ s.name = "enum_type"
8
+ s.version = "2.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = [%q{Tim Morgan}]
12
- s.date = %q{2011-06-20}
13
- s.description = %q{Allows ActiveRecord to better use PostgreSQL's ENUM types.}
14
- s.email = %q{git@timothymorgan.info}
11
+ s.authors = ["Tim Morgan"]
12
+ s.date = "2012-05-14"
13
+ s.description = "Allows ActiveRecord to better use PostgreSQL's ENUM types."
14
+ s.email = "git@timothymorgan.info"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
17
  "README.textile"
@@ -32,11 +32,11 @@ Gem::Specification.new do |s|
32
32
  "spec/factories.rb",
33
33
  "spec/spec_helper.rb"
34
34
  ]
35
- s.homepage = %q{http://github.com/riscfuture/enum_type}
36
- s.require_paths = [%q{lib}]
35
+ s.homepage = "http://github.com/riscfuture/enum_type"
36
+ s.require_paths = ["lib"]
37
37
  s.required_ruby_version = Gem::Requirement.new(">= 1.9")
38
- s.rubygems_version = %q{1.8.5}
39
- s.summary = %q{PostgreSQL enumerated types in ActiveRecord}
38
+ s.rubygems_version = "1.8.24"
39
+ s.summary = "PostgreSQL enumerated types in ActiveRecord"
40
40
 
41
41
  if s.respond_to? :specification_version then
42
42
  s.specification_version = 3
@@ -50,6 +50,7 @@ Gem::Specification.new do |s|
50
50
  s.add_development_dependency(%q<rspec>, [">= 0"])
51
51
  s.add_development_dependency(%q<factory_girl>, [">= 0"])
52
52
  s.add_development_dependency(%q<pg>, [">= 0"])
53
+ s.add_development_dependency(%q<activerecord-jdbcpostgresql-adapter>, [">= 0"])
53
54
  s.add_runtime_dependency(%q<activerecord>, [">= 0"])
54
55
  else
55
56
  s.add_dependency(%q<activerecord>, [">= 3.0"])
@@ -60,6 +61,7 @@ Gem::Specification.new do |s|
60
61
  s.add_dependency(%q<rspec>, [">= 0"])
61
62
  s.add_dependency(%q<factory_girl>, [">= 0"])
62
63
  s.add_dependency(%q<pg>, [">= 0"])
64
+ s.add_dependency(%q<activerecord-jdbcpostgresql-adapter>, [">= 0"])
63
65
  s.add_dependency(%q<activerecord>, [">= 0"])
64
66
  end
65
67
  else
@@ -71,6 +73,7 @@ Gem::Specification.new do |s|
71
73
  s.add_dependency(%q<rspec>, [">= 0"])
72
74
  s.add_dependency(%q<factory_girl>, [">= 0"])
73
75
  s.add_dependency(%q<pg>, [">= 0"])
76
+ s.add_dependency(%q<activerecord-jdbcpostgresql-adapter>, [">= 0"])
74
77
  s.add_dependency(%q<activerecord>, [">= 0"])
75
78
  end
76
79
  end
@@ -7,7 +7,7 @@ class ActiveRecord::ConnectionAdapters::PostgreSQLColumn
7
7
  def initialize(name, default, sql_type = nil, null = true)
8
8
  super(name, self.class.extract_value_from_default(default, sql_type), sql_type, null)
9
9
  end
10
-
10
+
11
11
  def self.extract_value_from_default_with_enum(default, type)
12
12
  case default
13
13
  when /\A'(.*)'::(?:#{Regexp.escape type})\z/
@@ -16,8 +16,25 @@ class ActiveRecord::ConnectionAdapters::PostgreSQLColumn
16
16
  extract_value_from_default_without_enum default
17
17
  end
18
18
  end
19
-
19
+
20
20
  class << self
21
21
  alias_method_chain :extract_value_from_default, :enum
22
22
  end
23
- end
23
+ end if ActiveRecord::ConnectionAdapters::PostgreSQLColumn.methods.include?(:extract_value_from_default)
24
+
25
+ class ActiveRecord::ConnectionAdapters::JdbcColumn
26
+ def initialize(config, name, default, *args)
27
+ call_discovered_column_callbacks(config)
28
+ super(name,enum_default_value(default, args.first),*args)
29
+ init_column(name, default, *args)
30
+ end
31
+
32
+ def enum_default_value(default, type)
33
+ case default
34
+ when /\A'(.*)'::(?:#{Regexp.escape type})\z/
35
+ $1
36
+ else
37
+ default_value default
38
+ end
39
+ end
40
+ end if defined?(ActiveRecord::ConnectionAdapters::JdbcColumn)
data/spec/spec_helper.rb CHANGED
@@ -7,7 +7,7 @@ require 'factories'
7
7
  require 'enum_type'
8
8
 
9
9
  ActiveRecord::Base.establish_connection(
10
- adapter: 'postgresql',
10
+ adapter: (defined?(JRuby) ? 'jdbcpostgresql' : 'postgresql'),
11
11
  database: 'enum_type_test',
12
12
  username: 'enum_type_tester'
13
13
  )
@@ -23,5 +23,6 @@ RSpec.configure do |config|
23
23
  Model.connection.execute "DROP TYPE IF EXISTS state_type"
24
24
  Model.connection.execute "CREATE TYPE state_type AS ENUM ('pending', 'processing', 'completed', 'failed')"
25
25
  Model.connection.execute "CREATE TABLE models (id SERIAL PRIMARY KEY, state state_type DEFAULT 'pending')"
26
+ Model.connection.reconnect!
26
27
  end
27
28
  end
metadata CHANGED
@@ -1,126 +1,184 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: enum_type
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.1.0
4
5
  prerelease:
5
- version: 2.0.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Tim Morgan
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-06-20 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2012-05-14 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: activerecord
17
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
18
17
  none: false
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: "3.0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '3.0'
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '3.0'
30
+ - !ruby/object:Gem::Dependency
27
31
  name: activesupport
28
- requirement: &id002 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
29
33
  none: false
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: "3.0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '3.0'
34
38
  type: :runtime
35
39
  prerelease: false
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '3.0'
46
+ - !ruby/object:Gem::Dependency
38
47
  name: jeweler
39
- requirement: &id003 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
40
49
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- version: "0"
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
45
54
  type: :development
46
55
  prerelease: false
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
49
63
  name: yard
50
- requirement: &id004 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
51
65
  none: false
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: "0"
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
56
70
  type: :development
57
71
  prerelease: false
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
60
79
  name: RedCloth
61
- requirement: &id005 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
62
81
  none: false
63
- requirements:
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: "0"
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
67
86
  type: :development
68
87
  prerelease: false
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
71
95
  name: rspec
72
- requirement: &id006 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
73
97
  none: false
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- version: "0"
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
78
102
  type: :development
79
103
  prerelease: false
80
- version_requirements: *id006
81
- - !ruby/object:Gem::Dependency
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
82
111
  name: factory_girl
83
- requirement: &id007 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
84
113
  none: false
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: "0"
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
89
118
  type: :development
90
119
  prerelease: false
91
- version_requirements: *id007
92
- - !ruby/object:Gem::Dependency
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
93
127
  name: pg
94
- requirement: &id008 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
95
129
  none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- version: "0"
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
100
134
  type: :development
101
135
  prerelease: false
102
- version_requirements: *id008
103
- - !ruby/object:Gem::Dependency
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: activerecord-jdbcpostgresql-adapter
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ - !ruby/object:Gem::Dependency
104
159
  name: activerecord
105
- requirement: &id009 !ruby/object:Gem::Requirement
160
+ requirement: !ruby/object:Gem::Requirement
106
161
  none: false
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: "0"
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
111
166
  type: :runtime
112
167
  prerelease: false
113
- version_requirements: *id009
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
114
174
  description: Allows ActiveRecord to better use PostgreSQL's ENUM types.
115
175
  email: git@timothymorgan.info
116
176
  executables: []
117
-
118
177
  extensions: []
119
-
120
- extra_rdoc_files:
178
+ extra_rdoc_files:
121
179
  - LICENSE
122
180
  - README.textile
123
- files:
181
+ files:
124
182
  - .document
125
183
  - .rspec
126
184
  - Gemfile
@@ -137,30 +195,26 @@ files:
137
195
  - spec/spec_helper.rb
138
196
  homepage: http://github.com/riscfuture/enum_type
139
197
  licenses: []
140
-
141
198
  post_install_message:
142
199
  rdoc_options: []
143
-
144
- require_paths:
200
+ require_paths:
145
201
  - lib
146
- required_ruby_version: !ruby/object:Gem::Requirement
202
+ required_ruby_version: !ruby/object:Gem::Requirement
147
203
  none: false
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: "1.9"
152
- required_rubygems_version: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ! '>='
206
+ - !ruby/object:Gem::Version
207
+ version: '1.9'
208
+ required_rubygems_version: !ruby/object:Gem::Requirement
153
209
  none: false
154
- requirements:
155
- - - ">="
156
- - !ruby/object:Gem::Version
157
- version: "0"
210
+ requirements:
211
+ - - ! '>='
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
158
214
  requirements: []
159
-
160
215
  rubyforge_project:
161
- rubygems_version: 1.8.5
216
+ rubygems_version: 1.8.24
162
217
  signing_key:
163
218
  specification_version: 3
164
219
  summary: PostgreSQL enumerated types in ActiveRecord
165
220
  test_files: []
166
-