membrane 1.0.0 → 1.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 +15 -0
- data/CHANGELOG.md +38 -0
- data/lib/membrane/schemas/record.rb +6 -1
- data/lib/membrane/version.rb +1 -1
- data/spec/schemas/record_spec.rb +31 -0
- metadata +6 -13
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NTNkMGJjYjViOWIzZDhiZDY5YjY0NDFmMzViODg3OTI2ZDNmNzU4Mw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ODBhYWQ1NmU3NmFjMjk1YTAyMTdlZGU1ZWY2ZjRlMjgwMjAzNGRhYg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MjBmYzY4ZGUzZWQ5ZWFjZDgyOWUxOGJhMDkzYTdlNDQ2NmMzMmQ1Y2EyOTg3
|
10
|
+
OGFmNjBhNjUzNDI1ZTUxNzI3NmUyNGZhOTZmYWUwNzA5ZGFmMjRhNjUzM2Mz
|
11
|
+
NzBmMGVjZTQwMDI2ZWVhM2NjNDdjYTI0ZTk3MjYwZWRlYjQ2ZTI=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MzNlMTVmNDc5MmRiZjYyNGI5OGU0MWIxZGRhM2Y3NTczOGQ1N2U5YjNhNTEx
|
14
|
+
YjIwYjE5Nzc1ZTY2ZWE3MDZiMTE4ODljZmY3OGY4ZTBjY2M0Y2MxODNiNmZk
|
15
|
+
MDNlZjQ4YTM0MjgxZTVmMjdlNjVjYTE1ODAwNzIyZGYzNzdjMDg=
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
# Membrane changelog
|
2
|
+
|
3
|
+
## 1.0.0
|
4
|
+
|
5
|
+
* Bump version to 1.0.0 to reflect changes from 0.0.x versions and to denote general stability of gem.
|
6
|
+
|
7
|
+
|
8
|
+
## 0.0.5
|
9
|
+
|
10
|
+
* Refactor `fail!` methods in Schema types.
|
11
|
+
|
12
|
+
|
13
|
+
## 0.0.4
|
14
|
+
|
15
|
+
* Rename `Membrane::Schema` to `Membrane::Schemas`. This is backwards-incompatible for any code relying directly on this module.
|
16
|
+
* Make schemas extensible.
|
17
|
+
* Update licenses.
|
18
|
+
|
19
|
+
|
20
|
+
## 0.0.3
|
21
|
+
|
22
|
+
* Fix indentation.
|
23
|
+
|
24
|
+
|
25
|
+
## 0.0.2
|
26
|
+
|
27
|
+
* Add deparse method for schema classes:
|
28
|
+
- The method: Membrane::Schema::Base#deparse returns string representation of a schema.
|
29
|
+
- Changed class: Membrane::Schema::Dictionary to sub-class Membrane::Schema::Base.
|
30
|
+
- Changed method: Membrane::SchemaParser#deparse to call `name` instead of `inspect` on a `Membrane::Schema::Class` object.
|
31
|
+
- Added/changed tests.
|
32
|
+
* Add tuple schema.
|
33
|
+
* Better pretty printing for schemas.
|
34
|
+
|
35
|
+
|
36
|
+
## 0.0.1
|
37
|
+
|
38
|
+
* Initial commit.
|
@@ -72,7 +72,12 @@ class Membrane::Schemas::Record < Membrane::Schemas::Base
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def fail!(errors)
|
75
|
-
emsg =
|
75
|
+
emsg =
|
76
|
+
if ENV['MEMBRANE_ERROR_USE_QUOTES']
|
77
|
+
"{ " + errors.map { |k, e| "'#{k}' => %q(#{e})" }.join(", ") + " }"
|
78
|
+
else
|
79
|
+
"{ " + errors.map { |k, e| "#{k} => #{e}" }.join(", ") + " }"
|
80
|
+
end
|
76
81
|
raise Membrane::SchemaValidationError.new(emsg)
|
77
82
|
end
|
78
83
|
end
|
data/lib/membrane/version.rb
CHANGED
data/spec/schemas/record_spec.rb
CHANGED
@@ -86,6 +86,37 @@ describe Membrane::Schemas::Record do
|
|
86
86
|
}.to_not raise_error
|
87
87
|
end
|
88
88
|
end
|
89
|
+
|
90
|
+
context "when ENV['MEMBRANE_ERROR_USE_QUOTES'] is set" do
|
91
|
+
it "returns an error message that can be parsed" do
|
92
|
+
ENV['MEMBRANE_ERROR_USE_QUOTES'] = 'true'
|
93
|
+
rec_schema = Membrane::SchemaParser.parse do
|
94
|
+
{ "a_number" => Integer,
|
95
|
+
"tf" => bool,
|
96
|
+
"seventeen" => 17,
|
97
|
+
"nested_hash" => Membrane::SchemaParser.parse { { size: Float } }
|
98
|
+
}
|
99
|
+
end
|
100
|
+
error_hash = nil
|
101
|
+
begin
|
102
|
+
rec_schema.validate(
|
103
|
+
{ 'tf' => 'who knows', 'seventeen' => 18,
|
104
|
+
'nested_hash' => { size: 17, color: 'blue' } })
|
105
|
+
rescue Membrane::SchemaValidationError => e
|
106
|
+
error_hash = eval(e.to_s)
|
107
|
+
end
|
108
|
+
error_hash.should include(
|
109
|
+
'tf' => 'Expected instance of true or false, given who knows')
|
110
|
+
error_hash.should include(
|
111
|
+
'a_number' => 'Missing key')
|
112
|
+
error_hash.should include(
|
113
|
+
'seventeen' => 'Expected 17, given 18')
|
114
|
+
error_hash.should include('nested_hash')
|
115
|
+
eval(error_hash['nested_hash']).should include(
|
116
|
+
'size' => 'Expected instance of Float, given an instance of Fixnum')
|
117
|
+
ENV.delete('MEMBRANE_ERROR_USE_QUOTES')
|
118
|
+
end
|
119
|
+
end
|
89
120
|
end
|
90
121
|
|
91
122
|
describe "#parse" do
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: membrane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- mpage
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-04-03 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: ci_reporter
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -69,6 +62,7 @@ extra_rdoc_files: []
|
|
69
62
|
files:
|
70
63
|
- .gitignore
|
71
64
|
- .travis.yml
|
65
|
+
- CHANGELOG.md
|
72
66
|
- Gemfile
|
73
67
|
- LICENSE
|
74
68
|
- NOTICE
|
@@ -107,27 +101,26 @@ files:
|
|
107
101
|
- spec/spec_helper.rb
|
108
102
|
homepage: http://www.cloudfoundry.org
|
109
103
|
licenses: []
|
104
|
+
metadata: {}
|
110
105
|
post_install_message:
|
111
106
|
rdoc_options: []
|
112
107
|
require_paths:
|
113
108
|
- lib
|
114
109
|
required_ruby_version: !ruby/object:Gem::Requirement
|
115
|
-
none: false
|
116
110
|
requirements:
|
117
111
|
- - ! '>='
|
118
112
|
- !ruby/object:Gem::Version
|
119
113
|
version: '0'
|
120
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
115
|
requirements:
|
123
116
|
- - ! '>='
|
124
117
|
- !ruby/object:Gem::Version
|
125
118
|
version: '0'
|
126
119
|
requirements: []
|
127
120
|
rubyforge_project:
|
128
|
-
rubygems_version:
|
121
|
+
rubygems_version: 2.2.2
|
129
122
|
signing_key:
|
130
|
-
specification_version:
|
123
|
+
specification_version: 4
|
131
124
|
summary: A DSL for validating data.
|
132
125
|
test_files:
|
133
126
|
- spec/complex_schema_spec.rb
|