active_record-mti 0.0.6 → 0.0.7

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: f561f8c3e6dff9e4c46e297bb68cf4e00d5d5891
4
- data.tar.gz: 44bf123a8420156b88e21e5e9f1d9c39e4379a8d
3
+ metadata.gz: b14d2c9a38a839510f0246918f467e58e592aef4
4
+ data.tar.gz: bf6e66c09163a3296f93befdbaf1fe7a3b043ad8
5
5
  SHA512:
6
- metadata.gz: be36facecf13fe566b71bab1825e9d7ef0311b85b48bb34456476d649cad0a0adcb3877f2f25afac7ec2755149ef0a258aac9d9f69410f55aa537c60efbfc227
7
- data.tar.gz: aff8249f8050fe264785718e2ce773132e64b0153d50524bae003f6dad83c5f98ce74d5f1ed155b0fd197fc6beead571a6f2b020631253f648214dee74bd21c0
6
+ metadata.gz: 7fb70a3c6492b2c70dd4a95198116a9a4dc3eb2e45f66ca5be70b38d5658a38fc39742d820320091b6f3411717ee23a1fca3eb71e362a95cb8dfe7f6803537ee
7
+ data.tar.gz: e1066d95c0fd0ebdf83fd7d2aded8de84c665829a71929c2e35bdb70b5b9dc7754ee4b11a1f126dac0f30f96a4440ad60fde724f813f624a8c5abc5baf6b22cf
data/.gitignore CHANGED
@@ -72,3 +72,5 @@
72
72
  Icon?
73
73
  ehthumbs.db
74
74
  Thumbs.db
75
+ /Gemfile.lock
76
+ /coverage
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1,21 @@
1
+ language: ruby
2
+ sudo: false
3
+ rvm:
4
+ - 2.0
5
+ - 2.1
6
+ - 2.2
7
+ - 2.3.1
8
+ - 2.4.0
9
+ cache: bundler
10
+ script:
11
+ - bundle exec rspec
12
+
13
+ after_success:
14
+ - bundle exec codeclimate-test-reporter
15
+
16
+ addons:
17
+ postgresql: "9.1"
18
+
19
+ env:
20
+ - RSPEC_VERSION="<2.99"
21
+ - RSPEC_VERSION="~>3.0
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # ActiveRecord::MTI
1
+ # ActiveRecord::MTI [![Build Status](https://travis-ci.org/TwilightCoders/active_record-mti.svg?branch=master)](https://travis-ci.org/TwilightCoders/active_record-mti) [![Code Climate](https://codeclimate.com/github/TwilightCoders/active_record-mti/badges/gpa.svg)](https://codeclimate.com/github/TwilightCoders/active_record-mti) [![Test Coverage](https://codeclimate.com/github/TwilightCoders/active_record-mti/badges/coverage.svg)](https://codeclimate.com/github/TwilightCoders/active_record-mti/coverage)
2
2
 
3
3
  Allows for true native inheritance of tables in PostgreSQL
4
4
 
@@ -18,6 +18,28 @@ Or install it yourself as:
18
18
 
19
19
  $ gem install active_record-mti
20
20
 
21
+ ### Application Code
22
+
23
+ ```ruby
24
+ class Account < ::ActiveRecord::Base
25
+ uses_mti
26
+
27
+ end
28
+
29
+ class User < Account
30
+
31
+ end
32
+
33
+ class Developer < Account
34
+
35
+ end
36
+ ```
37
+
38
+ ActiveRecord queries work as usual with the following differences:
39
+
40
+ * You need to specify which model represents the base of your multi table inheritance tree. To do so, insert `uses_mti` in the model definition of the base class.
41
+ * The default query of "*" is changed to include the OID of each row for subclass discrimination. The default select will be `SELECT cast("accounts"."tableoid"::regclass AS text), "accounts".*` (for example)
42
+
21
43
  ### Migrations
