zeta 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cc1fa795152d2eafcd724bf92624b98e6a24c3c0
4
- data.tar.gz: de69bbd58d346f4d8d23243b5aa487cf4dd75443
3
+ metadata.gz: 688a5287b3424e9c923bbd1f9e118ae6b61c9546
4
+ data.tar.gz: c9e220790340b1abd33bd3fd1fa913bc9e9eef46
5
5
  SHA512:
6
- metadata.gz: 26af9adcdd2b7a9de94f10a21261ad15a5ea3784c68cd05c462fbd3c64c5f0ab1a0bf2e279018ce8448b75f439b84706defc376467158738b1a908b09f204304
7
- data.tar.gz: 49ade2a3d0b12551600eccd0599b91e6254d9deefeeca6f22a82158240ebf3e6225ba11500377dcc29680fc303cb3c6d6ca73e1a05e1812575a674914331774d
6
+ metadata.gz: ce397967dbcee851e5b438d88e360de94f5718adbb34b11efe8dac2c6fe98ade363a8751642cdf32ae3cbd2cdf86287171b712af45bb44ce4857877e0d9a49f0
7
+ data.tar.gz: ae3cbf5c2e485478ddb9c591ee223a36dd7cda9b291c8d9d7e179002f68897595af98fa2fa6a1bb1899a41a9ab1b983ae7b18ac09bf6afdf2731dcfa2679ebf5
data/CHANGELOG.markdown CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.5.0 (02-Nov-15)
2
+ - update lacerda
3
+ - use lacerda stdout reporter by default
4
+
1
5
  # 0.4.0 (30-Oct-15)
2
6
  - update lacerda which uses ServiceName::Object in favor of ServiceName:Object
3
7
 
