protobuf_spec 0.3.1 → 0.3.2

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 CHANGED
@@ -1,7 +1,7 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 66bbc89abe97ac54c85205b4dd0807626e5d674c
4
- data.tar.gz: 8230b7bf3c4ed051b868ce5600fb96623c1da194
5
- SHA512:
6
- metadata.gz: 3fa242e56478eb0881c37abf269b709e967f0d23e1d502603bfb4d729271ad5539c16d808a25d9b04cb50ada9a2640d4b7cfbb38d529b2df75aba2c5b89261b9
7
- data.tar.gz: 973b1c68787c23b251886f691b9a9801cee3245050636fb98b7ee3fc055493de40b6fcb12dbc46628be996ebb412eb906faaaad904acef60f742e209bd80da83
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 44abc241a1544162b2694e67c2c97703cd6e19e9
4
+ data.tar.gz: 72cf86f7423577cb64ce11daa7ea956ce658ca6d
5
+ SHA512:
6
+ metadata.gz: 84e754483594ba647b7951caeae5f624cf7dfe8b3da5de29f97e840e1f9cb0ef219471864fea4bbdef924ace797be854d02f3492c8a1e8b0d4d4e0f4204c70b9
7
+ data.tar.gz: 7c7cc02740c9b4663fca3fb31161fc5723842978eec1d85a05b7283afc0bac2b9f94a4ef731805f4c4fd258d521393f23c2f8f0ab1902c49229a1b385a146781
@@ -1,5 +1,4 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.2
4
3
  - 1.9.3
5
4
  - 2.0.0
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ gem "cuke_mem", "~> 0.1.1"
7
7
 
8
8
  group :development do
9
9
  gem "rspec", "~> 2.14"
10
- gem "jeweler", "~> 1.8"
10
+ gem "jeweler", "~> 1.8.8"
11
11
  gem "cucumber", "~> 1.3"
12
12
  gem "rake", "~> 10.1"
13
13
  end
@@ -1,7 +1,7 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- addressable (2.3.5)
4
+ addressable (2.3.8)
5
5
  builder (3.2.2)
6
6
  cucumber (1.3.6)
7
7
  builder (>= 2.1.2)
@@ -12,11 +12,11 @@ GEM
12
12
  cuke_mem (0.1.1)
13
13
  cucumber (~> 1.3)
14
14
  diff-lcs (1.2.4)
15
- faraday (0.8.8)
15
+ faraday (0.8.9)
16
16
  multipart-post (~> 1.2.0)
17
17
  gherkin (2.12.1)
18
18
  multi_json (~> 1.3)
19
- git (1.2.6)
19
+ git (1.2.9.1)
20
20
  github_api (0.10.1)
21
21
  addressable
22
22
  faraday (~> 0.8.1)
@@ -24,10 +24,9 @@ GEM
24
24
  multi_json (~> 1.4)
25
25
  nokogiri (~> 1.5.2)
26
26
  oauth2
27
- hashie (2.0.5)
28
- highline (1.6.19)
29
- httpauth (0.2.0)
30
- jeweler (1.8.7)
27
+ hashie (3.4.1)
28
+ highline (1.7.2)
29
+ jeweler (1.8.8)
31
30
  builder
32
31
  bundler (~> 1.0)
33
32
  git (>= 1.2.5)
@@ -36,27 +35,25 @@ GEM
36
35
  nokogiri (= 1.5.10)
37
36
  rake
38
37
  rdoc
39
- json (1.8.0)
38
+ json (1.8.2)
40
39
  json_spec (1.1.1)
41
40
  multi_json (~> 1.0)
42
41
  rspec (~> 2.0)
43
- jwt (0.1.8)
44
- multi_json (>= 1.5)
42
+ jwt (1.4.1)
45
43
  multi_json (1.7.9)
46
44
  multi_test (0.0.2)
47
45
  multi_xml (0.5.5)
48
46
  multipart-post (1.2.0)
49
47
  nokogiri (1.5.10)
50
- oauth2 (0.9.2)
51
- faraday (~> 0.8)
52
- httpauth (~> 0.2)
53
- jwt (~> 0.1.4)
54
- multi_json (~> 1.0)
48
+ oauth2 (1.0.0)
49
+ faraday (>= 0.8, < 0.10)
50
+ jwt (~> 1.0)
51
+ multi_json (~> 1.3)
55
52
  multi_xml (~> 0.5)
56
53
  rack (~> 1.2)
57
- rack (1.5.2)
54
+ rack (1.6.1)
58
55
  rake (10.1.0)
