mvcli 0.0.7 → 0.0.8
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 +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
|