22
44
 
23
45
  In your migrations define a table to inherit from another table:
@@ -25,39 +47,36 @@ In your migrations define a table to inherit from another table:
25
47
  ```ruby
26
48
  class CreateAccounts < ActiveRecord::Migration
27
49
  def change
28
- # Things is the head of or inheritance tree representing all things
29
- # both tangible and intangible. Can be considered the vertices in
30
- # the graph.
31
50
  create_table :accounts do |t|
32
- t.jsonb :settings
33
- t.timestamps
51
+ t.jsonb :settings
52
+ t.timestamps null: false
34
53
  end
35
54
 
36
55
  create_table :users, inherits: :accounts do |t|
37
- t.string :firstname
38
- t.string :lastname
56
+ t.string :firstname
57
+ t.string :lastname
39
58
  end
40
59
 
41
60
  create_table :developers, inherits: :users do |t|
42
- t.string :url
43
- t.string :api_key
61
+ t.string :url
62
+ t.string :api_key
44
63
  end
45
64
  end
46
65
  end
47
66
 
48
67
  ```
49
68
 
50
- ### Schema.rb
69
+ ### Schema
51
70
 
52
- A schema will be created that reflects the inheritance chain so that rake:db:schema:load will work
71
+ A schema will be created that reflects the inheritance chain so that `rake:db:schema:load` will work
53
72
 
54
73
  ```ruby
55
- ctiveRecord::Schema.define(version: 20160910024954) do
74
+ ActiveRecord::Schema.define(version: 20160910024954) do
56
75
 
57
76
  create_table "accounts", force: :cascade do |t|
58
77
  t.jsonb "settings"
59
- t.datetime "created_at"
60
- t.datetime "updated_at"
78
+ t.datetime "created_at", null: false
79
+ t.datetime "updated_at", null: false
61
80
  end
62
81
 
63
82
  create_table "users", inherits: "accounts" do |t|
@@ -73,12 +92,6 @@ ctiveRecord::Schema.define(version: 20160910024954) do
73
92
  end
74
93
  ```
75
94
 
76
- ### In your application code
77
-
78
- ActiveRecord queries work as usual with the following differences:
79
-
80
- * The default query of "*" is changed to include the OID of each row for subclass discrimination. The default select will be `SELECT cast("accounts"."tableoid"::regclass AS text), "accounts".*`
81
-
82
95
  ## Contributing
83
96
 