59
- rdoc (4.0.1)
56
+ rdoc (4.2.0)
60
57
  json (~> 1.4)
61
58
  rspec (2.14.1)
62
59
  rspec-core (~> 2.14.0)
@@ -74,7 +71,7 @@ PLATFORMS
74
71
  DEPENDENCIES
75
72
  cucumber (~> 1.3)
76
73
  cuke_mem (~> 0.1.1)
77
- jeweler (~> 1.8)
74
+ jeweler (~> 1.8.8)
78
75
  json_spec (~> 1.1.1)
79
76
  rake (~> 10.1)
80
77
  rspec (~> 2.14)
data/README.md CHANGED
@@ -115,6 +115,27 @@ Feature: Weather Request API
115
115
 
116
116
  The built protocol buffer can be accessed through the ```protobuf``` function in the ```ProtobufSpec::Builder``` module.
117
117
 
118
+ ### Testing with a Transport Layer
119
+
120
+ Normally you will pair a serialization method like Protocol Buffers with a transport layer in systems that send and receive serialized data. protobuf\_spec can easily integrated with a transport testing platform to test such systems. Consider again the weather example presented above. If the weather server used [ZeroMQ](http://zeromq.org) as a transport layer, one could use an agent platform like [agent_zmq](https://github.com/connamara/agent_zmq) to test and control the transport concern. Using agent\_zmq, we could construct the following step definitions
121
+
122
+ ```ruby
123
+ When /^I send the request$/ do
124
+ AgentZeroMQ.agents_hash[:requester].publish [ProtobufSpec::Builder.protobuf.serialize_to_string]
125
+ end
126
+
127
+ Then /^I should receive a ProtoBuf of type com::weather::WeatherResponse$/
128
+ steps %{Then I should receive a response on ZeroMQ with agent "requester"}
129
+
130
+ @my_protocol_buffer=Com::weather::WeatherResponse.new
131
+ @my_protocol_buffer.parse_from_string last_zmq_message.last
132
+ end
133
+
134
+ ...
135
+ ```
136
+
137
+ See [agent_zmq](https://github.com/connamara/agent_zmq) for additional information. A similar abstraction could be applied to any other transport layer.
138
+
118
139
  ### More
119
140
 
120
141
  Check out [specs](https://github.com/connamara/protobuf_spec/blob/master/spec) and [features](https://github.com/connamara/protobuf_spec/blob/master/features) to see all the ways you can use protobuf_spec.
@@ -149,7 +170,8 @@ Credits
149
170
 
150
171
  Contributers:
151
172
 
152
- * Chris Busbey
173
+ * [Chris Busbey](https://github.com/cbusbey)
174
+ * [Mike Gatny](https://github.com/mgatny)
153
175
 
154
176
  ![Connamara Systems](http://www.connamara.com/images/home-connamara-logo-lg.png)
155
177
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.1
1
+ 0.3.2
@@ -11,10 +11,12 @@ Feature: Building ProtoBufs
11
11
  And I set the ProtoBuf at "string_field" to "hello"
12
12
  And I set the ProtoBuf at "int_field" to -5
13
13
  And I set the ProtoBuf at "double_field" to 123.45
14
+ And I set the ProtoBuf at "bool_field" to true
14
15
  When I get the ProtoBuf
15
16
  Then the ProtoBuf at "string_field" should be "hello"
16
17
  And the ProtoBuf at "int_field" should be -5
17
18
  And the ProtoBuf at "double_field" should be 123.45
19
+ And the ProtoBuf at "bool_field" should be true
18
20
 
19
21
  Scenario: I can create a protobuf with a json description
20
22
  Given I create the following ProtoBuf of type "Sample":
@@ -29,6 +29,10 @@ Given /^I set the (?:ProtoBuf|Protobuf|protobuf) at "([^"]*)" to (-?\d+\.\d+)$/
29
29
  ProtobufSpec::Builder.protobuf.send("#{field}=".to_sym, val.to_f)
30
30
  end
31
31
 
32
+ Given /^I set the (?:ProtoBuf|Protobuf|protobuf) at "([^"]*)" to (-?true|false)$/ do |field, val|
33
+ ProtobufSpec::Builder.protobuf.send("#{field}=".to_sym, val == "true")
34
+ end
35
+
32
36
  Given /^I create the following (?:ProtoBuf|Protobuf|protobuf) of type "([^"]*)":$/ do |proto_type, proto_as_json|
33
37
  steps %{Given I create a ProtoBuf of type "#{proto_type}"}
34
38
 
