attrio 0.3.0 → 0.4.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.
- data/lib/attrio.rb +16 -10
- data/lib/attrio/attribute.rb +8 -8
- data/lib/attrio/attributes_parser.rb +23 -8
- data/lib/attrio/builders/writer_builder.rb +19 -10
- data/lib/attrio/default_value.rb +2 -2
- data/lib/attrio/default_value/base.rb +5 -5
- data/lib/attrio/version.rb +1 -1
- data/spec/{attrio/embed_value_spec.rb → integration/embedded_value_spec.rb} +0 -0
- data/spec/integration/inheritance_spec.rb +64 -0
- data/spec/{attrio → unit}/attrio_spec.rb +1 -0
- data/spec/{attrio → unit}/default_value/callable_spec.rb +1 -1
- data/spec/{attrio → unit}/default_value/clonable_spec.rb +1 -1
- data/spec/{attrio → unit}/default_value/handle_spec.rb +1 -1
- data/spec/{attrio → unit}/default_value/symbol_spec.rb +0 -0
- data/spec/{attrio → unit}/default_value/value_spec.rb +0 -0
- data/spec/{attrio → unit}/inspect_spec.rb +0 -0
- data/spec/{attrio → unit}/reset_spec.rb +0 -0
- data/spec/{attrio → unit}/type_spec.rb +3 -3
- data/spec/{attrio → unit}/types/boolean_spec.rb +0 -0
- data/spec/{attrio → unit}/types/date_spec.rb +0 -0
- data/spec/{attrio → unit}/types/date_time_spec.rb +0 -0
- data/spec/{attrio → unit}/types/float_spec.rb +0 -0
- data/spec/{attrio → unit}/types/integer_spec.rb +0 -0
- data/spec/{attrio → unit}/types/symbol_spec.rb +0 -0
- data/spec/{attrio → unit}/types/time_spec.rb +0 -0
- metadata +53 -81
data/lib/attrio.rb
CHANGED
|
@@ -23,16 +23,22 @@ module Attrio
|
|
|
23
23
|
module ClassMethods
|
|
24
24
|
def define_attributes(options = {}, &block)
|
|
25
25
|
options[:as] ||= :attributes
|
|
26
|
-
|
|
27
|
-
class_eval(<<-EOS, __FILE__, __LINE__ + 1)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
attributes =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
26
|
+
|
|
27
|
+
class_eval(<<-EOS, __FILE__, __LINE__ + 1)
|
|
28
|
+
@#{options[:as]} ||= {}
|
|
29
|
+
|
|
30
|
+
class << self
|
|
31
|
+
def #{options[:as]}(attributes = [])
|
|
32
|
+
attributes = Helpers.to_a(attributes).flatten
|
|
33
|
+
return @#{options[:as]} if attributes.empty?
|
|
34
|
+
|
|
35
|
+
attributes = @#{options[:as]}.keys & attributes
|
|
36
|
+
@#{options[:as]}.select{ |k,v| attributes.include?(k) }
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def inherited(subclass)
|
|
40
|
+
subclass.instance_variable_set("@#{options[:as]}", instance_variable_get("@#{options[:as]}").dup)
|
|
41
|
+
end
|
|
36
42
|
end
|
|
37
43
|
|
|
38
44
|
def #{options[:as]}(attributes = [])
|
data/lib/attrio/attribute.rb
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
module Attrio
|
|
4
4
|
class Attribute
|
|
5
|
-
attr_reader :
|
|
5
|
+
attr_reader :name, :type, :options
|
|
6
6
|
|
|
7
|
-
def initialize(
|
|
8
|
-
@
|
|
7
|
+
def initialize(name, type, options)
|
|
8
|
+
@name = name; @type = type; @options = Helpers.symbolize_hash_keys(options)
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def reader_method_name
|
|
@@ -30,13 +30,13 @@ module Attrio
|
|
|
30
30
|
|
|
31
31
|
def default_value
|
|
32
32
|
if !defined?(@default_value)
|
|
33
|
-
@default_value = Attrio::DefaultValue.new(self.
|
|
33
|
+
@default_value = Attrio::DefaultValue.new(self.name, self.options[:default])
|
|
34
34
|
end
|
|
35
35
|
@default_value
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
def define_writer
|
|
39
|
-
Attrio::Builders::WriterBuilder.define(
|
|
38
|
+
def define_writer(klass)
|
|
39
|
+
Attrio::Builders::WriterBuilder.define(klass, self.type,
|
|
40
40
|
self.options.merge({
|
|
41
41
|
:method_name => self.writer_method_name,
|
|
42
42
|
:method_visibility => self.writer_visibility,
|
|
@@ -46,8 +46,8 @@ module Attrio
|
|
|
46
46
|
self
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
-
def define_reader
|
|
50
|
-
Attrio::Builders::ReaderBuilder.define(
|
|
49
|
+
def define_reader(klass)
|
|
50
|
+
Attrio::Builders::ReaderBuilder.define(klass, self.type,
|
|
51
51
|
self.options.merge({
|
|
52
52
|
:method_name => self.reader_method_name,
|
|
53
53
|
:method_visibility => self.reader_visibility,
|
|
@@ -4,8 +4,8 @@ module Attrio
|
|
|
4
4
|
class AttributesParser
|
|
5
5
|
attr_reader :klass, :options
|
|
6
6
|
|
|
7
|
-
def initialize(
|
|
8
|
-
@
|
|
7
|
+
def initialize(klass, options, &block)
|
|
8
|
+
@klass = klass
|
|
9
9
|
@options = options
|
|
10
10
|
|
|
11
11
|
raise ArgumentError.new('Missing options[:as] value' ) if @options[:as].blank?
|
|
@@ -14,16 +14,18 @@ module Attrio
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def attr(*args)
|
|
17
|
-
attribute_options = (args.last.kind_of?(Hash) ? args.pop : Hash.new)
|
|
18
17
|
attribute_name = args[0].to_s
|
|
18
|
+
attribute_options = (args.last.kind_of?(Hash) ? args.pop : Hash.new)
|
|
19
|
+
attribute_type = self.fetch_type(attribute_options.delete(:type) || args[1])
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
self.class.const_missing(attribute_options.delete(:type).to_s || args[1].to_s) if type.blank?
|
|
22
|
-
|
|
23
|
-
attribute = Attrio::Attribute.new(@object, attribute_name, type, attribute_options).define_writer.define_reader
|
|
21
|
+
attribute = self.create_attribute(attribute_name, attribute_type, attribute_options)
|
|
24
22
|
self.add_attribute(attribute_name, attribute)
|
|
23
|
+
|
|
24
|
+
self
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
+
alias_method :attribute, :attr
|
|
28
|
+
|
|
27
29
|
def self.cast_type(constant)
|
|
28
30
|
return constant if constant.is_a?(Class) && !!(constant < Attrio::Types::Base)
|
|
29
31
|
|
|
@@ -49,8 +51,21 @@ module Attrio
|
|
|
49
51
|
self.options[:as]
|
|
50
52
|
end
|
|
51
53
|
|
|
54
|
+
def fetch_type(name)
|
|
55
|
+
return if name.nil?
|
|
56
|
+
|
|
57
|
+
type = self.class.cast_type(name)
|
|
58
|
+
self.class.const_missing(name.to_s) if type.blank?
|
|
59
|
+
|
|
60
|
+
type
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def create_attribute(name, type, options)
|
|
64
|
+
Attrio::Attribute.new(name, type, options).define_writer(self.klass).define_reader(self.klass)
|
|
65
|
+
end
|
|
66
|
+
|
|
52
67
|
def add_attribute(name, attribute)
|
|
53
|
-
@
|
|
68
|
+
@klass.send(self.as)[name.to_sym] = attribute
|
|
54
69
|
end
|
|
55
70
|
end
|
|
56
71
|
end
|
|
@@ -11,21 +11,30 @@ module Attrio
|
|
|
11
11
|
|
|
12
12
|
def self.define_accessor(klass, type, options)
|
|
13
13
|
unless klass.method_defined?(options[:method_name])
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
else
|
|
19
|
-
type.new(value)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
self.instance_variable_set(options[:instance_variable_name], value)
|
|
14
|
+
if type.present?
|
|
15
|
+
self.define_typecasted_method(klass, type, options)
|
|
16
|
+
else
|
|
17
|
+
klass.send :attr_writer, options[:method_name].chop
|
|
24
18
|
end
|
|
25
19
|
|
|
26
20
|
klass.send options[:method_visibility], options[:method_name]
|
|
27
21
|
end
|
|
28
22
|
end
|
|
23
|
+
|
|
24
|
+
def self.define_typecasted_method(klass, type, options)
|
|
25
|
+
klass.send :define_method, options[:method_name] do |value|
|
|
26
|
+
if !value.nil?
|
|
27
|
+
value = if type.respond_to?(:typecast) && type.respond_to?(:typecasted?)
|
|
28
|
+
type.typecasted?(value) ? value : type.typecast(*[value, options])
|
|
29
|
+
else
|
|
30
|
+
type.new(value)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
self.instance_variable_set(options[:instance_variable_name], value)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
29
37
|
end
|
|
38
|
+
|
|
30
39
|
end
|
|
31
40
|
end
|
data/lib/attrio/default_value.rb
CHANGED
|
@@ -8,8 +8,8 @@ module Attrio
|
|
|
8
8
|
autoload :Symbol, 'attrio/default_value/symbol'
|
|
9
9
|
|
|
10
10
|
class << self
|
|
11
|
-
def new(
|
|
12
|
-
Attrio::DefaultValue::Base.handle(
|
|
11
|
+
def new(attribute, value)
|
|
12
|
+
Attrio::DefaultValue::Base.handle(attribute, value) || value
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
end
|
|
@@ -3,20 +3,20 @@
|
|
|
3
3
|
module Attrio
|
|
4
4
|
module DefaultValue
|
|
5
5
|
class Base
|
|
6
|
-
attr_reader :
|
|
6
|
+
attr_reader :attribute, :value
|
|
7
7
|
|
|
8
|
-
def self.handle(
|
|
8
|
+
def self.handle(attribute, value)
|
|
9
9
|
handler = [
|
|
10
10
|
Attrio::DefaultValue::Callable,
|
|
11
11
|
Attrio::DefaultValue::Clonable,
|
|
12
12
|
Attrio::DefaultValue::Symbol
|
|
13
13
|
].detect{ |handler| handler.handle?(value) }
|
|
14
14
|
|
|
15
|
-
handler.new(
|
|
15
|
+
handler.new(attribute, value) if handler.present?
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
def initialize(
|
|
19
|
-
@
|
|
18
|
+
def initialize(attribute, value)
|
|
19
|
+
@attribute = attribute; @value = value;
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
# Evaluates the value
|
data/lib/attrio/version.rb
CHANGED
|
File without changes
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'Attributes inheritance' do
|
|
4
|
+
before(:all) do
|
|
5
|
+
class Parent
|
|
6
|
+
include Attrio
|
|
7
|
+
|
|
8
|
+
define_attributes do
|
|
9
|
+
attr :email, String
|
|
10
|
+
attr :name, String
|
|
11
|
+
attr :created_at, DateTime, :default => proc{ Time.now }
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class ChildWithoutAttributes < Parent
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class ChildWithNewAttributes < Parent
|
|
19
|
+
define_attributes do
|
|
20
|
+
attr :age, Integer
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
class ChildWithOverridenAttributes < Parent
|
|
25
|
+
define_attributes do
|
|
26
|
+
attr :name, Symbol
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
context 'Classes should inherit attributes' do
|
|
32
|
+
context "without attributes" do
|
|
33
|
+
subject { ChildWithoutAttributes.attributes }
|
|
34
|
+
|
|
35
|
+
it "should equal to parent's attributes" do
|
|
36
|
+
should == Parent.attributes
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
context "with new attributes" do
|
|
41
|
+
subject { ChildWithNewAttributes.attributes }
|
|
42
|
+
|
|
43
|
+
it "should include parent's attributes" do
|
|
44
|
+
should include(Parent.attributes)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
context "with overriden attributes" do
|
|
49
|
+
subject { ChildWithOverridenAttributes.attributes }
|
|
50
|
+
|
|
51
|
+
it "should include not overriden attributes" do
|
|
52
|
+
should include(Parent.attributes.reject { |k| k == :name })
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "should include overriden attributes" do
|
|
56
|
+
should include(:name)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it "should include overriden attributes with corect options" do
|
|
60
|
+
subject[:name].type.should == Attrio::Types::Symbol
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
describe Attrio::DefaultValue::Base, '.handle' do
|
|
4
|
-
subject { described_class.handle(mock('
|
|
4
|
+
subject { described_class.handle(mock('attribute'), default) }
|
|
5
5
|
|
|
6
6
|
context 'when default is a symbol' do
|
|
7
7
|
let(:default) { :symbol }
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -7,11 +7,11 @@ describe Attrio::Types::Base do
|
|
|
7
7
|
|
|
8
8
|
define_attributes do
|
|
9
9
|
attr :type_as_constant, Integer
|
|
10
|
-
attr :type_in_options_as_constant, Integer
|
|
10
|
+
attr :type_in_options_as_constant, :type => Integer
|
|
11
11
|
attr :type_as_string, 'integer'
|
|
12
|
-
attr :type_in_options_as_string, 'integer'
|
|
12
|
+
attr :type_in_options_as_string, :type => 'integer'
|
|
13
13
|
attr :type_as_symbol, :integer
|
|
14
|
-
attr :type_in_options_as_symbol, :integer
|
|
14
|
+
attr :type_in_options_as_symbol, :type => :integer
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: attrio
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -10,11 +10,11 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2013-06-
|
|
13
|
+
date: 2013-06-24 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: rspec
|
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
requirement: &70339309557080 !ruby/object:Gem::Requirement
|
|
18
18
|
none: false
|
|
19
19
|
requirements:
|
|
20
20
|
- - ! '>='
|
|
@@ -22,15 +22,10 @@ dependencies:
|
|
|
22
22
|
version: '0'
|
|
23
23
|
type: :development
|
|
24
24
|
prerelease: false
|
|
25
|
-
version_requirements:
|
|
26
|
-
none: false
|
|
27
|
-
requirements:
|
|
28
|
-
- - ! '>='
|
|
29
|
-
- !ruby/object:Gem::Version
|
|
30
|
-
version: '0'
|
|
25
|
+
version_requirements: *70339309557080
|
|
31
26
|
- !ruby/object:Gem::Dependency
|
|
32
27
|
name: webmock
|
|
33
|
-
requirement: !ruby/object:Gem::Requirement
|
|
28
|
+
requirement: &70339309556540 !ruby/object:Gem::Requirement
|
|
34
29
|
none: false
|
|
35
30
|
requirements:
|
|
36
31
|
- - ~>
|
|
@@ -38,15 +33,10 @@ dependencies:
|
|
|
38
33
|
version: 1.9.0
|
|
39
34
|
type: :development
|
|
40
35
|
prerelease: false
|
|
41
|
-
version_requirements:
|
|
42
|
-
none: false
|
|
43
|
-
requirements:
|
|
44
|
-
- - ~>
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: 1.9.0
|
|
36
|
+
version_requirements: *70339309556540
|
|
47
37
|
- !ruby/object:Gem::Dependency
|
|
48
38
|
name: simplecov
|
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
|
39
|
+
requirement: &70339309572460 !ruby/object:Gem::Requirement
|
|
50
40
|
none: false
|
|
51
41
|
requirements:
|
|
52
42
|
- - ! '>='
|
|
@@ -54,15 +44,10 @@ dependencies:
|
|
|
54
44
|
version: '0'
|
|
55
45
|
type: :development
|
|
56
46
|
prerelease: false
|
|
57
|
-
version_requirements:
|
|
58
|
-
none: false
|
|
59
|
-
requirements:
|
|
60
|
-
- - ! '>='
|
|
61
|
-
- !ruby/object:Gem::Version
|
|
62
|
-
version: '0'
|
|
47
|
+
version_requirements: *70339309572460
|
|
63
48
|
- !ruby/object:Gem::Dependency
|
|
64
49
|
name: coveralls
|
|
65
|
-
requirement: !ruby/object:Gem::Requirement
|
|
50
|
+
requirement: &70339309572000 !ruby/object:Gem::Requirement
|
|
66
51
|
none: false
|
|
67
52
|
requirements:
|
|
68
53
|
- - ! '>='
|
|
@@ -70,15 +55,10 @@ dependencies:
|
|
|
70
55
|
version: '0'
|
|
71
56
|
type: :development
|
|
72
57
|
prerelease: false
|
|
73
|
-
version_requirements:
|
|
74
|
-
none: false
|
|
75
|
-
requirements:
|
|
76
|
-
- - ! '>='
|
|
77
|
-
- !ruby/object:Gem::Version
|
|
78
|
-
version: '0'
|
|
58
|
+
version_requirements: *70339309572000
|
|
79
59
|
- !ruby/object:Gem::Dependency
|
|
80
60
|
name: rake
|
|
81
|
-
requirement: !ruby/object:Gem::Requirement
|
|
61
|
+
requirement: &70339309571560 !ruby/object:Gem::Requirement
|
|
82
62
|
none: false
|
|
83
63
|
requirements:
|
|
84
64
|
- - ! '>='
|
|
@@ -86,15 +66,10 @@ dependencies:
|
|
|
86
66
|
version: '0'
|
|
87
67
|
type: :development
|
|
88
68
|
prerelease: false
|
|
89
|
-
version_requirements:
|
|
90
|
-
none: false
|
|
91
|
-
requirements:
|
|
92
|
-
- - ! '>='
|
|
93
|
-
- !ruby/object:Gem::Version
|
|
94
|
-
version: '0'
|
|
69
|
+
version_requirements: *70339309571560
|
|
95
70
|
- !ruby/object:Gem::Dependency
|
|
96
71
|
name: bundler
|
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirement: &70339309571120 !ruby/object:Gem::Requirement
|
|
98
73
|
none: false
|
|
99
74
|
requirements:
|
|
100
75
|
- - ! '>='
|
|
@@ -102,12 +77,7 @@ dependencies:
|
|
|
102
77
|
version: '0'
|
|
103
78
|
type: :development
|
|
104
79
|
prerelease: false
|
|
105
|
-
version_requirements:
|
|
106
|
-
none: false
|
|
107
|
-
requirements:
|
|
108
|
-
- - ! '>='
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: '0'
|
|
80
|
+
version_requirements: *70339309571120
|
|
111
81
|
description:
|
|
112
82
|
email: hello@jetrockets.ru
|
|
113
83
|
executables: []
|
|
@@ -148,24 +118,25 @@ files:
|
|
|
148
118
|
- lib/attrio/types/symbol.rb
|
|
149
119
|
- lib/attrio/types/time.rb
|
|
150
120
|
- lib/attrio/version.rb
|
|
151
|
-
- spec/
|
|
152
|
-
- spec/
|
|
153
|
-
- spec/attrio/default_value/clonable_spec.rb
|
|
154
|
-
- spec/attrio/default_value/handle_spec.rb
|
|
155
|
-
- spec/attrio/default_value/symbol_spec.rb
|
|
156
|
-
- spec/attrio/default_value/value_spec.rb
|
|
157
|
-
- spec/attrio/embed_value_spec.rb
|
|
158
|
-
- spec/attrio/inspect_spec.rb
|
|
159
|
-
- spec/attrio/reset_spec.rb
|
|
160
|
-
- spec/attrio/type_spec.rb
|
|
161
|
-
- spec/attrio/types/boolean_spec.rb
|
|
162
|
-
- spec/attrio/types/date_spec.rb
|
|
163
|
-
- spec/attrio/types/date_time_spec.rb
|
|
164
|
-
- spec/attrio/types/float_spec.rb
|
|
165
|
-
- spec/attrio/types/integer_spec.rb
|
|
166
|
-
- spec/attrio/types/symbol_spec.rb
|
|
167
|
-
- spec/attrio/types/time_spec.rb
|
|
121
|
+
- spec/integration/embedded_value_spec.rb
|
|
122
|
+
- spec/integration/inheritance_spec.rb
|
|
168
123
|
- spec/spec_helper.rb
|
|
124
|
+
- spec/unit/attrio_spec.rb
|
|
125
|
+
- spec/unit/default_value/callable_spec.rb
|
|
126
|
+
- spec/unit/default_value/clonable_spec.rb
|
|
127
|
+
- spec/unit/default_value/handle_spec.rb
|
|
128
|
+
- spec/unit/default_value/symbol_spec.rb
|
|
129
|
+
- spec/unit/default_value/value_spec.rb
|
|
130
|
+
- spec/unit/inspect_spec.rb
|
|
131
|
+
- spec/unit/reset_spec.rb
|
|
132
|
+
- spec/unit/type_spec.rb
|
|
133
|
+
- spec/unit/types/boolean_spec.rb
|
|
134
|
+
- spec/unit/types/date_spec.rb
|
|
135
|
+
- spec/unit/types/date_time_spec.rb
|
|
136
|
+
- spec/unit/types/float_spec.rb
|
|
137
|
+
- spec/unit/types/integer_spec.rb
|
|
138
|
+
- spec/unit/types/symbol_spec.rb
|
|
139
|
+
- spec/unit/types/time_spec.rb
|
|
169
140
|
homepage: https://github.com/jetrockets/attrio
|
|
170
141
|
licenses: []
|
|
171
142
|
post_install_message:
|
|
@@ -180,7 +151,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
180
151
|
version: '0'
|
|
181
152
|
segments:
|
|
182
153
|
- 0
|
|
183
|
-
hash:
|
|
154
|
+
hash: 2234961798158657284
|
|
184
155
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
156
|
none: false
|
|
186
157
|
requirements:
|
|
@@ -189,30 +160,31 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
189
160
|
version: '0'
|
|
190
161
|
segments:
|
|
191
162
|
- 0
|
|
192
|
-
hash:
|
|
163
|
+
hash: 2234961798158657284
|
|
193
164
|
requirements: []
|
|
194
165
|
rubyforge_project:
|
|
195
|
-
rubygems_version: 1.8.
|
|
166
|
+
rubygems_version: 1.8.15
|
|
196
167
|
signing_key:
|
|
197
168
|
specification_version: 3
|
|
198
169
|
summary: Attributes for plain old Ruby objects. No dependencies, only simplicity and
|
|
199
170
|
clearness.
|
|
200
171
|
test_files:
|
|
201
|
-
- spec/
|
|
202
|
-
- spec/
|
|
203
|
-
- spec/attrio/default_value/clonable_spec.rb
|
|
204
|
-
- spec/attrio/default_value/handle_spec.rb
|
|
205
|
-
- spec/attrio/default_value/symbol_spec.rb
|
|
206
|
-
- spec/attrio/default_value/value_spec.rb
|
|
207
|
-
- spec/attrio/embed_value_spec.rb
|
|
208
|
-
- spec/attrio/inspect_spec.rb
|
|
209
|
-
- spec/attrio/reset_spec.rb
|
|
210
|
-
- spec/attrio/type_spec.rb
|
|
211
|
-
- spec/attrio/types/boolean_spec.rb
|
|
212
|
-
- spec/attrio/types/date_spec.rb
|
|
213
|
-
- spec/attrio/types/date_time_spec.rb
|
|
214
|
-
- spec/attrio/types/float_spec.rb
|
|
215
|
-
- spec/attrio/types/integer_spec.rb
|
|
216
|
-
- spec/attrio/types/symbol_spec.rb
|
|
217
|
-
- spec/attrio/types/time_spec.rb
|
|
172
|
+
- spec/integration/embedded_value_spec.rb
|
|
173
|
+
- spec/integration/inheritance_spec.rb
|
|
218
174
|
- spec/spec_helper.rb
|
|
175
|
+
- spec/unit/attrio_spec.rb
|
|
176
|
+
- spec/unit/default_value/callable_spec.rb
|
|
177
|
+
- spec/unit/default_value/clonable_spec.rb
|
|
178
|
+
- spec/unit/default_value/handle_spec.rb
|
|
179
|
+
- spec/unit/default_value/symbol_spec.rb
|
|
180
|
+
- spec/unit/default_value/value_spec.rb
|
|
181
|
+
- spec/unit/inspect_spec.rb
|
|
182
|
+
- spec/unit/reset_spec.rb
|
|
183
|
+
- spec/unit/type_spec.rb
|
|
184
|
+
- spec/unit/types/boolean_spec.rb
|
|
185
|
+
- spec/unit/types/date_spec.rb
|
|
186
|
+
- spec/unit/types/date_time_spec.rb
|
|
187
|
+
- spec/unit/types/float_spec.rb
|
|
188
|
+
- spec/unit/types/integer_spec.rb
|
|
189
|
+
- spec/unit/types/symbol_spec.rb
|
|
190
|
+
- spec/unit/types/time_spec.rb
|