active_record-mti 0.0.5 → 0.0.6

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: c6cc42809a8381152867f5083a0801180d2c8b59
4
- data.tar.gz: 597fd1818b06313a94d2c8f4a704acf22874416a
3
+ metadata.gz: f561f8c3e6dff9e4c46e297bb68cf4e00d5d5891
4
+ data.tar.gz: 44bf123a8420156b88e21e5e9f1d9c39e4379a8d
5
5
  SHA512:
6
- metadata.gz: 54e156c3a04639e434793c4ff7bc39d185c887d428754ffb447111718428a1127261a4c49e49c554d7df437d1143c5bf96627da48eebe33e1b79e1c7e2942d4d
7
- data.tar.gz: 051683cc7a617b3f96c0c285f39f5070919c9d92c7a020144020edf1d2c50d4c9b5e339c9e02fc3a5e294f5f37ebdc2997f507faa65d33a926837ebaca0d9510
6
+ metadata.gz: be36facecf13fe566b71bab1825e9d7ef0311b85b48bb34456476d649cad0a0adcb3877f2f25afac7ec2755149ef0a258aac9d9f69410f55aa537c60efbfc227
7
+ data.tar.gz: aff8249f8050fe264785718e2ce773132e64b0153d50524bae003f6dad83c5f98ce74d5f1ed155b0fd197fc6beead571a6f2b020631253f648214dee74bd21c0
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
@@ -0,0 +1,80 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ active_record-mti (0.0.6)
5
+ activerecord (~> 4.1, > 4.1)
6
+ activesupport (~> 4.1, > 4.1)
7
+ pg (~> 0)
8
+ railties (~> 4.1, > 4.1)
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ actionpack (4.2.8)
14
+ actionview (= 4.2.8)
15
+ activesupport (= 4.2.8)
16
+ rack (~> 1.6)
17
+ rack-test (~> 0.6.2)
18
+ rails-dom-testing (~> 1.0, >= 1.0.5)
19
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
20
+ actionview (4.2.8)
21
+ activesupport (= 4.2.8)
22
+ builder (~> 3.1)
23
+ erubis (~> 2.7.0)
24
+ rails-dom-testing (~> 1.0, >= 1.0.5)
25
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
26
+ activemodel (4.2.8)
27
+ activesupport (= 4.2.8)
28
+ builder (~> 3.1)
29
+ activerecord (4.2.8)
30
+ activemodel (= 4.2.8)
31
+ activesupport (= 4.2.8)
32
+ arel (~> 6.0)
33
+ activesupport (4.2.8)
34
+ i18n (~> 0.7)
35
+ minitest (~> 5.1)
36
+ thread_safe (~> 0.3, >= 0.3.4)
37
+ tzinfo (~> 1.1)
38
+ arel (6.0.4)
39
+ builder (3.2.3)
40
+ erubis (2.7.0)
41
+ i18n (0.8.1)
42
+ loofah (2.0.3)
43
+ nokogiri (>= 1.5.9)
44
+ mini_portile2 (2.1.0)
45
+ minitest (5.10.1)
46
+ nokogiri (1.7.1)
47
+ mini_portile2 (~> 2.1.0)
48
+ pg (0.20.0)
49
+ rack (1.6.5)
50
+ rack-test (0.6.3)
51
+ rack (>= 1.0)
52
+ rails-deprecated_sanitizer (1.0.3)
53
+ activesupport (>= 4.2.0.alpha)
54
+ rails-dom-testing (1.0.8)
55
+ activesupport (>= 4.2.0.beta, < 5.0)
56
+ nokogiri (~> 1.6)
57
+ rails-deprecated_sanitizer (>= 1.0.1)
58
+ rails-html-sanitizer (1.0.3)
59
+ loofah (~> 2.0)
60
+ railties (4.2.8)
61
+ actionpack (= 4.2.8)
62
+ activesupport (= 4.2.8)
63
+ rake (>= 0.8.7)
64
+ thor (>= 0.18.1, < 2.0)
65
+ rake (0.9.6)
66
+ thor (0.19.4)
67
+ thread_safe (0.3.6)
68
+ tzinfo (1.2.3)
69
+ thread_safe (~> 0.1)
70
+
71
+ PLATFORMS
72
+ ruby
73
+
74
+ DEPENDENCIES
75
+ active_record-mti!
76
+ bundler (~> 1.6)
77
+ rake (~> 0)
78
+
79
+ BUNDLED WITH
80
+ 1.13.6
@@ -20,7 +20,11 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.6"
22
22
  spec.add_development_dependency 'rake', '~> 0'
