Skip to content

Rails 5 support #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ AllCops:
Exclude:
- Gemfile

Style/Encoding:
Enabled: false
Style/SymbolArray:
EnforcedStyle: brackets
Style/LineLength:
Expand Down
2 changes: 1 addition & 1 deletion Rakefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# frozen_string_literal: true
# encoding: UTF-8
# frozen_string_literal: true

require 'bundler/gem_tasks'
require 'rubocop/rake_task'
Expand Down
2 changes: 1 addition & 1 deletion lib/cli.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def to_struct(hash)
# @param mockserver [Boolean] true to use mockserver, false to use proxy
# @yieldparam [AbstractClient] a mockserver or a proxy client
# @yieldparam [Struct] a struct created from options hash
def execute_command(mockserver = false, data_required = false, error_msg = '--data option must be provided', &_)
def execute_command(mockserver = false, data_required = false, error_msg = '--data option must be provided', &_arg)
print_parameters(options)
struct_options = to_struct({ data: nil }.merge(options))
if data_required && !options['data']
Expand Down
14 changes: 0 additions & 14 deletions lib/mockserver-client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,3 @@
require_relative './mockserver/version'
require_relative './mockserver/mock_server_client'
require_relative './mockserver/proxy_client'

# Setup serialization correctly with multi_json
require 'json/pure'

# To fix serialization bugs. See: http://prettystatemachine.blogspot.com/2010/09/typeerrors-in-tojson-make-me-briefly.html
# rubocop:disable Lint/UnifiedInteger
class Fixnum
def to_json(_)
to_s
end
end

require 'multi_json'
MultiJson.use(:json_pure)
8 changes: 8 additions & 0 deletions lib/mockserver/model/enum.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@ def pre_process_value(value)
def to_s
@value.to_s
end

def as_json(_arg)
@value.to_s
end

def to_json(_arg)
"\"#{@value}\""
end
end

# Subclass of Enum that has a list of symbols as allowed values.
Expand Down
12 changes: 6 additions & 6 deletions lib/mockserver/model/expectation.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def populate_from_payload(payload)
# Method to setup the request on the expectation object
# @yieldparam [Request] the request that this expectation references
# @return [Expectation] this object according to the the builder pattern
def request(&_)
def request(&_arg)
if block_given?
@request ||= Request.new
yield @request
Expand All @@ -57,7 +57,7 @@ def request(&_)
# Method to setup the response on the expectation object
# @yieldparam [Response] the response that this expectation references
# @return [Expectation] this object according to the the builder pattern
def response(&_)
def response(&_arg)
if block_given?
@response ||= Response.new
yield @response
Expand All @@ -68,7 +68,7 @@ def response(&_)
# Method to setup the request on the expectation object
# @yieldparam [Forward] the forward object that this expectation references
# @return [Expectation] this object according to the the builder pattern
def forward(&_)
def forward(&_arg)
if block_given?
@forward ||= Forward.new
yield @forward
Expand Down Expand Up @@ -96,8 +96,8 @@ def forward=(forward)

# Override to_json method
# @return [String] the json representation for this object
def to_json(*p)
to_hash.to_json(*p)
def to_json(*param)
to_hash.to_json(*param)
end

# Convert to hash
Expand All @@ -124,7 +124,7 @@ def child_class

# DSL method for creating expectation
module DSL
def expectation(&_)
def expectation(&_arg)
expectation = Expectation.new
yield expectation if block_given?
expectation
Expand Down
2 changes: 1 addition & 1 deletion lib/mockserver/model/forward.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class Forward < Hashie::Dash

# DSL methods for forward
module DSL
def forward(&_)
def forward(&_arg)
obj = Forward.new
yield obj if block_given?
obj
Expand Down
9 changes: 3 additions & 6 deletions lib/mockserver/model/request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,10 @@ class Request < Hashie::Trash
property :cookies, default: Cookies.new([])
property :headers, default: Headers.new([])
property :body, transform_with: (lambda do |body|
if body && body.type.to_s == 'BINARY'
if body&.type&.to_s == 'BINARY'
body.type = :STRING
body.value = Base64.decode64(body.value)
end

body
end)

Expand Down Expand Up @@ -67,7 +66,7 @@ def child_class

