virtus-group 0.1 → 0.2.0

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,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