@@ -41,7 +41,7 @@ Then /^the (?:ProtoBuf|Protobuf|protobuf)(?: response)?(?: at "(.*)")? should( n
41
41
  end
42
42
 
43
43
  Then /^the (?:ProtoBuf|Protobuf|protobuf)(?: response)?(?: at "(.*)")? should have the following:$/ do |base, table|
44
- table.rows.each do |path, value|
44
+ table.raw.each do |path, value|
45
45
  path = [base, path].compact.join("/")
46
46
 
47
47
  if value
@@ -5,12 +5,22 @@ module ProtobufSpec
5
5
  class BeProtobufEql
6
6
  include JsonSpec::Messages
7
7
 
8
- attr_reader :actual
8
+ def diffable?
9
+ true
10
+ end
9
11
 
10
12
  def initialize(expected_json = nil)
11
13
  @json_matcher= JsonSpec::Matchers::BeJsonEql.new expected_json
12
14
  end
13
15
 
16
+ def expected
17
+ @json_matcher.expected
18
+ end
19
+
20
+ def actual
21
+ @json_matcher.actual
22
+ end
23
+
14
24
  def at_path(path)
15
25
  @path=path
16
26
  @json_matcher.at_path path
@@ -2,14 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: protobuf_spec 0.3.2 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
8
  s.name = "protobuf_spec"
8
- s.version = "0.3.1"
9
+ s.version = "0.3.2"
9
10
 
10
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
11
13
  s.authors = ["Chris Busbey"]
12
- s.date = "2013-08-28"
14
+ s.date = "2015-05-07"
13
15
  s.description = "Leverages json_spec to test structured protocol buffers with json data modeling"
14
16
  s.email = "info@connamara.com"
15
17
  s.extra_rdoc_files = [
@@ -50,8 +52,7 @@ Gem::Specification.new do |s|
50
52
  ]
51
53
  s.homepage = "http://github.com/connamara/protobuf_spec"
52
54
  s.licenses = ["GPL"]
53
- s.require_paths = ["lib"]
54
- s.rubygems_version = "2.0.7"
55
+ s.rubygems_version = "2.2.2"
55
56
  s.summary = "RSpec matchers and cucumber step defs for testing protocol buffers"
56
57
 
57
58
  if s.respond_to? :specification_version then
@@ -62,7 +63,7 @@ Gem::Specification.new do |s|
62
63
  s.add_runtime_dependency(%q<json_spec>, ["~> 1.1.1"])
63
64
  s.add_runtime_dependency(%q<cuke_mem>, ["~> 0.1.1"])
64
65
  s.add_development_dependency(%q<rspec>, ["~> 2.14"])
65
- s.add_development_dependency(%q<jeweler>, ["~> 1.8"])
66
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.8"])
66
67
  s.add_development_dependency(%q<cucumber>, ["~> 1.3"])
67
68
  s.add_development_dependency(%q<rake>, ["~> 10.1"])
68
69
  else
@@ -70,7 +71,7 @@ Gem::Specification.new do |s|
70
71
  s.add_dependency(%q<json_spec>, ["~> 1.1.1"])
71
72
  s.add_dependency(%q<cuke_mem>, ["~> 0.1.1"])
72
73
  s.add_dependency(%q<rspec>, ["~> 2.14"])
73
- s.add_dependency(%q<jeweler>, ["~> 1.8"])
74
+ s.add_dependency(%q<jeweler>, ["~> 1.8.8"])
74
75
  s.add_dependency(%q<cucumber>, ["~> 1.3"])
75
76
  s.add_dependency(%q<rake>, ["~> 10.1"])
76
77
  end
@@ -79,7 +80,7 @@ Gem::Specification.new do |s|
79
80
  s.add_dependency(%q<json_spec>, ["~> 1.1.1"])
80
81
  s.add_dependency(%q<cuke_mem>, ["~> 0.1.1"])
81
82
  s.add_dependency(%q<rspec>, ["~> 2.14"])
82
- s.add_dependency(%q<jeweler>, ["~> 1.8"])
83
+ s.add_dependency(%q<jeweler>, ["~> 1.8.8"])
83
84
  s.add_dependency(%q<cucumber>, ["~> 1.3"])
84
85
  s.add_dependency(%q<rake>, ["~> 10.1"])
85
86
  end
metadata CHANGED
@@ -1,99 +1,125 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: protobuf_spec
3
- version: !ruby/object:Gem::Version
4
- version: 0.3.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.2
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Chris Busbey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
-
12
- date: 2013-08-28 00:00:00 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
11
+ date: 2015-05-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
15
14
  name: ruby_protobuf
16
- requirement: &id001 !ruby/object:Gem::Requirement
17
- requirements:
18
- - - ~>
19
- - !ruby/object:Gem::Version
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
20
19
  version: 0.4.11
21
20
  type: :runtime
22
21
  prerelease: false
23
- version_requirements: *id001
24
- - !ruby/object:Gem::Dependency
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.4.11
27
+ - !ruby/object:Gem::Dependency
25
28
  name: json_spec
26
- requirement: &id002 !ruby/object:Gem::Requirement
27
- requirements:
28
- - - ~>
29
- - !ruby/object:Gem::Version
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
30
33
  version: 1.1.1
31
34
  type: :runtime
32
35
  prerelease: false
33
- version_requirements: *id002
34
- - !ruby/object:Gem::Dependency
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.1.1
41
+ - !ruby/object:Gem::Dependency
35
42
  name: cuke_mem
36
- requirement: &id003 !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ~>
39
- - !ruby/object:Gem::Version
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
40
47
  version: 0.1.1
41
48
  type: :runtime
42
49
  prerelease: false
43
- version_requirements: *id003
44
- - !ruby/object:Gem::Dependency
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.1.1
55
+ - !ruby/object:Gem::Dependency
45
56
  name: rspec
46
- requirement: &id004 !ruby/object:Gem::Requirement
47
- requirements:
48
- - - ~>
49
- - !ruby/object:Gem::Version
50
- version: "2.14"
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.14'
51
62
  type: :development
52
63
  prerelease: false
53
- version_requirements: *id004
54
- - !ruby/object:Gem::Dependency
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.14'
69
+ - !ruby/object:Gem::Dependency
55
70
  name: jeweler
56
- requirement: &id005 !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ~>
59
- - !ruby/object:Gem::Version
60
- version: "1.8"
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.8.8
61
76
  type: :development
62
77
  prerelease: false
63
- version_requirements: *id005
64
- - !ruby/object:Gem::Dependency
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 1.8.8
83
+ - !ruby/object:Gem::Dependency
65
84
  name: cucumber
66
- requirement: &id006 !ruby/object:Gem::Requirement
67
- requirements:
68
- - - ~>
69
- - !ruby/object:Gem::Version
70
- version: "1.3"
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.3'
71
90
  type: :development
72
91
  prerelease: false
73
- version_requirements: *id006
74
- - !ruby/object:Gem::Dependency
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.3'
97
+ - !ruby/object:Gem::Dependency
75
98
  name: rake
76
- requirement: &id007 !ruby/object:Gem::Requirement
77
- requirements:
78
- - - ~>
79
- - !ruby/object:Gem::Version
80
- version: "10.1"
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '10.1'
81
104
  type: :development
82
105
  prerelease: false
83
- version_requirements: *id007
84
- description: Leverages json_spec to test structured protocol buffers with json data modeling
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '10.1'
111
+ description: Leverages json_spec to test structured protocol buffers with json data
112
+ modeling
85
113
  email: info@connamara.com
86
114
  executables: []
87
-
88
115
  extensions: []
89
-
90
- extra_rdoc_files:
116
+ extra_rdoc_files:
91
117
  - LICENSE.txt
92
118
  - README.md
93
- files:
94
- - .document
95
- - .rspec
96
- - .travis.yml
119
+ files:
120
+ - ".document"
121
+ - ".rspec"
122
+ - ".travis.yml"
97
123
  - CONTRIBUTION_GUIDELINES.md
98
124
  - Gemfile
99
125
  - Gemfile.lock
@@ -122,30 +148,27 @@ files:
122
148
  - spec/spec_helper.rb
123
149
  - spec/support/sample.pb.rb
124
150
  homepage: http://github.com/connamara/protobuf_spec
125
- licenses:
151
+ licenses:
126
152
  - GPL
127
153
  metadata: {}
128
-
129
154
  post_install_message:
130
155
  rdoc_options: []
131
-
132
- require_paths:
156
+ require_paths:
133
157
  - lib
134
- required_ruby_version: !ruby/object:Gem::Requirement
135
- requirements:
136
- - &id008
137
- - ">="
138
- - !ruby/object:Gem::Version
139
- version: "0"
140
- required_rubygems_version: !ruby/object:Gem::Requirement
141
- requirements:
142
- - *id008
158
+ required_ruby_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ required_rubygems_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
143
168
  requirements: []
144
-
145
169
  rubyforge_project:
146
- rubygems_version: 2.0.7
170
+ rubygems_version: 2.2.2
147
171
  signing_key:
148
172
  specification_version: 4
149
173
  summary: RSpec matchers and cucumber step defs for testing protocol buffers
150
174
  test_files: []
151
-