Module: PinchHitter
Defined Under Namespace
Modules: Message, Service
Constant Summary
collapse
- VERSION =
"0.7.0"
Instance Attribute Summary collapse
Instance Method Summary
collapse
#determine_content_type
#json_message, #valid_json?
#no_cache, #service_options, #silence_console, #start_service, #stop_service
Instance Attribute Details
#message_store ⇒ Object
Returns the value of attribute message_store.
10
11
12
|
# File 'lib/pinch_hitter.rb', line 10
def message_store
@message_store
end
|
Instance Method Details
#connect(host, port) ⇒ Object
16
17
18
|
# File 'lib/pinch_hitter.rb', line 16
def connect(host, port)
self.session = Net::HTTP.new host, port
end
|
#messages_directory=(dir) ⇒ Object
#prime(endpoint, message, overrides = {}) ⇒ Object
28
29
30
|
# File 'lib/pinch_hitter.rb', line 28
def prime(endpoint, message, overrides={})
store endpoint, message_store.load(message, overrides)
end
|
#received_messages(endpoint) ⇒ Object
47
48
49
|
# File 'lib/pinch_hitter.rb', line 47
def received_messages(endpoint)
request_log(endpoint).map { |request| request.body }
end
|
#register_module(endpoint, handler) ⇒ Object
37
38
39
|
# File 'lib/pinch_hitter.rb', line 37
def register_module(endpoint, handler)
@session.post "/register_module?endpoint=#{endpoint}", Marshal.dump(handler)
end
|
#request_log(endpoint) ⇒ Object
41
42
43
44
45
|
# File 'lib/pinch_hitter.rb', line 41
def request_log(endpoint)
requests = @session.get "/received_requests?endpoint=#{endpoint}"
requests = JSON.parse(requests.body)['requests']
requests.map { |h| Struct.new(:body, :headers).new(h['body'], h['headers']) }
end
|
#reset ⇒ Object
24
25
26
|
# File 'lib/pinch_hitter.rb', line 24
def reset
@session.post '/reset', ''
end
|
#session=(session) ⇒ Object
20
21
22
|
# File 'lib/pinch_hitter.rb', line 20
def session=(session)
@session = session
end
|
#store(endpoint, content) ⇒ Object
32
33
34
35
|
# File 'lib/pinch_hitter.rb', line 32
def store(endpoint, content)
content_type = determine_content_type(content)
@session.post "/store?endpoint=#{endpoint}", content, 'Content-Type' => content_type
end
|