activerecord-postgres-composite-types 0.2.2 → 0.2.3

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: 3a672371db2d4c5253b4d0366fffacb81ca9a1f9
4
- data.tar.gz: 95d2bc56e7de9667483dbff0b820b8a56c67b064
3
+ metadata.gz: 3f1180c2f69bc0bcff969b4d5a0a8fc62ff6c2fd
4
+ data.tar.gz: 6a94bec2dccd909fa613e66a50eee379dea61298
5
5
  SHA512:
6
- metadata.gz: 996d82110e931d65a4d7ebff634614240f88f3c099b5daee3feda515ee670c14f6c60593b629d772e9bfc2bb7a369a04a59c379f919001fc39072f89ac2ad15d
7
- data.tar.gz: db42a073c0563bafe9bd25d7c486e84cdc26df04a8e0a2e9fca6dae4020e21deb10f3db6275ea162a4627eaf835a2bb6e171cb32cfc827d56098d357117d0f6d
6
+ metadata.gz: e87be224bc26e25a18ba0a641b2f764da2ff7708c1b17f667f1977cc17f1f75e19dff6996e6e9f6279490b1c8a79b14949af23f5d44cddf528ceaf5bbb455e3b
7
+ data.tar.gz: cd42315a520c43ea636876e796d99730d848de9069adb0b22beadb0ebf64a6e53bb73ad0fab52f4ce380423762d8ca4459f464026a6d482d1893e9eb4605fb9f
data/README.rdoc CHANGED
@@ -44,10 +44,26 @@ and then
44
44
 
45
45
  To achieve this goal I only have to define composite type class in a following way:
46
46
 
47
+ require 'postgres_composite_type'
47
48
  class ComplexType < PostgresCompositeType
48
49
  register_type :complex
49
50
  end
50
51
 
52
+ This class must be loaded before any ActiveRecord model is instantializated, but NOT before
53
+ ActiveRecord is loaded. Load your classes with ActiveRecord hook:
54
+
55
+ ActiveSupport.on_load :active_record do
56
+ require 'complex_type'
57
+ end
58
+
59
+ You can of course put this code in your railtie initializer:
60
+
61
+ initialize :complexy_type do
62
+ ActiveSupport.on_load :active_record do
63
+ require 'complex_type'
64
+ end
65
+ end
66
+
51
67
  That's all folks.
52
68
 
53
69
  == Contributing to ActiveRecord PostgreSQL Composite Types
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.2.3
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "activerecord-postgres-composite-types"
8
- s.version = "0.2.2"
8
+ s.version = "0.2.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Rafal Bigaj"]
12
- s.date = "2014-09-11"
12
+ s.date = "2014-09-12"
13
13
  s.description = "This gem adds support to the ActiveRecord (3.x and 4.x) for composite types."
14
14
  s.email = "rafal.bigaj@puzzleflow.com"