data/README.md CHANGED
@@ -46,7 +46,7 @@ Each service has to contain two files in order for *Zeta* to do its job:
46
46
  These are simple markdown files in the wonderful [MSON](https://github.com/apiaryio/mson) format. Let's look at the contracts dir of **MessageService**, shall we?
47
47
 
48
48
  ### A publish specification:
49
- `contracts/publish.mson:`
49
+ `contracts/publish.mson`:
50
50
  ```shell
51
51
  # Data Structures
52
52
  This file defines what MessageService may publish.
@@ -62,7 +62,7 @@ This file defines what MessageService may publish.
62
62
  So far so good. This way *MessageService* can tell the world what exactly it means when a `Message` object is published. Much the same, the *NotificationService* could define which properties of a `Message` object from the `MessageService` it is actually interested in:
63
63
 
64
64
  ### A consume specification:
65
- `contracts/consume.mson:`
65
+ `contracts/consume.mson`:
66
66
  ```shell
67
67
  # Data Structures
68
68
  We just consume one object type, and it comes from the MessageService. Check it out!
@@ -75,7 +75,7 @@ We just consume one object type, and it comes from the MessageService. Check it
75
75
  As you can see, this consumer expects the `recipient_id` property to be present when a `Message` object is received from `MessageService`. While a publish specification just defines objects, a consume specification prefixes the names of objects it consumes with the name of the service publishing the object. As in our example above:
76
76
 
77
77
  ```
78
- # MessageService:Message
78
+ # MessageService::Message
79
79
  | `---------- object name
80
80
  `------------------------- service name
81
81
 
@@ -139,7 +139,7 @@ You typically just create the above file once in each project and then don't tou
139
139
 
140
140
  Here's how the infrastructure configuration file might look for our example above:
141
141
 
142
- `git@github.com:jensmander/zeta-config/infrastructure/master.yml:`
142
+ `git@github.com:jensmander/zeta-config/infrastructure/master.yml`:
143
143
  ```yaml
144
144
  MessageService:
145
145
  github:
@@ -164,7 +164,7 @@ Whenever you add a service to the infrastructure, you just add it to this centra
164
164
 
165
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, the use your username and generate an API token to use as the password.
166
166
 
167
- ### 4. Usage: Command line
167
+ ### 4. Usage: Without ruby (CLI)
168
168
 
169
169
  Zeta comes with a `zeta` command that takes care of all the things:
170
170
 
@@ -213,9 +213,9 @@ $ zeta -e development update_own_contracts validate
213
213
 
214
214
  Otherwise it will exit with an error and display any contract violations in JSON.
215
215
 
216
- ### 5. Usage: in ruby
216
+ ### 5. Usage: With ruby
217
217
 
218
- If you use *Zeta* in ruby, it will automatically know the current service, i.e. the one that it's running in. It will create a singleton `Lacerda::Infrastructure` instance from the [Lacerda gem](https://github.com/moviepilot/Lacerda), which gives you access to a bunch of interesting functions. If you're using [pry](https://github.com/pry/pry), go ahead and do a quick `ls Zeta` and you will something like this, likely outdated, list:
218
+ If you use *Zeta* in ruby, it will automatically know the current service, i.e. the one that it's running in. It will create a singleton `Lacerda::Infrastructure` instance from the [Lacerda gem](https://github.com/moviepilot/lacerda#readme), which gives you access to a bunch of interesting functions. If you're using [pry](https://github.com/pry/pry#readme), go ahead and do a quick `ls Zeta` and you will something like this, likely outdated, list:
219
219
 
220
220
  ```ruby
221
221
  [1] pry(main)> ls Zeta
@@ -231,6 +231,6 @@ Zeta.methods:
231
231
  Each and every one of these goes directly to your instance `Lacerda::Infrastructure`, as defined by `config/zeta.yml`. Feel free to explore them a bit, but the ones' that might be of most interest are:
232
232
 
233
233
  - `Zeta.validate_object_to_publish('Post', data_to_send)` makes sure that the content in `data_to_send` conforms to your 'Post' specification in your local `publish.mson`
234
- - `Zeta.consume_object('MessageService::Message', received_data)` will give you an instance of the [Blumquist](https://github.com/moviepilot/blumquist) class, which is an obect that has getters for all properties you specified in `consume.mson`
234
+ - `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
235
 
236
236
  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.
data/lib/zeta.rb CHANGED
@@ -9,7 +9,8 @@ class Zeta
9
9
  # Not using the SingleForwardable module here so that, when
10
10
  # somebody tries to figure out how Zeta works by looking at
11
11
  # its methods, they don't get confused.
12
- Zeta::Instance.instance_methods.each do |method|
12
+ methods = Zeta::Instance.instance_methods - Object.instance_methods
13
+ methods.each do |method|
13
14
  define_singleton_method method do |*args|
14
15
  send_args = [method, args].flatten.compact
15
16
  MUTEX.synchronize do
data/lib/zeta/instance.rb CHANGED
@@ -42,7 +42,8 @@ class Zeta
42
42
  end
43
43
 
44
44
  def contracts_fulfilled?
45
- infrastructure.contracts_fulfilled?
45
+ reporter = Lacerda::Reporters::Stdout.new(verbose: verbose?)
46
+ infrastructure.contracts_fulfilled?(reporter)
46
47
  end
47
48
 
48
49
  def infrastructure
data/lib/zeta/runner.rb CHANGED
@@ -81,11 +81,8 @@ class Zeta::Runner
81
81
  puts "Validating your infrastructure with #{zeta.infrastructure.publishers.length} publishers and #{zeta.infrastructure.consumers.length} consumers..." if options[:verbose]
82
82
  zeta.contracts_fulfilled?
83
83
  unless zeta.errors.empty?
84
- puts JSON.pretty_generate(zeta.errors)
85
- puts "#{zeta.errors.length} contract violations".red
86
84
  exit(-1)
87
85
  end
88
- puts "All contracts valid 🙌".green if options[:verbose]
89
86
  end
90
87
  rescue => e
91
88
  if options[:verbose]
data/lib/zeta/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Zeta
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
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.7'
22
+ spec.add_runtime_dependency 'lacerda', '~> 0.8'
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.0
4
+ version: 0.5.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-10-30 00:00:00.000000000 Z
11
+ date: 2015-11-02 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.7'
33
+ version: '0.8'
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.7'
40
+ version: '0.8'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement