shokkenki 0.0.0 → 0.0.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.
- data/lib/shokkenki/version.rb +1 -1
- metadata +21 -66
- data/lib/shokkenki/configuration.rb +0 -5
- data/lib/shokkenki/consumer/consumer_role.rb +0 -26
- data/lib/shokkenki/consumer/interaction.rb +0 -24
- data/lib/shokkenki/consumer/patronage.rb +0 -29
- data/lib/shokkenki/consumer/request.rb +0 -14
- data/lib/shokkenki/consumer/response.rb +0 -11
- data/lib/shokkenki/consumer/rspec/example_group_binding.rb +0 -14
- data/lib/shokkenki/consumer/rspec/rspec_configuration.rb +0 -13
- data/lib/shokkenki/consumer/rspec.rb +0 -2
- data/lib/shokkenki/consumer/session.rb +0 -50
- data/lib/shokkenki/consumer/simplification.rb +0 -14
- data/lib/shokkenki/consumer/ticket.rb +0 -38
- data/lib/shokkenki/shokkenki.rb +0 -12
data/lib/shokkenki/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shokkenki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,48 +9,48 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-11-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: shokkenki-consumer
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 0.0.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: 0.0.2
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
31
|
+
name: shokkenki-provider
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - '='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
38
|
-
type: :
|
37
|
+
version: 0.0.2
|
38
|
+
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - '='
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: 0.0.2
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: rake
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
51
|
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 10.0.0
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,62 +58,17 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
62
|
-
-
|
63
|
-
name: json
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ! '>='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
70
|
-
type: :development
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ! '>='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: timecop
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '0'
|
86
|
-
type: :development
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
94
|
-
description: Consumer-driven contracts recorded from real examples.
|
61
|
+
version: 10.0.0
|
62
|
+
description: Example-driven consumer-driven contracts.
|
95
63
|
email: brent@fuglylogic.com
|
96
64
|
executables: []
|
97
65
|
extensions: []
|
98
66
|
extra_rdoc_files: []
|
99
67
|
files:
|
100
|
-
- lib/shokkenki/configuration.rb
|
101
|
-
- lib/shokkenki/consumer/consumer_role.rb
|
102
|
-
- lib/shokkenki/consumer/interaction.rb
|
103
|
-
- lib/shokkenki/consumer/patronage.rb
|
104
|
-
- lib/shokkenki/consumer/request.rb
|
105
|
-
- lib/shokkenki/consumer/response.rb
|
106
|
-
- lib/shokkenki/consumer/rspec.rb
|
107
|
-
- lib/shokkenki/consumer/rspec/example_group_binding.rb
|
108
|
-
- lib/shokkenki/consumer/rspec/rspec_configuration.rb
|
109
|
-
- lib/shokkenki/consumer/session.rb
|
110
|
-
- lib/shokkenki/consumer/simplification.rb
|
111
|
-
- lib/shokkenki/consumer/ticket.rb
|
112
|
-
- lib/shokkenki/shokkenki.rb
|
113
68
|
- lib/shokkenki/version.rb
|
114
69
|
homepage: http://github.com/brentsnook/shokkenki
|
115
70
|
licenses:
|
116
|
-
-
|
71
|
+
- GPL2
|
117
72
|
post_install_message:
|
118
73
|
rdoc_options:
|
119
74
|
- --charset=UTF-8
|
@@ -124,7 +79,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
124
79
|
requirements:
|
125
80
|
- - ! '>='
|
126
81
|
- !ruby/object:Gem::Version
|
127
|
-
version: 1.
|
82
|
+
version: '1.9'
|
128
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
84
|
none: false
|
130
85
|
requirements:
|
@@ -133,11 +88,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
88
|
version: '0'
|
134
89
|
segments:
|
135
90
|
- 0
|
136
|
-
hash:
|
91
|
+
hash: 2988723278780647956
|
137
92
|
requirements: []
|
138
93
|
rubyforge_project:
|
139
94
|
rubygems_version: 1.8.24
|
140
95
|
signing_key:
|
141
96
|
specification_version: 3
|
142
|
-
summary: shokkenki-0.0.
|
97
|
+
summary: shokkenki-0.0.2
|
143
98
|
test_files: []
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'shokkenki/consumer/patronage'
|
2
|
-
require 'shokkenki/consumer/simplification'
|
3
|
-
|
4
|
-
module Shokkenki
|
5
|
-
module Consumer
|
6
|
-
class ConsumerRole
|
7
|
-
include Shokkenki::Consumer::Simplification
|
8
|
-
|
9
|
-
attr_reader :name, :patronages
|
10
|
-
|
11
|
-
def initialize arguments
|
12
|
-
@name = simplify(arguments[:name])
|
13
|
-
@patronages = {}
|
14
|
-
end
|
15
|
-
|
16
|
-
def patronage provider_name
|
17
|
-
@patronages[simplify(provider_name)] ||= Shokkenki::Consumer::Patronage.new :name => provider_name, :consumer => self
|
18
|
-
end
|
19
|
-
|
20
|
-
def tickets
|
21
|
-
@patronages.values.collect &:ticket
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'shokkenki/consumer/request'
|
2
|
-
require 'shokkenki/consumer/response'
|
3
|
-
|
4
|
-
module Shokkenki
|
5
|
-
module Consumer
|
6
|
-
class Interaction
|
7
|
-
|
8
|
-
attr_reader :label, :request, :response
|
9
|
-
|
10
|
-
def initialize attributes
|
11
|
-
@label = attributes[:label]
|
12
|
-
end
|
13
|
-
|
14
|
-
def requested_with request_attributes
|
15
|
-
@request = Shokkenki::Consumer::Request.new request_attributes
|
16
|
-
end
|
17
|
-
|
18
|
-
def responds_with response_attributes
|
19
|
-
@response = Shokkenki::Consumer::Response.new response_attributes
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'shokkenki/consumer/ticket'
|
2
|
-
require 'shokkenki/consumer/interaction'
|
3
|
-
require 'shokkenki/consumer/simplification'
|
4
|
-
|
5
|
-
module Shokkenki
|
6
|
-
module Consumer
|
7
|
-
class Patronage
|
8
|
-
include Shokkenki::Consumer::Simplification
|
9
|
-
|
10
|
-
attr_reader :name, :consumer
|
11
|
-
|
12
|
-
def initialize attributes
|
13
|
-
@name = simplify(attributes[:name])
|
14
|
-
@consumer = attributes[:consumer]
|
15
|
-
@interactions = []
|
16
|
-
end
|
17
|
-
|
18
|
-
def during interaction_label
|
19
|
-
interaction = Interaction.new(:label => interaction_label)
|
20
|
-
@interactions << interaction
|
21
|
-
interaction
|
22
|
-
end
|
23
|
-
|
24
|
-
def ticket
|
25
|
-
Ticket.new :consumer => @consumer.name, :provider => @name
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'shokkenki/consumer/session'
|
2
|
-
require 'shokkenki/consumer/consumer_role'
|
3
|
-
|
4
|
-
module Shokkenki
|
5
|
-
module Consumer
|
6
|
-
module RSpec
|
7
|
-
module ExampleGroupBinding
|
8
|
-
def shokkenki
|
9
|
-
Shokkenki::Consumer::Session.singleton
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'shokkenki/consumer/rspec/example_group_binding'
|
2
|
-
require 'rspec'
|
3
|
-
|
4
|
-
RSpec.configure do |config|
|
5
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
6
|
-
config.include Shokkenki::Consumer::RSpec::ExampleGroupBinding
|
7
|
-
|
8
|
-
config.before(:each, :shokkenki_consumer => lambda{ |x| true }) do
|
9
|
-
Shokkenki::Consumer::Session.singleton.current_consumer = example.metadata[:shokkenki_consumer]
|
10
|
-
end
|
11
|
-
|
12
|
-
config.after(:suite) { Shokkenki::Consumer::Session.singleton.print_tickets }
|
13
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'shokkenki/consumer/consumer_role'
|
2
|
-
require 'shokkenki/shokkenki'
|
3
|
-
require 'shokkenki/consumer/simplification'
|
4
|
-
|
5
|
-
module Shokkenki
|
6
|
-
module Consumer
|
7
|
-
class Session
|
8
|
-
include Shokkenki::Consumer::Simplification
|
9
|
-
|
10
|
-
attr_reader :consumers, :current_consumer
|
11
|
-
|
12
|
-
def initialize
|
13
|
-
@consumers = {}
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.singleton
|
17
|
-
@instance ||= Session.new
|
18
|
-
end
|
19
|
-
|
20
|
-
def provider provider_name
|
21
|
-
@current_consumer.patronage provider_name
|
22
|
-
end
|
23
|
-
|
24
|
-
def current_consumer= consumer_attributes
|
25
|
-
name = simplify(consumer_attributes[:name])
|
26
|
-
@consumers[name] ||= Shokkenki::Consumer::ConsumerRole.new consumer_attributes
|
27
|
-
@current_consumer = @consumers[name]
|
28
|
-
end
|
29
|
-
|
30
|
-
def stamped_tickets
|
31
|
-
time = Time.now
|
32
|
-
# would rather copy + transform tickets rather than modify
|
33
|
-
# existing state - something to come back to
|
34
|
-
@consumers.values.collect(&:tickets).flatten.map do |ticket|
|
35
|
-
ticket.version = Shokkenki::Version::STRING
|
36
|
-
ticket.time = time
|
37
|
-
ticket
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def print_tickets
|
42
|
-
stamped_tickets.each do |ticket|
|
43
|
-
ticket_path = File.expand_path(File.join(Shokkenki.configuration.ticket_location, ticket.filename))
|
44
|
-
File.open(ticket_path, 'w') { |file| file.write(ticket.to_json) }
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
require 'time'
|
3
|
-
|
4
|
-
module Shokkenki
|
5
|
-
module Consumer
|
6
|
-
class Ticket
|
7
|
-
|
8
|
-
attr_reader :provider, :consumer
|
9
|
-
attr_accessor :time, :version
|
10
|
-
|
11
|
-
def initialize attributes
|
12
|
-
@provider = attributes[:provider]
|
13
|
-
@consumer = attributes[:consumer]
|
14
|
-
end
|
15
|
-
|
16
|
-
def filename
|
17
|
-
"#{@consumer}-#{@provider}.json"
|
18
|
-
end
|
19
|
-
|
20
|
-
def to_hash
|
21
|
-
{
|
22
|
-
:consumer => {
|
23
|
-
:name => @consumer
|
24
|
-
},
|
25
|
-
:provider => {
|
26
|
-
:name => @provider
|
27
|
-
},
|
28
|
-
:time => @time.utc.iso8601,
|
29
|
-
:version => @version
|
30
|
-
}
|
31
|
-
end
|
32
|
-
|
33
|
-
def to_json
|
34
|
-
to_hash.to_json
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|