attr_init 0.0.4 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|