redsnow 0.1.2 → 0.1.3
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/CHANGELOG.md +1 -0
- data/lib/redsnow/blueprint.rb +17 -0
- data/lib/redsnow/version.rb +1 -1
- data/test/redsnow_test.rb +22 -12
- 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: 4c77d3abeb952177baf63c58d6a73f9e4fec74f9
|
4
|
+
data.tar.gz: afa2d73de37d29ffbfa3b18daca644d2047dcef5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d43c806fe110d5829c630fa98dd15e5e89f9d30a4ea92186d3ca432d7aa4ff3675769026377ce74c08c528eaf24192a3d4d7c872d91fe19643df4a16951013c5
|
7
|
+
data.tar.gz: f7873c7fa6a23cbad92bbc387a4525eb963ddf9c15403388b9bb6eeb4e17e8d32fd14010018419136c22f1876b7fb779cd36a71d3040947538507a87f9152d4a
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# Changelog
|
2
|
+
- 0.1.3 - Add Element Reference method to KeyValueCollection class [PR#17](https://github.com/apiaryio/redsnow/pull/17)
|
2
3
|
- 0.1.2 - Fix collection of resources inside ResourceGroup [PR#13](https://github.com/apiaryio/redsnow/pull/13)
|
3
4
|
- 0.1.1 - Add bundler to dependency
|
4
5
|
- 0.1.0 - Snow Crash updated to [0.12.1](https://github.com/apiaryio/snowcrash/releases/tag/v0.12.1)
|
data/lib/redsnow/blueprint.rb
CHANGED
@@ -45,6 +45,15 @@ module RedSnow
|
|
45
45
|
|
46
46
|
attr_accessor :collection
|
47
47
|
|
48
|
+
# Retrieves the value of the collection item by its key
|
49
|
+
#
|
50
|
+
# @param key [String] Name of the item key to retrieve
|
51
|
+
# @return [NilClass] if the collection does not have an item with the key
|
52
|
+
# @return [String] if the collection has an item with the key
|
53
|
+
def [] key
|
54
|
+
return nil if @collection.nil?
|
55
|
+
return_item_value key
|
56
|
+
end
|
48
57
|
# Filter collection keys
|
49
58
|
#
|
50
59
|
# @return [Array<Hash>] collection without ignored keys
|
@@ -52,6 +61,14 @@ module RedSnow
|
|
52
61
|
return @collection if ignore_keys.blank?
|
53
62
|
@collection.select { |kv_item| !ignore_keys.include?(kv_item.keys.first) }
|
54
63
|
end
|
64
|
+
private
|
65
|
+
def return_item_value key
|
66
|
+
item = get_item(key.to_s)
|
67
|
+
item.nil? ? nil : item[:value]
|
68
|
+
end
|
69
|
+
def get_item key
|
70
|
+
@collection.select{|item| item[:name].downcase == key.downcase }.first
|
71
|
+
end
|
55
72
|
end
|
56
73
|
|
57
74
|
# Metadata collection Blueprint AST node
|
data/lib/redsnow/version.rb
CHANGED
data/test/redsnow_test.rb
CHANGED
@@ -134,7 +134,8 @@ class RedSnowParsingTest < Test::Unit::TestCase
|
|
134
134
|
assert_equal "Hello World\n", @resource.model.body
|
135
135
|
assert_equal 1, @resource.model.headers.collection.count
|
136
136
|
assert_equal "Content-Type", @resource.model.headers.collection[0][:name]
|
137
|
-
assert_equal "text/plain", @resource.model.headers
|
137
|
+
assert_equal "text/plain", @resource.model.headers['content-type']
|
138
|
+
assert_equal "text/plain", @resource.model.headers['Content-Type']
|
138
139
|
end
|
139
140
|
|
140
141
|
should "have actions" do
|
@@ -158,21 +159,30 @@ class RedSnowParsingTest < Test::Unit::TestCase
|
|
158
159
|
STR
|
159
160
|
|
160
161
|
@result = RedSnow.parse(source.unindent)
|
161
|
-
@metadata = @result.ast.metadata
|
162
|
+
@metadata = @result.ast.metadata
|
163
|
+
@collection = @metadata.collection
|
162
164
|
end
|
163
165
|
|
164
166
|
should "have metadata" do
|
165
|
-
assert_equal 'FORMAT', @
|
166
|
-
assert_equal '1A', @
|
167
|
+
assert_equal 'FORMAT', @collection[0][:name]
|
168
|
+
assert_equal '1A', @collection[0][:value]
|
167
169
|
|
168
|
-
assert_equal 'A', @
|
169
|
-
assert_equal '1', @
|
170
|
+
assert_equal 'A', @collection[1][:name]
|
171
|
+
assert_equal '1', @collection[1][:value]
|
170
172
|
|
171
|
-
assert_equal 'B', @
|
172
|
-
assert_equal '2', @
|
173
|
+
assert_equal 'B', @collection[2][:name]
|
174
|
+
assert_equal '2', @collection[2][:value]
|
173
175
|
|
174
|
-
assert_equal 'C', @
|
175
|
-
assert_equal '3', @
|
176
|
+
assert_equal 'C', @collection[3][:name]
|
177
|
+
assert_equal '3', @collection[3][:value]
|
178
|
+
end
|
179
|
+
|
180
|
+
should "return metadata values by element reference method" do
|
181
|
+
assert_equal '1A', @metadata['FORMAT']
|
182
|
+
assert_equal '1', @metadata['A']
|
183
|
+
assert_equal '2', @metadata['B']
|
184
|
+
assert_equal '3', @metadata['C']
|
185
|
+
assert_equal nil, @metadata['D']
|
176
186
|
end
|
177
187
|
end
|
178
188
|
|
@@ -295,9 +305,9 @@ class RedSnowParsingTest < Test::Unit::TestCase
|
|
295
305
|
assert_equal "201", @examples[0].responses[0].name
|
296
306
|
assert_equal "Unable to create note", @examples[1].requests[0].name
|
297
307
|
assert_equal "Content-Type", @examples[1].requests[0].headers.collection[0][:name]
|
298
|
-
assert_equal "application/json", @examples[1].requests[0].headers
|
308
|
+
assert_equal "application/json", @examples[1].requests[0].headers['content-type']
|
299
309
|
assert_equal "Prefer", @examples[1].requests[0].headers.collection[1][:name]
|
300
|
-
assert_equal "testing", @examples[1].requests[0].headers
|
310
|
+
assert_equal "testing", @examples[1].requests[0].headers['prefer']
|
301
311
|
assert_equal '{ "ti": "Buy cheese and bread for breakfast." }' + "\n", @examples[1].requests[0].body
|
302
312
|
assert_equal "500", @examples[1].responses[0].name
|
303
313
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redsnow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ladislav Prskavec
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|