class-table-inheritance 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 5a95bda292c5e755340b27be9fd90f957b01ecc47b73c89c177f572596a2f129
4
+ data.tar.gz: bd126cd28e8a4f7211d610c8316e50f76936db8cb0cc5204941292d1d4dc514f
5
+ SHA512:
6
+ metadata.gz: 74c2e34b1409d158dde93426294e15bea61cad76ed8e7855b39041350b5e7e5cff0e2a180d9e087fbf9244c8b5d282c2d3b35a882c842e055dde8c09e85383dc
7
+ data.tar.gz: 1d2bfb4824571a4dcf873846c07693f8ba949d5b580ba8327a8cd57135a0a5c6d57c62d81861aab15e3d6015553174b6de488e2c76ac2f0ca04ab57587d321a9
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  *.gem
2
+ /Gemfile.lock
2
3
  test/cti_plugin.sqlite3
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.3.4
@@ -1,18 +1,25 @@
1
1
  Change log
2
- ==========
2
+ ----------
3
3
 
4
- * Now you can inherits from and to modules like inherits_from 'Module::Model', see the the name of field
5
- must be module_model_id:integer thanks for Marc Remolt (https://github.com/mremolt).
4
+ ### 1.3.1
5
+
6
+ * Removed 'set_primary_key' deprecation warning
7
+ * Make the gem depencies explicit and require ActiveRecord 4.x or 5.0
8
+
9
+
10
+ ### 1.3.0
11
+ * Now you can inherits from and to modules like inherits_from 'Module::Model', see the the name of
12
+ field must be module_model_id:integer thanks for Marc Remolt (https://github.com/mremolt).
6
13
  * Unit test
7
14
 
8
15
 
9
- Versions
10
- ========
16
+ Note about version
17
+ ------------------
11
18
 
12
19
  If you are using Rails 2.3.8 or other version < 3, you have to use the version 1.1.x of this plugin, for Rails 3 you need to use the version 1.2.x or master of this plugin.
13
20
 
14
- ClassTableInheritance 1.2.1
15
- ===========================
21
+ ClassTableInheritance 1.3.0
22
+ ---------------------------
16
23
 
17
24
  This is an ActiveRecord plugin designed to allow
18
25
  simple multiple table (class) inheritance.
@@ -22,15 +29,16 @@ ClassTableInheritance 1.2.1
22
29
  Multiple Table Inheritance with ActiveRecord => http://mediumexposure.com/multiple-table-inheritance-active-record/
23
30
 
24
31
  How to install
25
- ==============
32
+ --------------
26
33
 
27
34
  gem install class-table-inheritance
28
35
 
29
36
  Example
30
- =======
37
+ -------
31
38
 
32
- # Migrations
39
+ ### Migrations
33
40
 
41
+ ```ruby
34
42
  create_table :products do |t|
35
43
  t.string :description, :null => false
36
44
  t.string :subtype # Only if you need access of both side see example
@@ -46,10 +54,11 @@ Example
46
54
  t.string :year, :null => false
47
55
  t.string :genre, :null => false
48
56
  end
57
+ ```
49
58
 
59
+ ### Models
50
60
 
51
- # Models
52
-
61
+ ```ruby
53
62
  class Product < ActiveRecord::Base
54
63
  acts_as_superclass # only if you want top-down access.
55
64
  end
@@ -78,12 +87,13 @@ Example
78
87
  book.author = "Shakespeare, William"
79
88
  book.price => 14.00
80
89
  book.save
81
-
90
+ ```
82
91
 
83
92
  Module inheritance
84
- ==================
85
- # Migrations
93
+ ------------------
86
94
 
95
+ ### Migrations
96
+ ```ruby
87
97
  create_table :mod_users do |t|
88
98
  t.string :name, :null => false
89
99
  end
@@ -91,27 +101,31 @@ end
91
101
  create_table :managers, :inherits => 'Mod::User' do |t|
92
102
  t.string :salary, :null => false
93
103
  end
104
+ ```
94
105
 
95
- # Models
106
+ ### Models
96
107
 
108
+ ```ruby
97
109
  class Mod::User < ActiveRecord::Base
98
110
  end
99
111
 
100
112
  class Manager < ActiveRecord::Base
101
113
  inherits_from 'Mod::User'
102
114
  end
115
+ ```
103
116
 
104
117
  Top-down access (Polymorphic)
105
- =============================
118
+ -----------------------------
106
119
 
107
120
  if you want to access product and get field in the subclass do you need to create a field subtype:string in superclass and ad acts_as_superclass in superclass and now you can do like this.
108
121
 
122
+ ```ruby
109
123
  product = Product.find 1 # This is a Book instance.
110
124
  product.author
111
125
 
112
126
  product = Product.find 2 # This is a Video instance.
113
127
  product.genre
114
-
128
+ ```
115
129
 
116
130
  if you need help contanct me: bfscordeiro (at) gmail.com .
117
131
 
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
- require 'bundler'
1
+ require 'bundler/setup'
2
2
  require 'rake/testtask'
3
3
  Bundler::GemHelper.install_tasks
4
4
 
@@ -8,4 +8,6 @@ Rake::TestTask.new do |t|
8
8
  t.libs << 'test'
9
9
  t.pattern = 'test/**/*_test.rb'
10
10
  t.verbose = true
11
- end
11
+ end
12
+
13
+ task :default => :test
@@ -18,4 +18,10 @@ Gem::Specification.new do |s|
18
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
20
  s.require_paths = ["lib"]
21
- end
21
+
22
+ s.add_runtime_dependency 'activerecord', '>=4', '<5.1'
23
+
24
+ s.add_development_dependency 'minitest-reporters','~>1.1'
25
+ s.add_development_dependency 'rake', '>=11'
26
+ s.add_development_dependency 'sqlite3', '~>1.3'
27
+ end
@@ -42,13 +42,13 @@ class ActiveRecord::Base
42
42
  class_name = association_id.to_s.classify
43
43
  end
44
44
 
45
- # add an association, and set the foreign key.
46
- has_one association_id, :class_name => class_name, :foreign_key => :id, :dependent => :destroy
45
+ # add an association
46
+ belongs_to association_id, :class_name => class_name, :dependent => :destroy
47
47
 
48
48
 
49
49
  # set the primary key, it' need because the generalized table doesn't have
50
50
  # a field ID.
51
- set_primary_key "#{association_id}_id"
51
+ self.primary_key = "#{association_id}_id"
52
52
 
53
53
 
54
54
  # Autobuild method to make a instance of association
@@ -1,3 +1,3 @@
1
1
  class ClassTableInheritance
2
- VERSION = "1.3.0"
3
- end
2
+ VERSION = "1.3.1"
3
+ end
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class ClassTableInheritanceTest < Test::Unit::TestCase
3
+ class ClassTableInheritanceTest < Minitest::Test
4
4
 
5
5
  def test_create
6
6
  name = 'Bike'
@@ -1,9 +1,12 @@
1
1
  require 'rubygems'
2
- require 'test/unit'
2
+ require 'minitest/autorun'
3
+ require 'minitest/reporters'
3
4
  require 'active_record'
4
5
  require 'class-table-inheritance'
5
6
  require 'yaml'
6
7
 
8
+ Minitest::Reporters.use!
9
+
7
10
  database = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
8
11
  ActiveRecord::Base.establish_connection(database['sqlite3'])
9
12
  load(File.dirname(__FILE__) + "/schema.rb") if !File.exists?(database['sqlite3'][:database])
metadata CHANGED
@@ -1,32 +1,88 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: class-table-inheritance
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 1.3.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.1
6
5
  platform: ruby
7
- authors:
6
+ authors:
8
7
  - Bruno Frank
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
-
13
- date: 2011-07-25 00:00:00 -03:00
14
- default_executable:
15
- dependencies: []
16
-
11
+ date: 2018-10-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5.1'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '4'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.1'
33
+ - !ruby/object:Gem::Dependency
34
+ name: minitest-reporters
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.1'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.1'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '11'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '11'
61
+ - !ruby/object:Gem::Dependency
62
+ name: sqlite3
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.3'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.3'
17
75
  description: ActiveRecord plugin designed to allow simple multiple table (class) inheritance.
18
- email:
76
+ email:
19
77
  - bfscordeiro@gmail.com
20
78
  executables: []
21
-
22
79
  extensions: []
23
-
24
80
  extra_rdoc_files: []
25
-
26
- files:
27
- - .gitignore
81
+ files:
82
+ - ".gitignore"
83
+ - ".travis.yml"
28
84
  - Gemfile
29
- - README
85
+ - README.markdown
30
86
  - Rakefile
31
87
  - class-table-inheritance.gemspec
32
88
  - init.rb
@@ -44,35 +100,30 @@ files:
44
100
  - test/models/product.rb
45
101
  - test/schema.rb
46
102
  - test/test_helper.rb
47
- has_rdoc: true
48
103
  homepage: https://github.com/brunofrank/class-table-inheritance
49
104
  licenses: []
50
-
105
+ metadata: {}
51
106
  post_install_message:
52
107
  rdoc_options: []
53
-
54
- require_paths:
108
+ require_paths:
55
109
  - lib
56
- required_ruby_version: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
110
+ required_ruby_version: !ruby/object:Gem::Requirement
111
+ requirements:
59
112
  - - ">="
60
- - !ruby/object:Gem::Version
61
- version: "0"
62
- required_rubygems_version: !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
65
117
  - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
68
120
  requirements: []
69
-
70
121
  rubyforge_project: class-table-inheritance
71
- rubygems_version: 1.6.2
122
+ rubygems_version: 2.7.7
72
123
  signing_key:
73
- specification_version: 3
124
+ specification_version: 4
74
125
  summary: ActiveRecord plugin designed to allow simple multiple table (class) inheritance.
75
- test_files:
126
+ test_files:
76
127
  - test/class_table_inheritance_test.rb
77
128
  - test/database.yml
78
129
  - test/models/book.rb