15
15
  s.extra_rdoc_files = [
@@ -25,14 +25,13 @@ Gem::Specification.new do |s|
25
25
  "Rakefile",
26
26
  "VERSION",
27
27
  "activerecord-postgres-composite-types.gemspec",
28
- "activerecord-postgres-custom-types.gemspec",
29
28
  "lib/activerecord-postgres-composite-types.rb",
30
29
  "lib/activerecord-postgres-composite-types/active_record.rb",
31
30
  "lib/activerecord-postgres-composite-types/active_record_3.rb",
32
31
  "lib/activerecord-postgres-composite-types/active_record_4.rb",
33
32
  "lib/activerecord-postgres-composite-types/composite_type_parser.rb",
34
- "lib/activerecord-postgres-composite-types/postgres_composite_type.rb",
35
- "lib/activerecord-postgres-composite-types/railties.rb",
33
+ "lib/activerecord-postgres-composite-types/railtie.rb",
34
+ "lib/postgres_composite_type.rb",
36
35
  "test/composite_types.rb",
37
36
  "test/helper.rb",
38
37
  "test/internal/config/database.yml",
@@ -1,13 +1,10 @@
1
1
  require 'active_record'
2
- require 'active_record/connection_adapters/postgresql_adapter'
3
2
 
4
3
  if defined? Rails
5
- require "activerecord-postgres-composite-types/railties"
4
+ require "activerecord-postgres-composite-types/railtie"
6
5
  else
7
6
  ActiveSupport.on_load :active_record do
8
7
  require "activerecord-postgres-composite-types/active_record"
8
+ require 'postgres_composite_type'
9
9
  end
10
10
  end
11
-
12
- require "activerecord-postgres-composite-types/postgres_composite_type"
13
- require "activerecord-postgres-composite-types/composite_type_parser"
@@ -1,4 +1,8 @@
1
1
  # Extends AR to add composite types functionality.
2
+
3
+ require 'active_record/connection_adapters/postgresql_adapter'
4
+ require 'activerecord-postgres-composite-types/composite_type_parser'
5
+
2
6
  module ActiveRecord
3
7
 
4
8
  module ConnectionAdapters
@@ -0,0 +1,17 @@
1
+ require 'rails'
2
+
3
+ # = Postgres Composite Types Railtie
4
+ #
5
+ # Creates a new railtie to initialize ActiveRecord properly
6
+
7
+ class PostgresCompositeTypesRailtie < Rails::Railtie
8
+
9
+ initializer 'activerecord-postgres-composite-types' do
10
+ ActiveSupport.on_load :active_record do
11
+ require "activerecord-postgres-composite-types/active_record"
12
+ require 'postgres_composite_type'
13
+ end
14
+ end
15
+
16
+ end
17
+
@@ -1,29 +1,52 @@
1
+ require 'activerecord-postgres-composite-types/active_record'
2
+
1
3
  class PostgresCompositeType
2
4
  include Comparable
3
5
 
4
6
  class << self
5
- # TODO: doc
7
+ # The PostgreSQL type name as symbol
6
8
  attr_reader :type
7
- # TODO: doc
9
+ # Column definition read from db schema
8
10
  attr_reader :columns
9
11
 
12
+ # Link PostgreSQL type given by the name with this class.
13
+ # Usage:
14
+ #
15
+ # class ComplexType < PostgresCompositeType
16
+ # register_type :complex
17
+ # end
18
+ #
19
+ # @param [Symbol] :type the PostgreSQL type name
10
20
  def register_type(type)
11
21
  @type = type.to_sym
12
22
  ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.register_composite_type_class(self)
13
23
  end
14
24
 
25
+ # Be default the ActiveRecord::Base connection is used when reading type definition.
26
+ # If you want to use connection linked with another class use this method.
27
+ # Usage
28
+ #
29
+ # class ComplexType < PostgresCompositeType
30
+ # register_type :complex
31
+ # use_connection_class MyRecordConnectedToDifferentDB
32
+ # end
33
+ #
34
+ # @param [Class] :active_record_class the ActiveRecord model class
15
35
  def use_connection_class(active_record_class)
16
36
  @connection_class = active_record_class
17
37
  end
18
38
 
39
+ # :nodoc:
19
40
  def connection
20
41
  (@connection_class || ActiveRecord::Base).connection
21
42
  end
22
43
 
44
+ # :nodoc:
23
45
  def connected?
24
46
  (@connection_class || ActiveRecord::Base).connected?
25
47
  end
26
48
 
49
+ # :nodoc:
27
50
  def initialize_column_definition
28
51
  unless @columns
29
52
  @columns = self.connection.columns(type)
@@ -1,3 +1,4 @@
1
+ require 'postgres_composite_type'
1
2
 
2
3
  if ActiveRecord::VERSION::MAJOR > 3
3
4
  ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::OID.alias_type 'rgb_color', 'text'
data/test/helper.rb CHANGED
@@ -30,8 +30,7 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
30
30
  require 'activerecord-postgres-composite-types'
31
31
 
32
32
  ActiveSupport.on_load :active_record do
33
- require 'activerecord-postgres-composite-types/active_record'
34
- require_relative 'composite_types.rb'
33
+ require_relative 'composite_types'
35
34
  end
36
35
 
37
36
  Combustion.path = 'test/internal'
@@ -1,5 +1,5 @@
1
1
  test:
2
2
  adapter: postgresql
3
- database: pg_composite_types_test
4
- username: postgres
5
- password: postgres
3
+ database: <%= ENV['DATABASE_NAME_TEST'] %>
4
+ username: <%= ENV['DATABASE_USERNAME'] %>
5
+ password: <%= ENV['DATABASE_PASSWORD'] %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-postgres-composite-types
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rafal Bigaj
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-11 00:00:00.000000000 Z
11
+ date: 2014-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -167,14 +167,13 @@ files:
167
167
  - Rakefile
168
168
  - VERSION
169
169
  - activerecord-postgres-composite-types.gemspec
170
- - activerecord-postgres-custom-types.gemspec
171
170
  - lib/activerecord-postgres-composite-types.rb
172
171
  - lib/activerecord-postgres-composite-types/active_record.rb
173
172
  - lib/activerecord-postgres-composite-types/active_record_3.rb
174
173
  - lib/activerecord-postgres-composite-types/active_record_4.rb
175
174
  - lib/activerecord-postgres-composite-types/composite_type_parser.rb
176
- - lib/activerecord-postgres-composite-types/postgres_composite_type.rb
177
- - lib/activerecord-postgres-composite-types/railties.rb
175
+ - lib/activerecord-postgres-composite-types/railtie.rb
176
+ - lib/postgres_composite_type.rb
178
177
  - test/composite_types.rb
179
178
  - test/helper.rb
180
179
  - test/internal/config/database.yml
@@ -1,91 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = "activerecord-postgres-custom-types"
8
- s.version = "0.2.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Rafal Bigaj"]
12
- s.date = "2014-09-09"
13
- s.description = "This gem adds support to the ActiveRecord (3.x and 4.x) for composite types."
14
- s.email = "rafal.bigaj@puzzleflow.com"
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "LICENSE.txt",
18
- "README.rdoc"
19
- ]
20
- s.files = [
21
- ".document",
22
- ".travis.yml",
23
- "Gemfile",
24
- "LICENSE",
25
- "LICENSE.txt",
26
- "README.rdoc",
27
- "Rakefile",
28
- "VERSION",
29
- "activerecord-postgres-custom-types.gemspec",
30
- "lib/activerecord-postgres-composite-types.rb",
31
- "lib/activerecord-postgres-composite-types/active_record.rb",
32
- "lib/activerecord-postgres-composite-types/active_record_3.rb",
33
- "lib/activerecord-postgres-composite-types/active_record_4.rb",
34
- "lib/activerecord-postgres-composite-types/composite_type_parser.rb",
35
- "lib/activerecord-postgres-composite-types/postgres_composite_type.rb",
36
- "lib/activerecord-postgres-composite-types/railties.rb",
37
- "test/composite_types.rb",
38
- "test/helper.rb",
39
- "test/internal/config/database.yml",
40
- "test/internal/config/database.yml.travis",
41
- "test/internal/db/schema.rb",
42
- "test/test_composite_type_class.rb",
43
- "test/test_nested_types.rb",
44
- "test/test_postgres_composite_types.rb"
45
- ]
46
- s.homepage = "http://github.com/rafalbigaj/activerecord-postgres-custom-types"
47
- s.licenses = ["MIT"]
48
- s.require_paths = ["lib"]
49
- s.rubygems_version = "2.0.3"
50
- s.summary = "ActiveRecord composite types support"
51
-
52
- if s.respond_to? :specification_version then
53
- s.specification_version = 4
54
-
55
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
56
- s.add_runtime_dependency(%q<activerecord>, [">= 3.2.0"])
57
- s.add_runtime_dependency(%q<pg>, [">= 0.17.0"])
58
- s.add_development_dependency(%q<test-unit>, ["~> 2.1"])
59
- s.add_development_dependency(%q<shoulda>, [">= 0"])
60
- s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
61
- s.add_development_dependency(%q<rake>, ["~> 10.3"])
62
- s.add_development_dependency(%q<bundler>, ["~> 1.0"])
63
- s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
64
- s.add_development_dependency(%q<simplecov>, [">= 0"])
65
- s.add_development_dependency(%q<combustion>, ["~> 0.5.2"])
66
- else
67
- s.add_dependency(%q<activerecord>, [">= 3.2.0"])
68
- s.add_dependency(%q<pg>, [">= 0.17.0"])
69
- s.add_dependency(%q<test-unit>, ["~> 2.1"])
70
- s.add_dependency(%q<shoulda>, [">= 0"])
71
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
72
- s.add_dependency(%q<rake>, ["~> 10.3"])
73
- s.add_dependency(%q<bundler>, ["~> 1.0"])
74
- s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
75
- s.add_dependency(%q<simplecov>, [">= 0"])
76
- s.add_dependency(%q<combustion>, ["~> 0.5.2"])
77
- end
78
- else
79
- s.add_dependency(%q<activerecord>, [">= 3.2.0"])
80
- s.add_dependency(%q<pg>, [">= 0.17.0"])
81
- s.add_dependency(%q<test-unit>, ["~> 2.1"])
82
- s.add_dependency(%q<shoulda>, [">= 0"])
83
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
84
- s.add_dependency(%q<rake>, ["~> 10.3"])
85
- s.add_dependency(%q<bundler>, ["~> 1.0"])
86
- s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
87
- s.add_dependency(%q<simplecov>, [">= 0"])
88
- s.add_dependency(%q<combustion>, ["~> 0.5.2"])
89
- end
90
- end
91
-
@@ -1,16 +0,0 @@
1
- require 'rails'
2
-
3
- # = Postgres Composite Types Railtie
4
- #
5
- # Creates a new railtie to initialize ActiveRecord properly
6
-
7
- class PostgresCompositeTypesRailtie < Rails::Railtie
8
-
9
- initializer 'activerecord-postgres-composite-types' do
10
- ActiveSupport.on_load :active_record do
11
- require "activerecord-postgres-composite-types/active_record"
12
- end
13
- end
14
-
15
- end
16
-