virtus-group 0.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MmMwZjhhMDkwYjIyZmY3MDZmNGUwNDczZDAwOGIzMzkwYWRkNzBkMQ==
4
+ MmNlZDQwZmZhNGYwNTFjZGQ4NThmODdmMGMyMjgyNGRhODc4YWE1MA==
5
5
  data.tar.gz: !binary |-
6
- ZDFkNzQzNjE2ODhlZDc5ZDBhYjIwODY2MzRlYmI2MjVkNDM2MmYzYw==
6
+ YjhiMWI0MjE5YTA4NDE0MTZlYzc2N2U0Yzc4YzI4ODQ0ODcyZjQ5Yw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MzMzNTJlZTFkMGJiYjVhODcxN2E2ZWY4NTQ0ZDdjZWMxMzBlZTY2ZWQxZjIx
10
- YTA3MWIwM2IxOTIwMzFiZGQyZWI1NzBhZjkxMjc3NjI5MTE0Mzk5MzcyOTNi
11
- NGE2MWQ0NWRhNDA1Y2RiODQyMzZhMGUwMWIwODk0YzdmNTEwNTQ=
9
+ NWI5MzQ3YWZiYTJkODVhYzRmMDIwNjNiZTA1OGUyY2ZiMjZkOGRiYzFhNGRh
10
+ ZTMyMGIwYjc0OWZjNTkyMWNhZTA4NGQzZGE1OWEzYmE0MmQwMmQ1ODgyNDIy
11
+ ZmM0YTNhOTYyNDI2ZmEwODI2NzE2ZDQ2ZDU5NmM0ZGVkOTFhYzA=
12
12
  data.tar.gz: !binary |-
13
- ZTc3NzEwYTI3NmZjZGY4MjA5NWNlNzI4NWNhODI3ZGI0NzRjYTM5OTA1YjE3
14
- NTYzNTYyZTM4NjA1Nzk2NDRiNDZjNzBmN2NkNmE1ZjNhNWUwYmVkNDNlOTdm
15
- YTI5ZDI4MTZhYTFmNWI3NDJjZWFmNmMzYjI2YjgwMmJkYTkwMGU=
13
+ ZDE2ODE0ODJkZDgyNDg3ZjdlNDdjNzBlZTBlNTBkMzlkNzIzODQ1NWVlMDg5
14
+ MGJlOTE5YmEzZTYxMDkzNmY3YzJmODNkZmVkN2U3MGVkMjIyNzA5ZWZiZjZl
15
+ MmUyMDFlYzU3YjRmM2UxMjg1YTYwZDZlNmZlYjkyN2IwMmI5Mzk=
data/README.md CHANGED
@@ -104,8 +104,4 @@ end
104
104
  5. Create new Pull Request
105
105
 
106
106
 
107
- ## TODO's
108
-
109
- * remove dependency to `active_support` (needed for class level attribute inheritance)
110
-
111
107
 
data/lib/virtus/group.rb CHANGED
@@ -1,6 +1,6 @@
1
- require "active_support/core_ext/class"
2
1
  require "virtus/group/version"
3
2
  require "virtus/group/attribute_tracker"
3
+ require "virtus/group/attribute_groups"
4
4
 
5
5
  module Virtus
6
6
 
@@ -18,8 +18,6 @@ module Virtus
18
18
  def self.included(base)
19
19
  base.class_eval do
20
20
  extend ClassMethods
21
-
22
- class_attribute :attribute_groups
23
21
  end
24
22
  end
25
23
 
@@ -31,7 +29,16 @@ module Virtus
31
29
  end
32
30
 
33
31
  def attribute_group
34
- self.attribute_groups ||= {}
32
+ self.attribute_groups.for_class(self)
33
+ end
34
+
35
+ def attribute_groups
36
+ @attribute_groups ||= AttributeGroups.new
37
+ end
38
+
39
+ def inherited(base)
40
+ super
41
+ base.attribute_group.merge!(self.attribute_group)
35
42
  end
36
43
 
37
44
  end
@@ -0,0 +1,20 @@
1
+ require 'delegate'
2
+
3
+ module Virtus
4
+ module Group
5
+
6
+ class AttributeGroups
7
+
8
+ def for_class(clazz)
9
+ mapping[clazz] ||= {}
10
+ end
11
+
12
+ def mapping
13
+ @mapping ||= {}
14
+ end
15
+
16
+ end
17
+
18
+ end
19
+ end
20
+
@@ -1,5 +1,5 @@
1
1
  module Virtus
2
2
  module Group
3
- VERSION = "0.1"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -0,0 +1,21 @@
1
+ require "spec_helper"
2
+
3
+ describe Virtus::Group::AttributeGroups do
4
+
5
+ describe "#for_class" do
6
+ subject { described_class.new }
7
+
8
+ it "should return an empty hash" do
9
+ expect(subject.for_class(described_class)).to eq Hash.new
10
+ end
11
+ end
12
+
13
+ describe "#mapping" do
14
+ subject { described_class.new }
15
+
16
+ it "should return an empty hash" do
17
+ expect(subject.for_class(described_class)).to eq Hash.new
18
+ end
19
+ end
20
+
21
+ end
data/virtus-group.gemspec CHANGED
@@ -17,7 +17,6 @@ Gem::Specification.new do |spec|
17
17
  spec.require_paths = ["lib"]
18
18
 
19
19
  spec.add_dependency "virtus", ">= 1.0.0"
20
- spec.add_dependency "activesupport", ">= 3.0.0"
21
20
 
22
21
  spec.add_development_dependency "bundler", "~> 1.5"
23
22
  spec.add_development_dependency "rake", "~> 10.1"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: virtus-group
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Spas Poptchev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-23 00:00:00.000000000 Z
11
+ date: 2014-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ! '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.0.0
27
- - !ruby/object:Gem::Dependency
28
- name: activesupport
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ! '>='
32
- - !ruby/object:Gem::Version
33
- version: 3.0.0
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ! '>='
39
- - !ruby/object:Gem::Version
40
- version: 3.0.0
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: bundler
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -82,10 +68,12 @@ files:
82
68
  - README.md
83
69
  - Rakefile
84
70
  - lib/virtus/group.rb
71
+ - lib/virtus/group/attribute_groups.rb
85
72
  - lib/virtus/group/attribute_tracker.rb
86
73
  - lib/virtus/group/version.rb
87
74
  - spec/integration/virtus_group_integration_spec.rb
88
75
  - spec/spec_helper.rb
76
+ - spec/unit/group/attribute_groups_spec.rb
89
77
  - spec/unit/group/attribute_tracker_spec.rb
90
78
  - spec/unit/virtus_group_spec.rb
91
79
  - virtus-group.gemspec
@@ -116,5 +104,6 @@ summary: Define groups over virtus attributes.
116
104
  test_files:
117
105
  - spec/integration/virtus_group_integration_spec.rb
118
106
  - spec/spec_helper.rb
107
+ - spec/unit/group/attribute_groups_spec.rb
119
108
  - spec/unit/group/attribute_tracker_spec.rb
120
109
  - spec/unit/virtus_group_spec.rb