# DSL methods related to requests
module DSL
def request(method, path, &_)
def request(method, path, &_arg)
obj = Request.new(method: method, path: path)
yield obj if block_given?
obj
Expand All @@ -76,9 +75,7 @@ def request(method, path, &_)
def request_from_json(payload)
body = payload['body']

if body && body.is_a?(String)
payload['body'] = { 'type' => :STRING, 'value' => body }
end
payload['body'] = { 'type' => :STRING, 'value' => body } if body&.is_a?(String)

request = Request.new(symbolize_keys(payload))
yield request if block_given?
Expand Down
2 changes: 1 addition & 1 deletion lib/mockserver/model/response.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class Response < Hashie::Dash

# DSL Methods for a response
module DSL
def response(&_)
def response(&_arg)
obj = Response.new
yield obj if block_given?
obj
Expand Down
2 changes: 1 addition & 1 deletion lib/mockserver/model/times.rb
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def at_least(num)
Times.new(remaining_times: num, unlimited: true)
end

def times(&_)
def times(&_arg)
obj = once
yield obj if block_given?
obj
Expand Down
3 changes: 2 additions & 1 deletion lib/mockserver/utility_methods.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ module MockServer::UtilityMethods
# @return [Hash] the transformed hash
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/MethodLength
def camelized_hash(obj)
obj = obj && obj.respond_to?(:to_hash) ? obj.to_hash : obj
obj = obj&.respond_to?(:to_hash) ? obj.to_hash : obj

if obj.is_a?(Hash)
obj.each_with_object({}) do |(k, v), acc|
Expand Down Expand Up @@ -58,3 +58,4 @@ def parse_string_to_json(response)
response
end
end
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/MethodLength
18 changes: 8 additions & 10 deletions mockserver-client.gemspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# coding: utf-8
# frozen_string_literal: true

lib = File.expand_path('../lib', __FILE__)
lib = File.expand_path('lib', __dir__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'mockserver/version'

Expand All @@ -14,8 +13,8 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
spec.summary = 'A Ruby client for MockServer'
spec.description = 'A Ruby Client for MockServer that enables easy mocking of any system you integrate with via HTTP or HTTPS (i.e. services, web sites, etc)'

spec.required_ruby_version = '>= 2.0'
spec.required_rubygems_version = '~> 2.0'
spec.required_ruby_version = '>= 2.3'
spec.required_rubygems_version = '~> 2.3'

spec.files = `git ls-files -z`.split("\x0")
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
Expand All @@ -25,16 +24,15 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
spec.add_development_dependency 'bundler', '~> 1'
spec.add_development_dependency 'rake', '~> 10.3'
spec.add_development_dependency 'rspec', '~> 3.0'
spec.add_development_dependency 'rubocop', '~> 0.23'
spec.add_development_dependency 'simplecov', '~> 0.8'
spec.add_development_dependency 'webmock'
spec.add_development_dependency 'rubocop', '~> 0.23'

spec.add_dependency 'activesupport', '>= 4.1'
spec.add_dependency 'colorize', '~> 0.7'
spec.add_dependency 'hashie', '~> 3.0'
spec.add_dependency 'json', '~> 1.8'
spec.add_dependency 'json_pure', '~> 1.8'
spec.add_dependency 'activesupport', '~> 4.1'
spec.add_dependency 'rest-client'
spec.add_dependency 'json', '>= 1.8'
spec.add_dependency 'logging_factory', '~> 0.0.2'
spec.add_dependency 'rest-client', '>= 1.7'
spec.add_dependency 'thor', '~> 0.19'
spec.add_dependency 'colorize', '~> 0.7'
end
1 change: 1 addition & 0 deletions spec/integration/mock_client_integration_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -170,3 +170,4 @@ def setup_request(request)
it_behaves_like 'a successful mock response'
end
end
# rubocop:enable Metrics/BlockLength
1 change: 1 addition & 0 deletions spec/mockserver/builder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -135,3 +135,4 @@
end
end
end
# rubocop:enable Metrics/BlockLength
1 change: 1 addition & 0 deletions spec/mockserver/mock_client_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,4 @@
expect(client.retrieve(request(:POST, '/login')).code).to eq(200)
end
end
# rubocop:enable Metrics/BlockLength
1 change: 1 addition & 0 deletions spec/mockserver/model/dsl_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,4 @@
end
end
end
# rubocop:enable Metrics/BlockLength