activemodel-associations 0.1.0 → 0.1.1

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: 79477d111d595a8744d9aa8791e2af76140472c6
4
- data.tar.gz: 2049c89ed6dcd5469f6c7d6038b4e61f8d53fc76
3
+ metadata.gz: 05b48e5387b4b96ce1a5b67a9d40dc2d9f3b2ccc
4
+ data.tar.gz: 74414a8659cc8a1f854f4f95fa7a2eceb5b8045d
5
5
  SHA512:
6
- metadata.gz: b14400b269f6fa840d48b83d0aa4713a95a64632abbd2c0585cc05214d3291932b8cecc9884f2f9e735cbccdb6edf56ac39d523053a018bbb793ba38a3905594
7
- data.tar.gz: bafe78db7336da6457d3cb303c23f2c03f88bb6281513b9bf5c803f6b21a478b491ecc264cb185ea91ade09f7e47b7dc31f424f053bfc35f0cea684e853fc0c9
6
+ metadata.gz: eab7092d4d6a60a114fdd5a88d9572cf83d621afc300f802e775f8ac60078830d0b581738bd2200560460e24f7b29e3697964b4468d20312e6aae85e87f3fe06
7
+ data.tar.gz: f5d09635fd3d18e37c18167137ba0528002d8f230e76e8380912b3940261ed12c78ef77df90e72068025a463d944897077cd30cc55af21307a55dd20c0c8909a
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Activemodel::Associations
2
+ [![Gem Version](https://badge.fury.io/rb/activemodel-associations.svg)](http://badge.fury.io/rb/activemodel-associations)
2
3
  [![Build Status](https://travis-ci.org/joker1007/activemodel-associations.svg?branch=master)](https://travis-ci.org/joker1007/activemodel-associations)
3
4
  [![Coverage Status](https://coveralls.io/repos/joker1007/activemodel-associations/badge.png)](https://coveralls.io/r/joker1007/activemodel-associations)
5
+ [![Code Climate](https://codeclimate.com/github/joker1007/activemodel-associations/badges/gpa.svg)](https://codeclimate.com/github/joker1007/activemodel-associations)
4
6
 
5
7
  `has_many` and `belongs_to` macro for Plain Ruby Object.
6
8
 
@@ -18,6 +20,11 @@ Or install it yourself as:
18
20
 
19
21
  $ gem install activemodel-associations
20
22
 
23
+ ## Support
24
+ - activerecord-4.0.x
25
+ - activerecord-4.1.x
26
+ - activerecord-4.2.x
27
+
21
28
  ## Usage
22
29
 
23
30
  ### belongs\_to
@@ -18,7 +18,7 @@ module ActiveModel
18
18
  # define association like ActiveRecord
19
19
  def belongs_to(name, scope = nil, options = {})
20
20
  reflection = ActiveRecord::Associations::Builder::BelongsTo.build(self, name, scope, options)
21
- if ActiveRecord.version.to_s >= "4.1"
21
+ if ActiveRecord.version >= Gem::Version.new("4.1")
22
22
  ActiveRecord::Reflection.add_reflection self, name, reflection
23
23
  end
24
24
  end
@@ -32,7 +32,7 @@ module ActiveModel
32
32
  end
33
33
 
34
34
  reflection = ActiveRecord::Associations::Builder::HasManyForActiveModel.build(self, name, scope, options, &extension)
35
- if ActiveRecord.version.to_s >= "4.1"
35
+ if ActiveRecord.version >= Gem::Version.new("4.1")
36
36
  ActiveRecord::Reflection.add_reflection self, name, reflection
37
37
  end
38
38
 
@@ -3,7 +3,7 @@ module ActiveModel::Associations
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  included do
6
- if ActiveRecord.version.to_s >= "4.1.2"
6
+ if ActiveRecord.version >= Gem::Version.new("4.1.2")
7
7
  class_attribute :_reflections
8
8
  self._reflections = ActiveSupport::HashWithIndifferentAccess.new
9
9
  else
@@ -13,7 +13,7 @@ module ActiveModel::Associations
13
13
  end
14
14
 
15
15
  module ClassMethods
16
- if ActiveRecord.version.to_s < "4.1"
16
+ if ActiveRecord.version < Gem::Version.new("4.1")
17
17
  def create_reflection(macro, name, scope, options, active_record)
18
18
  case macro
19
19
  when :has_many, :belongs_to
@@ -27,7 +27,7 @@ module ActiveModel::Associations
27
27
  end
28
28
 
29
29
  def reflect_on_association(association)
30
- if ActiveRecord.version.to_s >= "4.1.2"
30
+ if ActiveRecord.version >= Gem::Version.new("4.1.2")
31
31
  _reflections[association.to_s]
32
32
  else
33
33
  reflections[association]
@@ -1,6 +1,6 @@
1
1
  module ActiveModel::Associations
2
2
  module AssociationScopeExtension
3
- if ActiveRecord.version.to_s < "4.1"
3
+ if ActiveRecord.version < Gem::Version.new("4.1")
4
4
  def add_constraints(scope)
5
5
  if reflection.options[:active_model]
6
6
  target_ids = reflection.options[:target_ids]
@@ -11,7 +11,7 @@ module ActiveModel::Associations
11
11
  end
12
12
  end
13
13
  alias :generated_feature_methods :generated_association_methods \
14
- if ActiveRecord.version.to_s < "4.1"
14
+ if ActiveRecord.version < Gem::Version.new("4.1")
15
15
 
16
16
  # override
17
17
  def dangerous_attribute_method?(name)
@@ -1,5 +1,5 @@
1
1
  module ActiveModel
2
2
  module Associations
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
@@ -19,6 +19,30 @@ describe ActiveModel::Associations do
19
19
  end
20
20
  end
21
21
 
22
+ class PostBase
23
+ extend ActiveModel::Naming
24
+ extend ActiveModel::Callbacks
25
+ include ActiveModel::Model
26
+ include ActiveModel::Associations
27
+ include ActiveModel::Conversion
28
+ include ActiveModel::Dirty
29
+ include ActiveModel::Validations
30
+
31
+ attr_accessor :user_id
32
+
33
+ def [](attr)
34
+ self.send(attr)
35
+ end
36
+
37
+ def []=(attr, value)
38
+ self.send("#{attr}=", value)
39
+ end
40
+ end
41
+
42
+ class Post < PostBase
43
+ belongs_to :user
44
+ end
45
+
22
46
  it "extends constructor" do
23
47
  comment = Comment.new(body: "foo")
24
48
  expect(comment.body).to eq "foo"
@@ -41,9 +65,11 @@ describe ActiveModel::Associations do
41
65
  describe "defined accessor" do
42
66
  let(:user) { User.create(name: "joker1007") }
43
67
  let(:comment) { Comment.new(user_id: user.id) }
68
+ let(:post) { Post.new(user_id: user.id) }
44
69
 
45
70
  it "defined accessor loads target ActiveRecord instance" do
46
71
  expect(comment.user).to eq user
72
+ expect(post.user).to eq user
47
73
  end
48
74
 
49
75
  it "receives target ActiveRecord instance, and set foreign_key attributes" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activemodel-associations
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - joker1007
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-23 00:00:00.000000000 Z
11
+ date: 2015-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -247,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
247
  version: '0'
248
248
  requirements: []
249
249
  rubyforge_project:
250
- rubygems_version: 2.4.5
250
+ rubygems_version: 2.4.6
251
251
  signing_key:
252
252
  specification_version: 4
253
253
  summary: ActiveRecord Association Helper for PORO (Plain Old Ruby Object)