23
- spec.add_runtime_dependency 'rails', '~> 4.1', '> 4.1'
24
- spec.add_runtime_dependency 'pg', '~> 0'
23
+
24
+ spec.add_dependency 'pg', '~> 0'
25
+
26
+ spec.add_dependency 'activerecord', '~> 4.1', '> 4.1'
27
+ spec.add_dependency 'railties', '~> 4.1', '> 4.1'
28
+ spec.add_dependency 'activesupport', '~> 4.1', '> 4.1'
25
29
 
26
30
  end
@@ -1,8 +1,24 @@
1
- require "active_record/mti/version"
2
- require 'active_record/mti/railtie' if defined?(Rails)
1
+ require 'active_record/mti/version'
2
+ require 'active_record/mti/railtie'
3
+ require 'active_record'
4
+ require 'active_record/connection_handling'
5
+ require 'active_record/mti/schema_dumper'
6
+ require 'active_record/mti/inheritance'
7
+ require 'active_record/mti/query_methods'
8
+ require 'active_record/mti/calculations'
9
+ require 'active_record/mti/connection_adapters/postgresql/schema_statements'
3
10
 
4
11
  module ActiveRecord
5
12
  module MTI
6
13
  # Your code goes here...
14
+ def self.load
15
+ puts "ActiveRecord::MTI loaded"
16
+ ::ActiveRecord::Base.send :include, Inheritance
17
+ ::ActiveRecord::Relation.send :include, QueryMethods
18
+ ::ActiveRecord::Relation.send :include, ActiveRecord::MTI::Calculations
19
+
20
+ ::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.send :include, ConnectionAdapters::PostgreSQL::SchemaStatements
21
+ ::ActiveRecord::SchemaDumper.send :include, ActiveRecord::MTI::SchemaDumper
22
+ end
7
23
  end
8
24
  end
@@ -1,3 +1,5 @@
1
+ require 'active_record/connection_adapters/postgresql_adapter'
2
+
1
3
  module ActiveRecord
2
4
  module MTI
3
5
  module ConnectionAdapters
@@ -22,11 +24,11 @@ module ActiveRecord
22
24
  if schema = options.delete(:schema)
23
25
  # If we specify a schema then we only create it if it doesn't exist
24
26
  # and we only force create it if only the specific schema is in the search path
25
- table_name = "#{schema}.#{table_name}"
27
+ table_name = %Q("#{schema}"."#{table_name}")
26
28
  end
27
29
 
28
30
  if parent_table = options.delete(:inherits)
29
- options[:options] = ["INHERITS (#{parent_table})", options[:options]].compact.join
31
+ options[:options] = [%Q(INHERITS ("#{parent_table}")), options[:options]].compact.join
30
32
  end
31
33
 
32
34
  td = create_table_definition table_name, options[:temporary], options[:options], options[:as]
@@ -58,7 +60,7 @@ module ActiveRecord
58
60
 
59
61
  if parent_table
60
62
  parent_table_primary_key = primary_key(parent_table)
61
- execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{parent_table_primary_key})"
63
+ execute %Q(ALTER TABLE "#{table_name}" ADD PRIMARY KEY ("#{parent_table_primary_key}"))
62
64
  indexes(parent_table).each do |index|
63
65
  add_index table_name, index.columns, :unique => index.unique
64
66
  end
@@ -1,3 +1,5 @@
1
+ require 'active_support/concern'
2
+
1
3
  module ActiveRecord
2
4
  # == Multi table inheritance
3
5
  #
@@ -57,6 +59,8 @@ module ActiveRecord
57
59
  # Search descendants for one who's table_name is equal to the returned tableoid.
58
60
  # This indicates the class of the record
59
61
  def find_mti_class(record)
62
+ record['tableoid'].classify.constantize
63
+ rescue NameError => e
60
64
  descendants.find(Proc.new{ self }) { |d| d.table_name == record['tableoid'] }
61
65
  end
62
66
 
@@ -0,0 +1,7 @@
1
+ module ActiveRecord
2
+ module MTI
3
+ module Querying
4
+ delegate :count_estimate, to: :all
5
+ end
6
+ end
7
+ end
@@ -1,19 +1,13 @@
1
- require 'active_record/mti/schema_dumper'
2
- require 'active_record/mti/inheritance'
3
- require 'active_record/mti/query_methods'
4
- require 'active_record/mti/calculations'
5
- require 'active_record/mti/connection_adapters/postgresql/schema_statements'
1
+ require 'rails/railtie'
6
2
 
7
3
  module ActiveRecord
8
4
  module MTI
9
5
  class Railtie < Rails::Railtie
