has_serialized-matchers 0.0.1 → 0.1.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,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1d2356708d427263dba8c2aa6cf4eaae3a6620f
|
4
|
+
data.tar.gz: 86eaba14d909b57dd225d30a743cb6d2767df0be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d0f9e988d1a0f87f16ca01ea4b8f643fc5abd43e08ee063c8d1f9df6660a4a90585fbb0d9db2abcf44d2a7773e88b42c0927bea1709dc02f82e41652eaf06b5
|
7
|
+
data.tar.gz: a2bd7c667739f9d845aec5717f98cc44cbebe9e7b8873ffdfc15753e69084429bba20890bcc3c1c36bfc1534c452680e97c9cf4083626e4c9e369d69463f12fa
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -18,7 +18,7 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
it { should have_serialized_attribute(:serialized_attr).in(:serialized_attributes_list) }
|
21
|
+
it { should have_serialized_attribute(:serialized_attr).in(:serialized_attributes_list).with_default_value(value) }
|
22
22
|
|
23
23
|
## Contributing
|
24
24
|
|
@@ -7,7 +7,7 @@ module HasSerialized
|
|
7
7
|
|
8
8
|
def matches?(model)
|
9
9
|
@model = model
|
10
|
-
|
10
|
+
methods_correct? && values_correct?
|
11
11
|
end
|
12
12
|
|
13
13
|
def in(column)
|
@@ -15,8 +15,22 @@ module HasSerialized
|
|
15
15
|
self
|
16
16
|
end
|
17
17
|
|
18
|
+
def with_default_value(value)
|
19
|
+
@value = value
|
20
|
+
self
|
21
|
+
end
|
22
|
+
|
18
23
|
def failure_message
|
19
|
-
|
24
|
+
base_message = %Q{expected #{@model.class.name} to
|
25
|
+
have serialized attribute #{@attr_name}
|
26
|
+
in #{@column}
|
27
|
+
}
|
28
|
+
|
29
|
+
if @value.to_s
|
30
|
+
base_message += "with default value #{@value}"
|
31
|
+
end
|
32
|
+
|
33
|
+
base_message
|
20
34
|
end
|
21
35
|
|
22
36
|
def description
|
@@ -25,14 +39,24 @@ module HasSerialized
|
|
25
39
|
|
26
40
|
private
|
27
41
|
|
28
|
-
def
|
42
|
+
def methods_correct?
|
29
43
|
unless @column
|
30
44
|
fail %Q{
|
31
45
|
Please specify the column in which to find the `#{@attr_name}`.
|
32
46
|
Ex: have_serialized_attribute(:#{@attr_name}).in(:column_name)
|
33
47
|
}
|
34
48
|
end
|
35
|
-
|
49
|
+
|
50
|
+
serialized_column = @model.send(@column)
|
51
|
+
serialized_column and serialized_column.has_key? @attr_name
|
52
|
+
end
|
53
|
+
|
54
|
+
def values_correct?
|
55
|
+
if @value
|
56
|
+
@model.send(@attr_name) == @value
|
57
|
+
else
|
58
|
+
true
|
59
|
+
end
|
36
60
|
end
|
37
61
|
end
|
38
62
|
end
|
@@ -25,7 +25,7 @@ module HasSerialized
|
|
25
25
|
context 'matchers' do
|
26
26
|
subject{ Serializeable.new }
|
27
27
|
|
28
|
-
it { should have_serialized_attribute(:serial_attr).in(:serial_attrs) }
|
28
|
+
it { should have_serialized_attribute(:serial_attr).in(:serial_attrs).with_default_value('dummy') }
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_serialized-matchers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cecille Manalang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: has_serialized
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.1'
|
27
27
|
description: RSpec matchers for `has_serialized`
|
@@ -31,7 +31,8 @@ executables: []
|
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
|
-
-
|
34
|
+
- .gitignore
|
35
|
+
- CHANGELOG.md
|
35
36
|
- Gemfile
|
36
37
|
- LICENSE.txt
|
37
38
|
- README.md
|
@@ -54,17 +55,17 @@ require_paths:
|
|
54
55
|
- lib
|
55
56
|
required_ruby_version: !ruby/object:Gem::Requirement
|
56
57
|
requirements:
|
57
|
-
- -
|
58
|
+
- - '>='
|
58
59
|
- !ruby/object:Gem::Version
|
59
60
|
version: '0'
|
60
61
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
62
|
requirements:
|
62
|
-
- -
|
63
|
+
- - '>='
|
63
64
|
- !ruby/object:Gem::Version
|
64
65
|
version: '0'
|
65
66
|
requirements: []
|
66
67
|
rubyforge_project:
|
67
|
-
rubygems_version: 2.
|
68
|
+
rubygems_version: 2.0.3
|
68
69
|
signing_key:
|
69
70
|
specification_version: 4
|
70
71
|
summary: RSpec matchers for `has_serialized`
|