validates_serialized 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OTc4ZmQ5ZGFhNDlmOGEwZGI0NzI1NzA1NWQ0OTZmY2UyMTdlN2MxNA==
4
+ NjA0YjdlMjFkNjMxMzZhNTRmYzMyYjVkMmNmYWJkYmM0NzA4OGJjOA==
5
5
  data.tar.gz: !binary |-
6
- Y2VlNTQ5NjViNzExZmZlZGFkNDMwNzAyZjExNjkyYTM1OTVmYWFjMw==
6
+ NTI3ZDY0ZWQ5ZWVkMTM0ZjVlYzc4MGU2ZTFjNWYxMmY3MWJlNWIzOA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ODM1ODIzYmIzYjIyZTVhOWU0NjJjMjkxODI0MGUxMjdmZWM2MWYzOWIyYzBl
10
- NmZhOThlN2VjZWRiNjJlMDBjYWIzYzAyMDI0MzE2ZDgwZWUwMDRkMTkxMTQw
11
- MmQzYzZmMDlmZWQ0NjIyMTBlNDhhNWQyYWUwNjkzMjZiMzM2NmI=
9
+ Y2U3N2VhNjIyMjc4YWYyMWUyYWNhOWFjNzk1OGVhNjY3YTY0YWUzNTI4OGRj
10
+ N2RlOTA0YmNhNWVjOWI4MDA0Mjg4NzdiZGE5YjQ1OGM4OTkzNzJlZjVjNmQ5
11
+ MWRmYTY3MWVmZWE0Y2NkNzU0YjJiMzI2N2QyNjdlNzFmODYwNDg=
12
12
  data.tar.gz: !binary |-
13
- ZmY2ZGJkMzc0MGFkOTJlYjFiMmUwNTZmNzkxMGJlM2ZjMjZhYzY0NWU0MTAw
14
- Y2JjMmIyYWM0MDUyNDkzNjdmMzI2YTYwYTM2ZWIyNmNlNGNkNzkxZTBjZTY1
15
- ZWYzZTY5NTY5ZjFkY2E5YmUwMGM0OTU2ODFhMmI4ZjYzZDk2Mzc=
13
+ NThmNmUwODllOGQxYjhhZGQ0ZTZkMmM2NTc3MjM4ODE0MDJhOTYwZmEyM2M5
14
+ YWNlMzk0ZTk1NGE5N2ZjOGI1NTMwMTFiZWM0YWQ3YWJmMjM3ZDZkNjhlYjc2
15
+ MzNhOGZhYWZiYWM1NjRlNGNiMWUyYTRjYzhlYmFmZGM5ODQ0ZGM=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- validates_serialized (0.0.2)
4
+ validates_serialized (0.0.3)
5
5
  activemodel (>= 3.0, < 5.0)
6
6
 
7
7
  GEM
@@ -10,4 +10,8 @@ class ValidateableArrayValue
10
10
  def value
11
11
  @value
12
12
  end
13
+
14
+ def method_missing(sym, *args, &block)
15
+ @value.send sym, *args, &block
16
+ end
13
17
  end
@@ -1,3 +1,3 @@
1
1
  module ValidatesSerialized
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -37,6 +37,14 @@ class Blog
37
37
  @ratings = val
38
38
  end
39
39
 
40
+ def tags
41
+ @tags
42
+ end
43
+
44
+ def tags=(val)
45
+ @tags = val
46
+ end
47
+
40
48
  def comments
41
49
  @comments
42
50
  end
@@ -45,13 +53,33 @@ class Blog
45
53
  @comments = val
46
54
  end
47
55
 
56
+ def metadata
57
+ @metadata
58
+ end
59
+
60
+ def metadata=(val)
61
+ @metadata = val
62
+ end
63
+
48
64
  validates_serialized :author do
49
65
  validates :name, presence: true
50
66
  end
67
+
51
68
  validates_array_values :ratings, inclusion: { in: [1, 2, 3] }
69
+
70
+ validates_each_in_array :tags, if: :tags do
71
+ validates :value, length: { in: 4..20 }
72
+ end
73
+
52
74
  validates_hash_keys :comments, allow_blank: true do
53
75
  validates :admin, presence: true
54
76
  end
77
+
78
+ validates_each_in_array :metadata, if: :metadata do
79
+ validates_hash_keys :value do
80
+ validates :timestamp, presence: true
81
+ end
82
+ end
55
83
  end
56
84
 
57
85
  describe ValidatesSerialized do
@@ -65,6 +93,16 @@ describe ValidatesSerialized do
65
93
  model.should be_valid
66
94
  end
67
95
 
96
+ it "is valid with valid tags" do
97
+ model = Blog.new(ratings: [1, 3], author: Author.new(name: "Tom"), comments: { admin: "This is great!" }, tags: ["sweet", "awesome"])
98
+ model.should be_valid
99
+ end
100
+
101
+ it "is valid with valid metadata" do
102
+ model = Blog.new(ratings: [1, 3], author: Author.new(name: "Tom"), comments: { admin: "This is great!" }, metadata: [{timestamp: Time.new(2014, 1, 2)}, {timestamp: Time.new(2014, 2, 2)}])
103
+ model.should be_valid
104
+ end
105
+
68
106
  it "raises error without Serialized author" do
69
107
  model = Blog.new(ratings: [1, 3, 1], comments: { admin: "This is great!" })
70
108
  expect { model.valid? }.to raise_error
@@ -92,4 +130,10 @@ describe ValidatesSerialized do
92
130
  model.should_not be_valid
93
131
  model.errors[:ratings].should eq(["is not included in the list"])
94
132
  end
133
+
134
+ it "is invalid with invalid tags" do
135
+ model = Blog.new(ratings: [1, 3], author: Author.new(name: "Tom"), comments: { admin: "This is great!" }, tags: ["sweet", "awesome", "i"])
136
+ model.should_not be_valid
137
+ model.errors[:tags].should eq(["tags has a value that is too short (minimum is 4 characters)"])
138
+ end
95
139
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validates_serialized
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - brycesenz