zeta 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.markdown +14 -0
- data/README.md +23 -13
- data/lib/zeta/instance.rb +7 -0
- data/lib/zeta/rspec.rb +25 -14
- data/lib/zeta/runner.rb +5 -1
- data/lib/zeta/version.rb +1 -1
- data/zeta.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 08d5fed9062a49f2b57a91870f9dbf9dd2dbd8b8
|
4
|
+
data.tar.gz: 997e37353292f45a5dd1d181f60ed1c3822c049c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33cc3885df8146f28d3c3a12706c0ce9a1c2878968bcb92fba7882a04cb5a3d315d899f56dc2339d2f13c8677d8fd44603c955f077397495808e5ecba67d87d9
|
7
|
+
data.tar.gz: b1d8f24c554461b40d335ed5c398c55d1174d99f7f9af61870aaf67eb660d9579d7135e45d97027f7a067a327e7b1c7e3d767b85c44fb98cabc13de5c8c57fa0
|
data/CHANGELOG.markdown
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
# 0.7.0
|
2
|
+
- update Lacerda to ~> 0.12
|
3
|
+
- add Zeta.convert_all! convenience method
|
4
|
+
|
5
|
+
# 0.6.0 (06-Nov-15)
|
6
|
+
- update Lacerda
|
7
|
+
|
8
|
+
# 0.6.2 (04-Nov-15)
|
9
|
+
- update Lacerda
|
10
|
+
- add --trace option so we don't bother people with exception traces all the time
|
11
|
+
|
12
|
+
# 0.6.1 (03-Nov-15)
|
13
|
+
- make rspec integration a little more convenient
|
14
|
+
|
1
15
|
# 0.6.0 (03-Nov-15)
|
2
16
|
- make reporter configurable for contracts_fulfilled?
|
3
17
|
- add rspec integration
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Zeta [![Circle CI](https://circleci.com/gh/moviepilot/zeta.svg?style=
|
1
|
+
# Zeta [![Circle CI](https://circleci.com/gh/moviepilot/zeta.svg?style=shield)](https://circleci.com/gh/moviepilot/zeta) [![Coverage Status](https://coveralls.io/repos/moviepilot/zeta/badge.svg?branch=master&service=github)](https://coveralls.io/github/moviepilot/zeta?branch=master) [![Code Climate](https://codeclimate.com/github/moviepilot/zeta/badges/gpa.svg)](https://codeclimate.com/github/moviepilot/zeta) [![Dependency Status](https://gemnasium.com/moviepilot/zeta.svg)](https://gemnasium.com/moviepilot/zeta) [![Gem Version](https://badge.fury.io/rb/zeta.svg)](https://badge.fury.io/rb/zeta)
|
2
2
|
|
3
3
|
![](https://dl.dropboxusercontent.com/u/1953503/zeta.jpg)
|
4
4
|
|
@@ -48,9 +48,6 @@ These are simple markdown files in the wonderful [MSON](https://github.com/apiar
|
|
48
48
|
### A publish specification:
|
49
49
|
`contracts/publish.mson`:
|
50
50
|
```shell
|
51
|
-
# Data Structures
|
52
|
-
This file defines what MessageService may publish.
|
53
|
-
|
54
51
|
# Message
|
55
52
|
- id: (number, required)
|
56
53
|
- sender_id: (number, required)
|
@@ -64,9 +61,6 @@ So far so good. This way *MessageService* can tell the world what exactly it mea
|
|
64
61
|
### A consume specification:
|
65
62
|
`contracts/consume.mson`:
|
66
63
|
```shell
|
67
|
-
# Data Structures
|
68
|
-
We just consume one object type, and it comes from the MessageService. Check it out!
|
69
|
-
|
70
64
|
# MessageService::Message
|
71
65
|
- sender_id: (number, required)
|
72
66
|
- recipient_id: (number, required)
|
@@ -162,7 +156,7 @@ Whenever you add a service to the infrastructure, you just add it to this centra
|
|
162
156
|
|
163
157
|
### 3. Authentication
|
164
158
|
|
165
|
-
If your infrastruture configuration file is HTTP Basic auth protected, or in a private repository on github (that would be a good idea), make sure you `export HTTP_USER=username` and `HTTP_PASSWORD=secret` and *Zeta* will use that. If you host on github,
|
159
|
+
If your infrastruture configuration file is HTTP Basic auth protected, or in a private repository on github (that would be a good idea), make sure you `export HTTP_USER=username` and `HTTP_PASSWORD=secret` and *Zeta* will use that. If you host on github, then use your github username as `HTTP_USER` and generate an API token to use as the `HTTP_PASSWORD`.
|
166
160
|
|
167
161
|
### 4. Usage: Without ruby (CLI)
|
168
162
|
|
@@ -175,6 +169,7 @@ Specific options:
|
|
175
169
|
-c, --config=CONFIG_FILE Config file (default: config/zeta.yml)
|
176
170
|
-e, --env=ENVIRONMENT Environment (default: RAILS_ENV, if it is set)
|
177
171
|
-s, --silent No output, just an appropriate return code
|
172
|
+
-t, --trace Print exception stack traces
|
178
173
|
|
179
174
|
Common options:
|
180
175
|
-h, --help Show this message
|
@@ -220,11 +215,12 @@ If you use *Zeta* in ruby, it will automatically know the current service, i.e.
|
|
220
215
|
```ruby
|
221
216
|
[1] pry(main)> ls Zeta
|
222
217
|
Zeta.methods:
|
223
|
-
cache_dir current_service
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
218
|
+
cache_dir current_service validate_object_to_consume
|
219
|
+
clear_cache env validate_object_to_consume!
|
220
|
+
config errors validate_object_to_publish
|
221
|
+
config_file infrastructure validate_object_to_publish!
|
222
|
+
consume_object update_contracts verbose=
|
223
|
+
contracts_fulfilled? update_own_contracts
|
228
224
|
[2] pry(main)>
|
229
225
|
```
|
230
226
|
|
@@ -234,3 +230,17 @@ Each and every one of these goes directly to your instance `Lacerda::Infrastruct
|
|
234
230
|
- `Zeta.consume_object('MessageService::Message', received_data)` will give you an instance of the [Blumquist](https://github.com/moviepilot/blumquist#readme) class, which is an obect that has getters for all properties you specified in `consume.mson`
|
235
231
|
|
236
232
|
If you use these in your servies, they will help keeping the publish and consume specifications in sync with what's actually happening in the code.
|
233
|
+
|
234
|
+
### RSpec integration
|
235
|
+
|
236
|
+
Of course you'll want to have your infrastructure checked in CI. If you're using RSpec, we've got you covered. Just place the following lines in, for example, `spec/zeta_spec.rb`:
|
237
|
+
|
238
|
+
```ruby
|
239
|
+
require_relative 'spec_helper'
|
240
|
+
|
241
|
+
require 'zeta/rspec'
|
242
|
+
Zeta::RSpec.update_contracts
|
243
|
+
Zeta::RSpec.run
|
244
|
+
```
|
245
|
+
|
246
|
+
This will do the same as a `zeta -e test full_check` would do on the command line, but reporting to RSpec instead of printing its output directly. Whether or not you run `Zeta::RSpec.update_contracts` is up to you - perhaps you have HTTP requests disabled in your test suite, or you don't want to be network dependant for every run. If you remove it, however, make sure you run `zeta -e test fetch_remote_contracts` often enough to not be outdated.
|
data/lib/zeta/instance.rb
CHANGED
@@ -27,6 +27,13 @@ class Zeta
|
|
27
27
|
true
|
28
28
|
end
|
29
29
|
|
30
|
+
def convert_all!
|
31
|
+
i = infrastructure
|
32
|
+
@mutex.synchronize do
|
33
|
+
i.convert_all!
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
30
37
|
def update_own_contracts
|
31
38
|
contract_files.each do |file|
|
32
39
|
source_file = File.join(config[:contracts_path], file)
|
data/lib/zeta/rspec.rb
CHANGED
@@ -1,24 +1,35 @@
|
|
1
1
|
require 'lacerda/reporters/rspec'
|
2
|
+
require 'zeta'
|
2
3
|
|
3
4
|
# Include this file in your spec/spec_helper.rb
|
4
|
-
class Zeta
|
5
|
-
def self.
|
5
|
+
class Zeta::RSpec
|
6
|
+
def self.ensure_contracts_present(force = false)
|
6
7
|
Zeta.verbose = false
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
if force || !File.directory?(Zeta.cache_dir)
|
9
|
+
update_contracts
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.update_contracts
|
14
|
+
RSpec.describe "Update Zeta infrastructure once" do
|
15
|
+
it "download infrastructure" do
|
16
|
+
expect{
|
17
|
+
Zeta.config
|
18
|
+
}.to_not raise_error
|
19
|
+
end
|
14
20
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
end
|
21
|
+
it "download specifications" do
|
22
|
+
expect{
|
23
|
+
Zeta.update_contracts
|
24
|
+
}.to_not raise_error
|
20
25
|
end
|
21
26
|
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.run
|
30
|
+
Zeta.verbose = false
|
31
|
+
ensure_contracts_present
|
32
|
+
Zeta.update_own_contracts
|
22
33
|
Zeta.contracts_fulfilled?(Lacerda::Reporters::RSpec.new)
|
23
34
|
end
|
24
35
|
end
|
data/lib/zeta/runner.rb
CHANGED
@@ -40,6 +40,10 @@ class Zeta::Runner
|
|
40
40
|
options[:silent] = s
|
41
41
|
end
|
42
42
|
|
43
|
+
opts.on("-t", "--trace", "Print exception stack traces") do |t|
|
44
|
+
options[:trace] = t
|
45
|
+
end
|
46
|
+
|
43
47
|
opts.separator ""
|
44
48
|
opts.separator "Common options:".yellow
|
45
49
|
|
@@ -85,7 +89,7 @@ class Zeta::Runner
|
|
85
89
|
end
|
86
90
|
end
|
87
91
|
rescue => e
|
88
|
-
if options[:
|
92
|
+
if options[:trace]
|
89
93
|
raise
|
90
94
|
else
|
91
95
|
puts "ERROR: ".red + e.message
|
data/lib/zeta/version.rb
CHANGED
data/zeta.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
21
|
spec.add_runtime_dependency 'rake', '~> 10.2'
|
22
|
-
spec.add_runtime_dependency 'lacerda', '~> 0.
|
22
|
+
spec.add_runtime_dependency 'lacerda', '~> 0.12'
|
23
23
|
spec.add_runtime_dependency 'activesupport'
|
24
24
|
spec.add_runtime_dependency 'httparty', '~> 0.13'
|
25
25
|
spec.add_runtime_dependency 'colorize'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zeta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jannis Hermanns
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.12'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
40
|
+
version: '0.12'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: activesupport
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|