mvcli 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mvcli/erb.rb +9 -3
- data/lib/mvcli/validatable.rb +1 -2
- data/lib/mvcli/version.rb +1 -1
- data/spec/mvcli/erb_spec.rb +1 -1
- data/spec/mvcli/validatable_spec.rb +18 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88557c947ef7dda45f0e854d7c56806e979e75f5
|
4
|
+
data.tar.gz: 357ee1d5fd303402b6e538e69f245638b82b1621
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c77eeab72a1f9e1dca58b8910b7dd1dee562b4e412e512911b265cdcb059f8d51fe66d2d9077155d3765f858a295c7e4b1b5f2d583d2f69e4d1d579f5fa776a1
|
7
|
+
data.tar.gz: 13187537df716ae571c93eb1df4a9b8b3faf4d71820fd3f9672ccbff5e223ff069c1680fc3d456136fc9c79e1f7e3409387b7816dec342ce1eab50bcc6ea7ded
|
data/lib/mvcli/erb.rb
CHANGED
@@ -15,19 +15,25 @@ module MVCLI
|
|
15
15
|
Template.new code, enc, filename
|
16
16
|
end
|
17
17
|
|
18
|
+
class Context < BasicObject
|
19
|
+
attr_reader :this
|
20
|
+
def initialize(this)
|
21
|
+
@this = this
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
18
25
|
class Template
|
19
26
|
def initialize(code, enc, filename)
|
20
27
|
@code, @enc, @filename = code, enc, filename
|
21
28
|
end
|
22
29
|
|
23
|
-
def call(
|
30
|
+
def call(this, output)
|
31
|
+
context = Context.new this
|
24
32
|
binding = context.instance_eval do
|
25
33
|
@_erbout = output
|
26
34
|
Kernel.binding
|
27
35
|
end
|
28
36
|
eval @code, binding, @filename, 1
|
29
|
-
ensure
|
30
|
-
context.remove_instance_variable(:@_erbout)
|
31
37
|
end
|
32
38
|
|
33
39
|
def to_proc
|
data/lib/mvcli/validatable.rb
CHANGED
@@ -172,9 +172,8 @@ module MVCLI::Validatable
|
|
172
172
|
value, error = read validatable
|
173
173
|
if error
|
174
174
|
errors[@field] << error
|
175
|
-
elsif value.nil?
|
176
|
-
return unless !!@options[:nil]
|
177
175
|
else
|
176
|
+
return if value.nil? && !@options[:nil]
|
178
177
|
violations[@field] << @message unless @predicate.call value
|
179
178
|
end
|
180
179
|
end
|
data/lib/mvcli/version.rb
CHANGED
data/spec/mvcli/erb_spec.rb
CHANGED
@@ -5,7 +5,7 @@ describe "MVCLI::ERB" do
|
|
5
5
|
Given(:erb) {MVCLI::ERB.new}
|
6
6
|
context "when I compile a template" do
|
7
7
|
Given(:output) {""}
|
8
|
-
Given(:template) {erb.compile "name: <%= name %>"}
|
8
|
+
Given(:template) {erb.compile "name: <%= this.name %>"}
|
9
9
|
context "and call it with a context" do
|
10
10
|
When {template.call mock(:Context, :name => 'Charles'), output}
|
11
11
|
Then {output.should eql "name: Charles"}
|
@@ -2,11 +2,14 @@ require "spec_helper"
|
|
2
2
|
require "mvcli/validatable"
|
3
3
|
|
4
4
|
describe "a validator" do
|
5
|
+
use_natural_assertions
|
6
|
+
Given(:object) {Object.new}
|
5
7
|
Given(:validator) {MVCLI::Validatable::Validator.new}
|
8
|
+
Given(:validation) { validator.validate object }
|
6
9
|
context "when it validates a field that does not exist on the object" do
|
7
10
|
Given {validator.validates(:does_not_exist, "invalid") {}}
|
8
|
-
When(:validation) {validator.validate
|
9
|
-
Then {validation.errors[:does_not_exist].
|
11
|
+
When(:validation) {validator.validate object}
|
12
|
+
Then {not validation.errors[:does_not_exist].empty?}
|
10
13
|
Then {not validation.valid?}
|
11
14
|
end
|
12
15
|
describe "validating a child" do
|
@@ -21,4 +24,17 @@ describe "a validator" do
|
|
21
24
|
And {not validation.valid?}
|
22
25
|
end
|
23
26
|
end
|
27
|
+
|
28
|
+
describe "validating a nil field" do
|
29
|
+
Given { object.stub(:property) {nil} }
|
30
|
+
context "when the validate-on-nil option is passed" do
|
31
|
+
When { validator.validates(:property, "check nil", nil: true) {false} }
|
32
|
+
Then { not validation.valid? }
|
33
|
+
And { not validation.violations[:property].empty? }
|
34
|
+
end
|
35
|
+
context "when the validate on nil option is not passed" do
|
36
|
+
When { validator.validates(:property, "check nil") {false}}
|
37
|
+
Then { validation.valid? }
|
38
|
+
end
|
39
|
+
end
|
24
40
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mvcli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Lowell
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
UgImJlChAzCoDP9zi9tdm6jAr7ttF25R9PPYr11ILb7dYe3qUzlNlM6zJx/nb31b
|
30
30
|
IhdyRVup4qLcqYSTPsm6u7VA
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date: 2013-
|
32
|
+
date: 2013-07-01 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: map
|