washout_builder 1.5.6 → 1.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +33 -0
- data/.gitignore +4 -5
- data/.travis.yml +21 -16
- data/Appraisals +3 -43
- data/Gemfile +8 -0
- data/Rakefile +9 -1
- data/app/controllers/washout_builder/washout_builder_controller.rb +6 -2
- data/gemfiles/rails_4.0.0.gemfile +9 -0
- data/gemfiles/rails_4.1.1.gemfile +9 -0
- data/gemfiles/rails_4.2.0.gemfile +9 -0
- data/gemfiles/rails_5.0.0.gemfile +10 -0
- data/lib/washout_builder.rb +1 -4
- data/lib/washout_builder/router.rb +16 -0
- data/lib/washout_builder/version.rb +2 -2
- data/spec/app/controllers/washout_builder_controller_spec.rb +7 -3
- data/spec/lib/washout_builder_spec.rb +4 -2
- data/spec/spec_helper.rb +12 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d0f00926e145efd9e05172728a2d3e90cbb118e
|
4
|
+
data.tar.gz: d50062a30205f3322e27636417ed926c4d314050
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a967c2fcb7ad06118ad73f46134dfdef86dff5b90f6e85ff842ae5af0db7c331544f60640a2a432ba1ed1522f420fbd2e42c792b4e5304c52f28d4ea7bb6b551
|
7
|
+
data.tar.gz: c5387118f460fe3b9f407f612aa8b85a1e1abf6d56f1ee6aab64eb17b0e4378482f08a10f8a715f1b43dc78f736d592811b6f3244c9b6b62aa56e4afab3b1d03
|
data/.codeclimate.yml
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
---
|
2
|
+
engines:
|
3
|
+
brakeman:
|
4
|
+
enabled: true
|
5
|
+
duplication:
|
6
|
+
enabled: true
|
7
|
+
config:
|
8
|
+
languages:
|
9
|
+
- ruby
|
10
|
+
- javascript
|
11
|
+
- python
|
12
|
+
- php
|
13
|
+
fixme:
|
14
|
+
enabled: true
|
15
|
+
rubocop:
|
16
|
+
enabled: true
|
17
|
+
ratings:
|
18
|
+
paths:
|
19
|
+
- Gemfile.lock
|
20
|
+
- "**.erb"
|
21
|
+
- "**.haml"
|
22
|
+
- "**.rb"
|
23
|
+
- "**.rhtml"
|
24
|
+
- "**.slim"
|
25
|
+
- "**.inc"
|
26
|
+
- "**.js"
|
27
|
+
- "**.jsx"
|
28
|
+
- "**.module"
|
29
|
+
- "**.php"
|
30
|
+
- "**.py"
|
31
|
+
exclude_paths:
|
32
|
+
- config/
|
33
|
+
- spec/
|
data/.gitignore
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
|
1
|
+
.rbx/
|
2
2
|
.bundle/
|
3
3
|
*.gem
|
4
4
|
.idea/
|
5
|
+
.ruby-gemset
|
6
|
+
.ruby-version
|
5
7
|
.rvmrc
|
6
8
|
*.swp
|
7
9
|
log/*.log
|
@@ -9,10 +11,7 @@ pkg/
|
|
9
11
|
spec/dummy/db/*.sqlite3
|
10
12
|
spec/dummy/log/*.log
|
11
13
|
spec/dummy/tmp/
|
14
|
+
gemfiles/*.lock
|
12
15
|
coverage
|
13
16
|
tags
|
14
17
|
Gemfile.lock
|
15
|
-
/nbproject/
|
16
|
-
/.git-rewrite/
|
17
|
-
/bin/**
|
18
|
-
gemfiles
|
data/.travis.yml
CHANGED
@@ -1,26 +1,31 @@
|
|
1
|
+
language: ruby
|
1
2
|
sudo: false
|
3
|
+
|
2
4
|
cache: bundler
|
3
|
-
|
5
|
+
|
6
|
+
bundler_args: --no-deployment --binstubs=./bin
|
7
|
+
|
4
8
|
before_install:
|
5
9
|
- "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc"
|
6
10
|
- gem install bundler
|
11
|
+
- gem update bundler
|
12
|
+
|
13
|
+
install:
|
14
|
+
- bundle install --path vendor/bundle
|
15
|
+
|
16
|
+
script:
|
17
|
+
- echo $BUNDLE_GEMFILE
|
18
|
+
- bundle exec rake
|
19
|
+
|
20
|
+
gemfile:
|
21
|
+
- gemfiles/rails_4.0.0.gemfile
|
22
|
+
- gemfiles/rails_4.1.1.gemfile
|
23
|
+
- gemfiles/rails_4.2.0.gemfile
|
24
|
+
- gemfiles/rails_5.0.0.gemfile
|
7
25
|
rvm:
|
8
|
-
- 2.0.0
|
9
|
-
- 2.1.5
|
10
|
-
- 2.1.8
|
11
26
|
- 2.2.2
|
12
|
-
- 2.2.
|
13
|
-
- 2.3.0
|
27
|
+
- 2.2.5
|
14
28
|
- 2.3.1
|
15
|
-
matrix:
|
16
|
-
exclude:
|
17
|
-
- rvm: 2.0.0
|
18
|
-
gemfile: gemfiles/rails_5.0.0.gemfile
|
19
|
-
- rvm: 2.1.5
|
20
|
-
gemfile: gemfiles/rails_5.0.0.gemfile
|
21
|
-
- rvm: 2.1.8
|
22
|
-
gemfile: gemfiles/rails_5.0.0.gemfile
|
23
|
-
env:
|
24
|
-
- RAILS_ENV=test RACK_ENV=test
|
25
29
|
notifications:
|
26
30
|
email: false
|
31
|
+
|
data/Appraisals
CHANGED
@@ -2,55 +2,15 @@ appraise "rails-4.0.0" do
|
|
2
2
|
gem "rails", "4.0.0"
|
3
3
|
end
|
4
4
|
|
5
|
-
appraise "rails-4.0.2" do
|
6
|
-
gem "rails", "4.0.2"
|
7
|
-
end
|
8
|
-
|
9
5
|
appraise "rails-4.1.1" do
|
10
6
|
gem "rails", "4.1.1"
|
11
7
|
end
|
12
8
|
|
13
|
-
appraise "rails-4.1.4" do
|
14
|
-
gem "rails", "4.1.4"
|
15
|
-
end
|
16
|
-
|
17
|
-
appraise "rails-4.1.9" do
|
18
|
-
gem "rails", "4.1.9"
|
19
|
-
end
|
20
|
-
|
21
9
|
appraise "rails-4.2.0" do
|
22
10
|
gem "rails", "4.2.0"
|
23
11
|
end
|
24
12
|
|
25
|
-
appraise "rails-
|
26
|
-
gem "rails", "
|
27
|
-
|
28
|
-
|
29
|
-
appraise "rails-4.2.2" do
|
30
|
-
gem "rails", "4.2.2"
|
31
|
-
end
|
32
|
-
|
33
|
-
appraise "rails-4.2.3" do
|
34
|
-
gem "rails", "4.2.3"
|
13
|
+
appraise "rails-5.0.0" do
|
14
|
+
gem "rails", "5.0.0"
|
15
|
+
gem 'rails-controller-testing'
|
35
16
|
end
|
36
|
-
|
37
|
-
appraise "rails-4.2.4" do
|
38
|
-
gem "rails", "4.2.4"
|
39
|
-
end
|
40
|
-
|
41
|
-
appraise "rails-4.2.4" do
|
42
|
-
gem "rails", "4.2.4"
|
43
|
-
end
|
44
|
-
|
45
|
-
appraise "rails-4.2.5" do
|
46
|
-
gem "rails", "4.2.5"
|
47
|
-
end
|
48
|
-
|
49
|
-
appraise "rails-4.2.6" do
|
50
|
-
gem "rails", "4.2.6"
|
51
|
-
end
|
52
|
-
|
53
|
-
# waiting on this https://github.com/inossidabile/wash_out/pull/211 getting approved first
|
54
|
-
# appraise "rails-5.0.0" do
|
55
|
-
# gem "rails", "5.0.0"
|
56
|
-
# end
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -18,7 +18,15 @@ task default: [:all]
|
|
18
18
|
desc 'Test the plugin under all supported Rails versions.'
|
19
19
|
task :all do |_t|
|
20
20
|
if ENV['TRAVIS']
|
21
|
-
|
21
|
+
# require 'json'
|
22
|
+
# puts JSON.pretty_generate(ENV.to_hash)
|
23
|
+
if ENV['BUNDLE_GEMFILE'] =~ /gemfiles/
|
24
|
+
appraisal_name = ENV['BUNDLE_GEMFILE'].scan(/rails\_(.*)\.gemfile/).flatten.first
|
25
|
+
command_prefix = "appraisal rails-#{appraisal_name}"
|
26
|
+
exec ("#{command_prefix} bundle install && #{command_prefix} bundle exec rspec && bundle exec rake coveralls:push ")
|
27
|
+
else
|
28
|
+
exec(' bundle exec appraisal install && bundle exec rake appraisal spec && bundle exec rake coveralls:push')
|
29
|
+
end
|
22
30
|
else
|
23
31
|
exec('bundle exec appraisal install && bundle exec rake appraisal spec')
|
24
32
|
end
|
@@ -17,7 +17,7 @@ module WashoutBuilder
|
|
17
17
|
#
|
18
18
|
# @api public
|
19
19
|
def all
|
20
|
-
params[:name] =
|
20
|
+
params[:name] = env_controller_path if env_controller_path.present?
|
21
21
|
find_all_routes
|
22
22
|
route_details = params[:name].present? ? controller_is_a_service?(params[:name]) : nil
|
23
23
|
if route_details.present? && defined?(controller_class(params[:name]))
|
@@ -33,6 +33,10 @@ module WashoutBuilder
|
|
33
33
|
|
34
34
|
private
|
35
35
|
|
36
|
+
def env_controller_path
|
37
|
+
request.env['washout_builder.controller_path']
|
38
|
+
end
|
39
|
+
|
36
40
|
# tries to find all services by searching through the rails controller
|
37
41
|
# and returns their namespace, endpoint and a documentation url
|
38
42
|
# @see map_controllers
|
@@ -58,7 +62,7 @@ module WashoutBuilder
|
|
58
62
|
'documentation_url' => service_documentation_url(hash, controller_name)
|
59
63
|
}
|
60
64
|
end
|
61
|
-
end
|
65
|
+
end.uniq{|hash| hash['service_name'] }
|
62
66
|
end
|
63
67
|
|
64
68
|
def generate_wsdl_action
|
data/lib/washout_builder.rb
CHANGED
@@ -8,7 +8,6 @@ require 'active_support/core_ext/string/starts_ends_with'
|
|
8
8
|
|
9
9
|
Gem.find_files('washout_builder/**/*.rb').each { |path| require path }
|
10
10
|
|
11
|
-
|
12
11
|
ActionDispatch::Routing::Mapper.class_eval do
|
13
12
|
alias_method :original_wash_out, :wash_out
|
14
13
|
# Adds the routes for a SOAP endpoint at +controller+.
|
@@ -25,9 +24,7 @@ ActionDispatch::Routing::Mapper.class_eval do
|
|
25
24
|
else
|
26
25
|
controller_class_name = controller_name.to_s.underscore
|
27
26
|
end
|
28
|
-
|
29
|
-
match "#{controller_name}/soap_doc" => WashoutBuilder::Engine, via: :get,
|
30
|
-
defaults: { name: "#{controller_class_name}" },
|
27
|
+
match "#{controller_name}/soap_doc" => WashoutBuilder::Router.new(controller_class_name), via: :get,
|
31
28
|
format: false,
|
32
29
|
as: "#{controller_class_name}_soap_doc"
|
33
30
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module WashoutBuilder
|
2
|
+
# This class is a Rack middleware used to route SOAP requests to a proper
|
3
|
+
# action of a given SOAP controller.
|
4
|
+
class Router
|
5
|
+
|
6
|
+
def initialize(controller_path)
|
7
|
+
@controller_path = controller_path
|
8
|
+
end
|
9
|
+
|
10
|
+
def call(env)
|
11
|
+
env['washout_builder.controller_path'] = @controller_path
|
12
|
+
WashoutBuilderController.action(:all).call(env)
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
@@ -11,8 +11,8 @@ describe WashoutBuilder::WashoutBuilderController, type: :controller do
|
|
11
11
|
|
12
12
|
let(:soap_config) do
|
13
13
|
OpenStruct.new(
|
14
|
-
|
15
|
-
|
14
|
+
camelize_wsdl: false,
|
15
|
+
namespace: '/api/wsdl'
|
16
16
|
)
|
17
17
|
end
|
18
18
|
|
@@ -44,7 +44,11 @@ describe WashoutBuilder::WashoutBuilderController, type: :controller do
|
|
44
44
|
controller.stubs(:controller_class).returns(ApiController)
|
45
45
|
controller.stubs(:controller_is_a_service?).with(params[:name]).returns(route)
|
46
46
|
WashoutBuilder::Document::Generator.expects(:new).with(route, route.defaults[:controller])
|
47
|
-
|
47
|
+
if Rails::VERSION::MAJOR >= 5
|
48
|
+
get :all, params: params
|
49
|
+
else
|
50
|
+
get :all, params
|
51
|
+
end
|
48
52
|
expect(response).to render_template 'wash_with_html/doc'
|
49
53
|
end
|
50
54
|
end
|
@@ -164,7 +164,8 @@ describe WashoutBuilder do
|
|
164
164
|
render soap: { a: params[:a] }
|
165
165
|
end
|
166
166
|
end
|
167
|
-
expect(savon(:answer, a: '')[:answer_response][:a]
|
167
|
+
expect(savon(:answer, a: '')[:answer_response][:a]).to be_nil
|
168
|
+
#[:'@xsi:type']).to eq('xsd:string') -- not returning type as per https://github.com/inossidabile/wash_out/issues/212
|
168
169
|
end
|
169
170
|
|
170
171
|
it 'accept one parameter' do
|
@@ -409,7 +410,8 @@ describe WashoutBuilder do
|
|
409
410
|
end
|
410
411
|
end
|
411
412
|
|
412
|
-
expect(savon(:rocknroll)[:rocknroll_response][:my_value]
|
413
|
+
expect(savon(:rocknroll)[:rocknroll_response][:my_value]).to be_nil
|
414
|
+
#[:'@xsi:type']).to eq('tns:MyValue') # not returning type as per https://github.com/inossidabile/wash_out/issues/212
|
413
415
|
end
|
414
416
|
|
415
417
|
it 'handles incomplete array response' do
|
data/spec/spec_helper.rb
CHANGED
@@ -133,3 +133,15 @@ class Hash
|
|
133
133
|
end
|
134
134
|
end
|
135
135
|
end
|
136
|
+
|
137
|
+
unless defined?(silence_stream) # Rails 5
|
138
|
+
def silence_stream(stream)
|
139
|
+
old_stream = stream.dup
|
140
|
+
stream.reopen(RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ ? 'NUL:' : '/dev/null')
|
141
|
+
stream.sync = true
|
142
|
+
yield
|
143
|
+
ensure
|
144
|
+
stream.reopen(old_stream)
|
145
|
+
old_stream.close
|
146
|
+
end
|
147
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: washout_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bogdanRada
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: wash_out
|
@@ -332,6 +332,7 @@ executables: []
|
|
332
332
|
extensions: []
|
333
333
|
extra_rdoc_files: []
|
334
334
|
files:
|
335
|
+
- ".codeclimate.yml"
|
335
336
|
- ".coveralls.yml"
|
336
337
|
- ".gitignore"
|
337
338
|
- ".rspec"
|
@@ -355,6 +356,10 @@ files:
|
|
355
356
|
- app/views/wash_with_html/all_services.builder
|
356
357
|
- app/views/wash_with_html/doc.builder
|
357
358
|
- config/routes.rb
|
359
|
+
- gemfiles/rails_4.0.0.gemfile
|
360
|
+
- gemfiles/rails_4.1.1.gemfile
|
361
|
+
- gemfiles/rails_4.2.0.gemfile
|
362
|
+
- gemfiles/rails_5.0.0.gemfile
|
358
363
|
- init.rb
|
359
364
|
- lib/washout_builder.rb
|
360
365
|
- lib/washout_builder/document/complex_type.rb
|
@@ -364,6 +369,7 @@ files:
|
|
364
369
|
- lib/washout_builder/engine.rb
|
365
370
|
- lib/washout_builder/env_checker.rb
|
366
371
|
- lib/washout_builder/param.rb
|
372
|
+
- lib/washout_builder/router.rb
|
367
373
|
- lib/washout_builder/soap.rb
|
368
374
|
- lib/washout_builder/type.rb
|
369
375
|
- lib/washout_builder/version.rb
|