attr_init 0.0.4 → 0.1.4
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 +4 -4
- data/attr_init.gemspec +2 -0
- data/lib/attr_init.rb +32 -4
- data/lib/attr_init/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef8d108988a16ffd604572acb9c10f303e911f3e
|
4
|
+
data.tar.gz: d8512a3ba4e4829b826342a1b8212c0146e872f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9bf67ee47b13fc67f180eb6d7d43a4837a8c802109e459c21b0eb64df71a889794045cf4d30ecbb5f5521833a9e333db877154563d09d8f85d3d4ecccc73f47e
|
7
|
+
data.tar.gz: 974af746b45de9f5583542d7e3efae0b5694bbc2853051b07dbcb7ef5fd7a11108c1387fcf072d5a74dedcce2874825a8fde23c40313d5e5ab5b8a399471020d
|
data/attr_init.gemspec
CHANGED
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
+
spec.add_dependency "fattr"
|
22
|
+
|
21
23
|
spec.add_development_dependency "simplecov", "~> 0.8.0"
|
22
24
|
spec.add_development_dependency "coveralls", "~> 0.7.0"
|
23
25
|
spec.add_development_dependency "bundler", "~> 1.6"
|
data/lib/attr_init.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require "attr_init/version"
|
2
|
+
require 'fattr'
|
3
|
+
require 'set'
|
2
4
|
|
3
5
|
def attr_init(*attrs)
|
4
6
|
AttrInit.add_new_attrs(self, attrs)
|
@@ -16,6 +18,32 @@ def attr_init(*attrs)
|
|
16
18
|
end
|
17
19
|
end
|
18
20
|
|
21
|
+
def fattr_init(*attrs)
|
22
|
+
class_eval do
|
23
|
+
def initialize(params)
|
24
|
+
fattr_init(params)
|
25
|
+
end
|
26
|
+
|
27
|
+
protected
|
28
|
+
|
29
|
+
def fattr_init(params)
|
30
|
+
params.each do |key, value|
|
31
|
+
send key, value
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def fattr_hash(*attrs)
|
38
|
+
class_eval do
|
39
|
+
def to_hash
|
40
|
+
self.class.fattrs.each_with_object({}) do |key, hash|
|
41
|
+
hash[key] = send key
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
19
47
|
def attr_hash(*attrs)
|
20
48
|
define_method(:to_h) do
|
21
49
|
AttrInit.get_attrs(self.class).each_with_object({}) do |attr, hash|
|
@@ -31,9 +59,9 @@ def reader_struct(*attrs)
|
|
31
59
|
end
|
32
60
|
|
33
61
|
def accessor_struct(*attrs)
|
34
|
-
|
35
|
-
|
36
|
-
|
62
|
+
fattrs *attrs
|
63
|
+
fattr_init *attrs
|
64
|
+
fattr_hash *attrs
|
37
65
|
end
|
38
66
|
|
39
67
|
module AttrInit
|
@@ -42,7 +70,7 @@ module AttrInit
|
|
42
70
|
hidden_attrs = get_attrs(scope.superclass)
|
43
71
|
scope.class_variable_set hidden_attrs_variable_name, hidden_attrs + attrs
|
44
72
|
rescue NameError => e
|
45
|
-
scope.class_variable_set hidden_attrs_variable_name, attrs
|
73
|
+
scope.class_variable_set hidden_attrs_variable_name, Set.new(attrs)
|
46
74
|
end
|
47
75
|
end
|
48
76
|
|
data/lib/attr_init/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: attr_init
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- johnmcconnell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: fattr
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: simplecov
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|