Class: HttpStub::Configurer::DSL::StubBuilder
- Inherits:
-
Object
- Object
- HttpStub::Configurer::DSL::StubBuilder
- Defined in:
- lib/http_stub/configurer/dsl/stub_builder.rb
Instance Attribute Summary collapse
-
#request ⇒ Object
readonly
Returns the value of attribute request.
-
#response ⇒ Object
readonly
Returns the value of attribute response.
-
#triggers ⇒ Object
readonly
Returns the value of attribute triggers.
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(default_builder = nil) ⇒ StubBuilder
constructor
A new instance of StubBuilder.
- #invoke(&block) ⇒ Object
- #match_requests(args) ⇒ Object
- #merge!(stub_builder) ⇒ Object
- #respond_with(args = {}, &_block) ⇒ Object
- #schema(type, definition) ⇒ Object
- #trigger(stub_builder_or_builders) ⇒ Object
Constructor Details
#initialize(default_builder = nil) ⇒ StubBuilder
Returns a new instance of StubBuilder.
9 10 11 12 13 14 |
# File 'lib/http_stub/configurer/dsl/stub_builder.rb', line 9 def initialize(default_builder=nil) @request = {} @response = {} @triggers = [] self.merge!(default_builder) if default_builder end |
Instance Attribute Details
#request ⇒ Object (readonly)
Returns the value of attribute request.
7 8 9 |
# File 'lib/http_stub/configurer/dsl/stub_builder.rb', line 7 def request @request end |
#response ⇒ Object (readonly)
Returns the value of attribute response.
7 8 9 |
# File 'lib/http_stub/configurer/dsl/stub_builder.rb', line 7 def response @response end |
#triggers ⇒ Object (readonly)
Returns the value of attribute triggers.
7 8 9 |
# File 'lib/http_stub/configurer/dsl/stub_builder.rb', line 7 def triggers @triggers end |
Instance Method Details
#build ⇒ Object
47 48 49 |
# File 'lib/http_stub/configurer/dsl/stub_builder.rb', line 47 def build HttpStub::Configurer::Request::Stub.new(request: @request, response: @response, triggers: @triggers) end |
#invoke(&block) ⇒ Object
37 38 39 |
# File 'lib/http_stub/configurer/dsl/stub_builder.rb', line 37 def invoke(&block) block.arity == 0 ? self.instance_eval(&block) : (yield self) end |
#match_requests(args) ⇒ Object
16 17 18 |
# File 'lib/http_stub/configurer/dsl/stub_builder.rb', line 16 def match_requests(args) self.tap { @request.deep_merge!(args) } end |
#merge!(stub_builder) ⇒ Object
41 42 43 44 45 |
# File 'lib/http_stub/configurer/dsl/stub_builder.rb', line 41 def merge!(stub_builder) self.match_requests(stub_builder.request) self.respond_with(stub_builder.response) self.trigger(stub_builder.triggers) end |
#respond_with(args = {}, &_block) ⇒ Object
24 25 26 27 28 |
# File 'lib/http_stub/configurer/dsl/stub_builder.rb', line 24 def respond_with(args={}, &_block) resolved_args = args resolved_args = yield HttpStub::Configurer::DSL::RequestReferencer.new if block_given? self.tap { @response.deep_merge!(resolved_args) } end |
#schema(type, definition) ⇒ Object
20 21 22 |
# File 'lib/http_stub/configurer/dsl/stub_builder.rb', line 20 def schema(type, definition) { schema: { type: type, definition: definition } } end |
#trigger(stub_builder_or_builders) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/http_stub/configurer/dsl/stub_builder.rb', line 30 def trigger(stub_builder_or_builders) resolved_builders = stub_builder_or_builders.is_a?(Array) ? stub_builder_or_builders : [ stub_builder_or_builders ] @triggers.concat(resolved_builders) self end |