84
97
  1. Fork it ( https://github.com/[my-github-username]/active_record-mti/fork )
@@ -8,23 +8,36 @@ Gem::Specification.new do |spec|
8
8
  spec.version = ActiveRecord::MTI::VERSION
9
9
  spec.authors = ["Dale Stevens"]
10
10
  spec.email = ["dale@twilightcoders.net"]
11
+
11
12
  spec.summary = %q{Multi Table Inheritance for PostgreSQL in Rails}
12
13
  spec.description = %q{Allows use of native inherited tables in PostgreSQL}
13
14
  spec.homepage = ""
14
15
  spec.license = "MIT"
15
16
 
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
17
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
19
+ if spec.respond_to?(:metadata)
20
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
21
+ else
22
+ raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
23
+ end
24
+
25
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
+ spec.bindir = 'exe'
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ['lib']
20
29
 
21
- spec.add_development_dependency "bundler", "~> 1.6"
22
- spec.add_development_dependency 'rake', '~> 0'
30
+ rails_versions = ['>= 4.1', '< 5']
31
+ spec.required_ruby_version = '>= 2.0.0'
23
32
 
24
- spec.add_dependency 'pg', '~> 0'
33
+ spec.add_runtime_dependency 'pg', '~> 0'
34
+ spec.add_runtime_dependency 'activerecord', rails_versions
25
35
 
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'
36
+ spec.add_development_dependency 'pry-byebug'
37
+ spec.add_development_dependency 'bundler', '~> 1.3'
38
+ spec.add_development_dependency 'rake', '~> 10.0'
39
+ spec.add_development_dependency 'rspec', '~> 3.0'
40
+ spec.add_development_dependency "simplecov", ['>= 0.9.0', '<1.0.0']
41
+ spec.add_development_dependency "codeclimate-test-reporter", "~> 1.0"
29
42
 
30
43
  end
@@ -1,22 +1,27 @@
1
1
  require 'active_record/mti/version'
2
- require 'active_record/mti/railtie'
3
2
  require 'active_record'
4
3
  require 'active_record/connection_handling'
5
4
  require 'active_record/mti/schema_dumper'
6
5
  require 'active_record/mti/inheritance'
6
+ require 'active_record/mti/model_schema'
7
7
  require 'active_record/mti/query_methods'
8
8
  require 'active_record/mti/calculations'
9
9
  require 'active_record/mti/connection_adapters/postgresql/schema_statements'
10
10
 
11
+ require 'active_record/mti/railtie' if defined?(Rails::Railtie)
12
+
11
13
  module ActiveRecord
12
14
  module MTI
13
- # Your code goes here...
15
+
16
+ def self.root
17
+ @root ||= Pathname.new(File.expand_path('../../', File.dirname(__FILE__)))
18
+ end
19
+
14
20
  def self.load
15
- puts "ActiveRecord::MTI loaded"
16
21
  ::ActiveRecord::Base.send :include, Inheritance
22
+ ::ActiveRecord::Base.send :include, ActiveRecord::MTI::ModelSchema
17
23
  ::ActiveRecord::Relation.send :include, QueryMethods
18
24
  ::ActiveRecord::Relation.send :include, ActiveRecord::MTI::Calculations
19
-
20
25
  ::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.send :include, ConnectionAdapters::PostgreSQL::SchemaStatements
21
26
  ::ActiveRecord::SchemaDumper.send :include, ActiveRecord::MTI::SchemaDumper
22
27
  end
@@ -52,7 +52,7 @@ module ActiveRecord
52
52
  relation.select_values = select_values
53
53
 
54
54
  # Remove our cast otherwise PSQL will insist that it be included in the GROUP
55
- relation.arel.projections.select!{ |p| p.to_s != "cast(\"#{klass.table_name}\".\"tableoid\"::regclass as text)" } if @klass.using_multi_table_inheritance?
55
+ relation.arel.projections.select!{ |p| p.to_s != "CAST(\"#{klass.table_name}\".\"tableoid\"::regclass AS text)" } if @klass.using_multi_table_inheritance?
56
56
 
57
57
  calculated_data = @klass.connection.select_all(relation, nil, relation.arel.bind_values + bind_values)
58
58
 
@@ -102,7 +102,7 @@ module ActiveRecord
102
102
 
103
103
  # Remove our cast otherwise PSQL will insist that it be included in the GROUP
104
104
  # Somewhere between line 82 and 101 relation.arel.projections gets reset :/
105
- relation.arel.projections.select!{ |p| p.to_s != "cast(\"#{klass.table_name}\".\"tableoid\"::regclass as text)" } if @klass.using_multi_table_inheritance?
105
+ relation.arel.projections.select!{ |p| p.to_s != "CAST(\"#{klass.table_name}\".\"tableoid\"::regclass AS text)" } if @klass.using_multi_table_inheritance?
106
106
 
107
107
  query_builder = relation.arel
108
108
  bind_values = query_builder.bind_values + relation.bind_values
@@ -61,8 +61,15 @@ module ActiveRecord
61
61
  if parent_table
62
62
  parent_table_primary_key = primary_key(parent_table)
63
63
  execute %Q(ALTER TABLE "#{table_name}" ADD PRIMARY KEY ("#{parent_table_primary_key}"))
64
+
65
+
64
66
  indexes(parent_table).each do |index|
65
- add_index table_name, index.columns, :unique => index.unique
67
+ attributes = index.to_h.slice(:unique, :using, :where, :orders)
68
+
69
+ # Why rails insists on being inconsistant with itself is beyond me.
70
+ attributes[:order] = attributes.delete(:orders)
71
+
72
+ add_index table_name, index.columns, attributes
66
73
  end
67
74
  # triggers_for_table(parent_table).each do |trigger|
68
75
  # name = trigger.first
@@ -76,14 +83,13 @@ module ActiveRecord
76
83
 
77
84
  # Parent of inherited table
78
85
  def parent_tables(table_name)
79
- sql = <<-SQL
86
+ result = exec_query(<<-SQL, "SCHEMA")
80
87
  SELECT pg_namespace.nspname, pg_class.relname
81
88
  FROM pg_catalog.pg_inherits
82
89
  INNER JOIN pg_catalog.pg_class ON (pg_inherits.inhparent = pg_class.oid)
83
90
  INNER JOIN pg_catalog.pg_namespace ON (pg_class.relnamespace = pg_namespace.oid)
84
91
  WHERE inhrelid = '#{table_name}'::regclass
85
92
  SQL
86
- result = exec_query(sql, "SCHEMA")
87
93
  result.map{|a| a['relname']}
88
94
  end
89
95
 
@@ -25,20 +25,30 @@ module ActiveRecord
25
25
  module Inheritance
26
26
  extend ActiveSupport::Concern
27
27
 
28
+ included do
29
+ scope :discern_inheritance, -> {
30
+
31
+ }
32
+ end
33
+
28
34
  module ClassMethods
29
35
 
30
- # We know we're using multi-table inheritance if the inheritance_column is not actually
31
- # present in the DB structure. Thereby implying the inheritance_column is inferred.
32
- # To further isolate usage of multi-table inheritance, the inheritance column must be set
33
- # to 'tableoid'
36
+ def inherited(child)
37
+ child.uses_mti if self.uses_mti?
38
+ super
39
+ end
40
+
41
+ def uses_mti
42
+ self.inheritance_column = nil
43
+ @uses_mti = true
44
+ end
45
+
34
46
  def using_multi_table_inheritance?(klass = self)
35
- @using_multi_table_inheritance ||= if klass.columns_hash.include?(klass.inheritance_column)
36
- false
37
- elsif klass.inheritance_column == 'tableoid' && (klass.descendants.select{ |d| d.table_name != klass.table_name }.any?)
38
- true
39
- else
40
- false
41
- end
47
+ klass.uses_mti?
48
+ end
49
+
50
+ def uses_mti?
51
+ @uses_mti ||= false
42
52
  end
43
53
 
44
54
  private
@@ -47,10 +57,10 @@ module ActiveRecord
47
57
  # record instance. For single-table inheritance, we check the record
48
58
  # for a +type+ column and return the corresponding class.
49
59
  def discriminate_class_for_record(record)
50
- if using_single_table_inheritance?(record)
51
- find_sti_class(record[inheritance_column])
52
- elsif using_multi_table_inheritance?(base_class)
60
+ if using_multi_table_inheritance?(base_class)
53
61
  find_mti_class(record)
62
+ elsif using_single_table_inheritance?(record)
63
+ find_sti_class(record[inheritance_column])
54
64
  else
55
65
  super
56
66
  end
@@ -0,0 +1,24 @@
1
+ module ActiveRecord
2
+ module MTI
3
+ module ModelSchema
4
+ extend ActiveSupport::Concern
5
+
6
+
7
+ module ClassMethods
8
+
9
+ # Computes the table name, (re)sets it internally, and returns it.
10
+ def reset_table_name #:nodoc:
11
+ # binding.pry
12
+ self.table_name = if abstract_class?
13
+ superclass == Base ? nil : superclass.table_name
14
+ elsif superclass.abstract_class? || superclass.using_multi_table_inheritance?
15
+ superclass.table_name || compute_table_name
16
+ else
17
+ compute_table_name
18
+ end
19
+ end
20
+
21
+ end
22
+ end
23
+ end
24
+ end
@@ -6,7 +6,7 @@ module ActiveRecord
6
6
 
7
7
  # Retrieve the OID as well on a default select
8
8
  def build_select(arel)
9
- arel.project("cast(\"#{klass.table_name}\".\"tableoid\"::regclass as text)") if @klass.using_multi_table_inheritance?
9
+ arel.project(tableoid_cast(@klass)) if @klass.using_multi_table_inheritance?
10
10
  # arel.project("\"#{klass.table_name}\".\"tableoid\"::regclass as \"#{klass.inheritance_column}\"") if @klass.using_multi_table_inheritance?
11
11
  if select_values.any?
12
12
  arel.project(*arel_columns(select_values.uniq))
@@ -15,6 +15,12 @@ module ActiveRecord
15
15
  end
16
16
  end
17
17
 
18
+ def tableoid_cast(klass)
19
+ # Arel::Nodes::NamedFunction.new('CAST', [klass.arel_table[:tableoid].as('regclass')])
20
+ # Arel::Nodes::NamedFunction.new('CAST', [@klass.arel_table['tableoid::regclass'].as('regclass')])
21
+ "CAST(\"#{klass.table_name}\".\"tableoid\"::regclass AS text)"
22
+ end
23
+
18
24
  end
19
25
  end
20
26
  end
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  module MTI
3
- VERSION = '0.0.6'
3
+ VERSION = '0.0.7'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,117 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record-mti
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dale Stevens
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-28 00:00:00.000000000 Z
11
+ date: 2017-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: pg
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
20
- type: :development
19
+ version: '0'
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.6'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '4.1'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '5'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '4.1'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '5'
47
+ - !ruby/object:Gem::Dependency
48
+ name: pry-byebug
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
32
52
  - !ruby/object:Gem::Version
33
53
  version: '0'
34
54
  type: :development
35
55
  prerelease: false
36
56
  version_requirements: !ruby/object:Gem::Requirement
37
57
  requirements:
38
- - - "~>"
58
+ - - ">="
39
59
  - !ruby/object:Gem::Version
40
60
  version: '0'
41
61
  - !ruby/object:Gem::Dependency
42
- name: pg
62
+ name: bundler
43
63
  requirement: !ruby/object:Gem::Requirement
44
64
  requirements:
45
65
  - - "~>"
46
66
  - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
67
+ version: '1.3'
68
+ type: :development
49
69
  prerelease: false
50
70
  version_requirements: !ruby/object:Gem::Requirement
51
71
  requirements:
52
72
  - - "~>"
53
73
  - !ruby/object:Gem::Version
54
- version: '0'
74
+ version: '1.3'
55
75
  - !ruby/object:Gem::Dependency
56
- name: activerecord
76
+ name: rake
57
77
  requirement: !ruby/object:Gem::Requirement
58
78
  requirements:
59
79
  - - "~>"
60
80
  - !ruby/object:Gem::Version
61
- version: '4.1'
62
- - - ">"
63
- - !ruby/object:Gem::Version
64
- version: '4.1'
65
- type: :runtime
81
+ version: '10.0'
82
+ type: :development
66
83
  prerelease: false
67
84
  version_requirements: !ruby/object:Gem::Requirement
68
85
  requirements:
69
86
  - - "~>"
70
87
  - !ruby/object:Gem::Version
71
- version: '4.1'
72
- - - ">"
73
- - !ruby/object:Gem::Version
74
- version: '4.1'
88
+ version: '10.0'
75
89
  - !ruby/object:Gem::Dependency
76
- name: railties
90
+ name: rspec
77
91
  requirement: !ruby/object:Gem::Requirement
78
92
  requirements:
79
93
  - - "~>"
80
94
  - !ruby/object:Gem::Version
81
- version: '4.1'
82
- - - ">"
83
- - !ruby/object:Gem::Version
84
- version: '4.1'
85
- type: :runtime
95
+ version: '3.0'
96
+ type: :development
86
97
  prerelease: false
87
98
  version_requirements: !ruby/object:Gem::Requirement
88
99
  requirements:
89
100
  - - "~>"
90
101
  - !ruby/object:Gem::Version
91
- version: '4.1'
92
- - - ">"
93
- - !ruby/object:Gem::Version
94
- version: '4.1'
102
+ version: '3.0'
95
103
  - !ruby/object:Gem::Dependency
96
- name: activesupport
104
+ name: simplecov
97
105
  requirement: !ruby/object:Gem::Requirement
98
106
  requirements:
99
- - - "~>"
107
+ - - ">="
100
108
  - !ruby/object:Gem::Version
101
- version: '4.1'
102
- - - ">"
109
+ version: 0.9.0
110
+ - - "<"
103
111
  - !ruby/object:Gem::Version
104
- version: '4.1'
105
- type: :runtime
112
+ version: 1.0.0
113
+ type: :development
106
114
  prerelease: false
107
115
  version_requirements: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: 0.9.0
120
+ - - "<"
121
+ - !ruby/object:Gem::Version
122
+ version: 1.0.0
123
+ - !ruby/object:Gem::Dependency
124
+ name: codeclimate-test-reporter
125
+ requirement: !ruby/object:Gem::Requirement
108
126
  requirements:
109
127
  - - "~>"
110
128
  - !ruby/object:Gem::Version
111
- version: '4.1'
112
- - - ">"
129
+ version: '1.0'
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
113
135
  - !ruby/object:Gem::Version
114
- version: '4.1'
136
+ version: '1.0'
115
137
  description: Allows use of native inherited tables in PostgreSQL
116
138
  email:
117
139
  - dale@twilightcoders.net
@@ -120,8 +142,9 @@ extensions: []
120
142
  extra_rdoc_files: []
121
143
  files:
122
144
  - ".gitignore"
145
+ - ".rspec"
146
+ - ".travis.yml"
123
147
  - Gemfile
124
- - Gemfile.lock
125
148
  - LICENSE.txt
126
149
  - README.md
127
150
  - Rakefile
@@ -130,6 +153,7 @@ files:
130
153
  - lib/active_record/mti/calculations.rb
131
154
  - lib/active_record/mti/connection_adapters/postgresql/schema_statements.rb
132
155
  - lib/active_record/mti/inheritance.rb
156
+ - lib/active_record/mti/model_schema.rb
133
157
  - lib/active_record/mti/query_methods.rb
134
158
  - lib/active_record/mti/querying.rb
135
159
  - lib/active_record/mti/railtie.rb
@@ -138,7 +162,8 @@ files:
138
162
  homepage: ''
139
163
  licenses:
140
164
  - MIT
141
- metadata: {}
165
+ metadata:
166
+ allowed_push_host: https://rubygems.org
142
167
  post_install_message:
143
168
  rdoc_options: []
144
169
  require_paths:
@@ -147,7 +172,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
147
172
  requirements:
148
173
  - - ">="
149
174
  - !ruby/object:Gem::Version
150
- version: '0'
175
+ version: 2.0.0
151
176
  required_rubygems_version: !ruby/object:Gem::Requirement
152
177
  requirements:
153
178
  - - ">="
@@ -155,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
180
  version: '0'
156
181
  requirements: []
157
182
  rubyforge_project:
158
- rubygems_version: 2.5.1
183
+ rubygems_version: 2.6.11
159
184
  signing_key:
160
185
  specification_version: 4
161
186
  summary: Multi Table Inheritance for PostgreSQL in Rails
@@ -1,80 +0,0 @@
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