10
- initializer 'active_record-mti.inheritance.initialization' do |_app|
11
- ::ActiveRecord::Base.send :include, Inheritance
12
- ::ActiveRecord::Relation.send :include, QueryMethods
13
- ::ActiveRecord::Relation.send :include, ActiveRecord::MTI::Calculations
14
-
15
- ::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.send :include, ConnectionAdapters::PostgreSQL::SchemaStatements
16
- ::ActiveRecord::SchemaDumper.send :include, ActiveRecord::MTI::SchemaDumper
6
+ initializer 'active_record-mti.load' do |_app|
7
+ puts "ActiveRecord::MTI railtie initializer"
8
+ ActiveSupport.on_load(:active_record) do
9
+ ActiveRecord::MTI.load
10
+ end
17
11
  end
18
12
  end
19
13
  end
@@ -1,3 +1,5 @@
1
+ require 'active_support/concern'
2
+
1
3
  # Modified SchemaDumper that knows how to dump
2
4
  # inherited tables. Key is that we have to dump parent
3
5
  # tables before we dump child tables (of course).
@@ -28,6 +30,7 @@ module ActiveRecord
28
30
  # schema in the search path (not including the $user schema)
29
31
  def table(table, stream)
30
32
  return if already_dumped?(table)
33
+
31
34
  if parent_table = @connection.parent_table(table)
32
35
  table(parent_table, stream)
33
36
  parent_column_names = @connection.columns(parent_table).map(&:name)
@@ -42,12 +45,12 @@ module ActiveRecord
42
45
 
43
46
  tbl.print " create_table #{remove_prefix_and_suffix(table).inspect}"
44
47
  if parent_table
45
- tbl.print %Q(, inherits: "#{parent_table}")
48
+ tbl.print %Q(, inherits: '#{parent_table}')
46
49
  else
47
50
  pkcol = columns.detect { |c| c.name == pk }
48
51
  if pkcol
49
52
  if pk != 'id'
50
- tbl.print %Q(, primary_key: "#{pk}")
53
+ tbl.print %Q(, primary_key: '#{pk}')
51
54
  elsif pkcol.sql_type == 'bigint'
52
55
  tbl.print ", id: :bigserial"
53
56
  elsif pkcol.sql_type == 'uuid'
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  module MTI
3
- VERSION = '0.0.5'
3
+ VERSION = '0.0.6'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record-mti
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dale Stevens
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-27 00:00:00.000000000 Z
11
+ date: 2017-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -39,7 +39,21 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rails
42
+ name: pg
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: activerecord
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
@@ -59,19 +73,45 @@ dependencies:
59
73
  - !ruby/object:Gem::Version
60
74
  version: '4.1'
61
75
  - !ruby/object:Gem::Dependency
62
- name: pg
76
+ name: railties
63
77
  requirement: !ruby/object:Gem::Requirement
64
78
  requirements:
65
79
  - - "~>"
66
80
  - !ruby/object:Gem::Version
67
- version: '0'
81
+ version: '4.1'
82
+ - - ">"
83
+ - !ruby/object:Gem::Version
84
+ version: '4.1'
68
85
  type: :runtime
69
86
  prerelease: false
70
87
  version_requirements: !ruby/object:Gem::Requirement
71
88
  requirements:
72
89
  - - "~>"
73
90
  - !ruby/object:Gem::Version
74
- version: '0'
91
+ version: '4.1'
92
+ - - ">"
93
+ - !ruby/object:Gem::Version
94
+ version: '4.1'
95
+ - !ruby/object:Gem::Dependency
96
+ name: activesupport
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '4.1'
102
+ - - ">"
103
+ - !ruby/object:Gem::Version
104
+ version: '4.1'
105
+ type: :runtime
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '4.1'
112
+ - - ">"
113
+ - !ruby/object:Gem::Version
114
+ version: '4.1'
75
115
  description: Allows use of native inherited tables in PostgreSQL
76
116
  email:
77
117
  - dale@twilightcoders.net
@@ -80,6 +120,8 @@ extensions: []
80
120
  extra_rdoc_files: []
81
121
  files:
82
122
  - ".gitignore"
123
+ - Gemfile
124
+ - Gemfile.lock
83
125
  - LICENSE.txt
84
126
  - README.md
85
127
  - Rakefile
@@ -89,6 +131,7 @@ files:
89
131
  - lib/active_record/mti/connection_adapters/postgresql/schema_statements.rb
90
132
  - lib/active_record/mti/inheritance.rb
91
133
  - lib/active_record/mti/query_methods.rb
134
+ - lib/active_record/mti/querying.rb
92
135
  - lib/active_record/mti/railtie.rb
93
136
  - lib/active_record/mti/schema_dumper.rb
94
137
  - lib/active_record/mti/version.rb