washout_builder 0.13.5 → 0.13.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.travis.yml +1 -1
- data/CONTRIBUTING.md +44 -0
- data/Gemfile +0 -30
- data/app/controllers/washout_builder/washout_builder_controller.rb +1 -1
- data/lib/washout_builder/version.rb +1 -1
- data/spec/app/controllers/washout_builder_controller_spec.rb +24 -8
- data/spec/lib/washout_builder/document/complex_type_spec.rb +1 -5
- data/spec/lib/washout_builder/document/exception_model_spec.rb +50 -16
- data/spec/lib/washout_builder/document/generator_spec.rb +67 -24
- data/spec/lib/washout_builder/type_spec.rb +22 -0
- data/spec/spec_helper.rb +29 -13
- data/spec/support/complex_types/project_type.rb +0 -1
- data/washout_builder.gemspec +21 -1
- metadata +343 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OTIzNTdkZDJlMzA5Y2I2NmZmMDAzNmI3OTcwZGZiMzYyNzE1ZjJlNQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NWExMWI3ZGFjNDU3NGNkN2E0NjMzMmNiMjQ5ZWJiM2U0YjBiZWNmNQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MWMxYzQ0OTU1ZGFiOTFkNjA2OTg1ZDc2OWZmM2ZkZTM2YWIxNGM0ZmRhZjQ1
|
10
|
+
MjIyOGFjNTAzN2U0YmI1YTQ4OTA4NmU1ZDhkZjZmMzJlMWIwODMzMDZjZjE5
|
11
|
+
YTgxYTNjMjkzZDM0Zjg4NmM5ZTNjMDY2YWVmZjAxOGY4NGQ4NDg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NTdjNTM1MGRkYTdmYWIxOTY0MTE3NGVmYTc4M2RkN2RjNTI5YTY4MjJlYmVl
|
14
|
+
ZTE3MzM2YmY0MDA2OWE5OTgzMzM0MTg5Mzk4ODQwNmNmYzYxYTZmNTA3OWFl
|
15
|
+
NDhkMTAyN2Q5OTIwNTk0MmU1ZjNlZGIxMGI2ZjJmOTVlOTY5NmM=
|
data/.travis.yml
CHANGED
@@ -7,7 +7,7 @@ rvm:
|
|
7
7
|
- jruby-19mode
|
8
8
|
- 2.0.0
|
9
9
|
env:
|
10
|
-
|
10
|
+
- RAILS_ENV=test RACK_ENV=test CODECLIMATE_REPO_TOKEN=6914d2ef5cd8835295d483ff2143e58ed06bb20b25aca3e451be29f8963f76f4
|
11
11
|
addons:
|
12
12
|
code_climate:
|
13
13
|
repo_token: 914d2ef5cd8835295d483ff2143e58ed06bb20b25aca3e451be29f8963f76f4
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# Contributing
|
2
|
+
|
3
|
+
We love pull requests. Here's a quick guide.
|
4
|
+
|
5
|
+
Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
6
|
+
|
7
|
+
Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
|
8
|
+
|
9
|
+
Fork, then clone the repo:
|
10
|
+
|
11
|
+
git clone git@github.com:your-username/washout_builder.git
|
12
|
+
|
13
|
+
Start a feature/bugfix branch.
|
14
|
+
|
15
|
+
Set up your machine:
|
16
|
+
|
17
|
+
bundle install
|
18
|
+
|
19
|
+
Make sure the tests pass:
|
20
|
+
|
21
|
+
bundle exec rake
|
22
|
+
|
23
|
+
Make your change. Add tests for your change. Make the tests pass:
|
24
|
+
|
25
|
+
bundle exec rake
|
26
|
+
|
27
|
+
Push to your fork and [submit a pull request][pr].
|
28
|
+
|
29
|
+
[pr]: https://github.com/bogdanRada/washout_builder/compare
|
30
|
+
|
31
|
+
At this point you're waiting on us. We like to at least comment on pull requests
|
32
|
+
within three business days (and, typically, one business day). We may suggest
|
33
|
+
some changes or improvements or alternatives.
|
34
|
+
|
35
|
+
Some things that will increase the chance that your pull request is accepted:
|
36
|
+
|
37
|
+
* Write tests.
|
38
|
+
* Try to follow this [style guide][style].
|
39
|
+
* Write a [good commit message][commit].
|
40
|
+
|
41
|
+
[style]: https://github.com/thoughtbot/guides/tree/master/style
|
42
|
+
[commit]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
|
43
|
+
|
44
|
+
Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
data/Gemfile
CHANGED
@@ -4,34 +4,4 @@ gemspec
|
|
4
4
|
|
5
5
|
|
6
6
|
gem 'wash_out', git: 'git://github.com/inossidabile/wash_out.git'
|
7
|
-
gem 'wasabi'
|
8
|
-
gem 'savon'
|
9
|
-
gem 'httpi'
|
10
|
-
|
11
|
-
gem 'rspec-rails'
|
12
|
-
gem 'guard'
|
13
|
-
gem 'guard-rspec'
|
14
|
-
gem 'rb-fsevent'
|
15
|
-
gem 'appraisal'
|
16
|
-
gem 'tzinfo'
|
17
|
-
gem 'pry'
|
18
|
-
gem 'simplecov'
|
19
|
-
gem 'simplecov-summary'
|
20
|
-
|
21
|
-
gem 'nori'
|
22
|
-
gem 'nokogiri'
|
23
|
-
|
24
|
-
gem 'capybara'
|
25
|
-
gem 'selenium-webdriver'
|
26
|
-
gem 'headless'
|
27
|
-
gem 'capybara-firebug'
|
28
|
-
gem 'mocha', ">=1.1.0", :require => false
|
29
|
-
#gem "mocha", "~> 0.12.8", :require => false
|
30
|
-
gem 'webmock'
|
31
|
-
gem 'coveralls', require: false
|
32
|
-
gem "codeclimate-test-reporter", group: :test, require: nil
|
33
|
-
|
34
|
-
unless ENV["TRAVIS"]
|
35
|
-
gem 'rvm-tester'
|
36
|
-
end
|
37
7
|
|
@@ -44,7 +44,7 @@ class WashoutBuilder::WashoutBuilderController < ActionController::Base
|
|
44
44
|
|
45
45
|
def controller_is_a_service?(controller)
|
46
46
|
route = all_controllers.detect do |route|
|
47
|
-
route.defaults[:controller].
|
47
|
+
route.defaults[:controller].camelize == controller.camelize && route.defaults[:action] == "_generate_wsdl"
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -1,20 +1,22 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
mock_controller do
|
3
|
-
|
3
|
+
soap_action 'dispatcher_method', :args => nil, :return => nil
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
def dispatcher_method
|
6
|
+
#nothing
|
7
|
+
end
|
8
|
+
end
|
9
9
|
describe WashoutBuilder::WashoutBuilderController, :type => :controller do
|
10
|
-
|
10
|
+
routes { WashoutBuilder::Engine.routes }
|
11
11
|
|
12
12
|
let(:soap_config) { OpenStruct.new(
|
13
13
|
camelize_wsdl: false,
|
14
14
|
namespace: "/api/wsdl",
|
15
15
|
) }
|
16
16
|
|
17
|
-
|
17
|
+
let(:washout_builder) { stub(:root_url => "#{request.protocol}#{request.host_with_port}/")}
|
18
|
+
let(:route) {stub(:defaults => {:controller => "api"})}
|
19
|
+
let(:params) {{:name => "some_name" }}
|
18
20
|
|
19
21
|
before(:each) do
|
20
22
|
ApiController.stubs(:soap_config).returns(soap_config)
|
@@ -30,5 +32,19 @@ describe WashoutBuilder::WashoutBuilderController, :type => :controller do
|
|
30
32
|
get :all
|
31
33
|
response.should render_template("wash_with_html/all_services")
|
32
34
|
end
|
33
|
-
|
35
|
+
|
36
|
+
|
37
|
+
it "checks it controller is a service" do
|
38
|
+
controller.send(:controller_is_a_service?,"api").should_not eq nil
|
39
|
+
end
|
40
|
+
|
41
|
+
it "render a service documentation" do
|
42
|
+
controller.expects(:controller_is_a_service?).with(params[:name]).returns(route)
|
43
|
+
WashoutBuilder::Document::Generator.expects(:new).with(route.defaults[:controller])
|
44
|
+
get :all, params
|
45
|
+
response.should render_template "wash_with_html/doc"
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
|
34
50
|
end
|
@@ -8,11 +8,7 @@ describe WashoutBuilder::Document::ComplexType do
|
|
8
8
|
namespace: "/api/wsdl",
|
9
9
|
description: "some description"
|
10
10
|
) }
|
11
|
-
|
12
|
-
def get_wash_out_param(class_name_or_structure, soap_config = soap_config)
|
13
|
-
WashOut::Param.parse_builder_def(soap_config, class_name_or_structure)[0]
|
14
|
-
end
|
15
|
-
|
11
|
+
|
16
12
|
let(:subject) { get_wash_out_param(ProjectType) }
|
17
13
|
let(:namespaced_object) { get_wash_out_param(Api::TestType) }
|
18
14
|
|
@@ -4,33 +4,67 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe WashoutBuilder::Document::ExceptionModel do
|
6
6
|
|
7
|
-
let(:subject) {
|
7
|
+
let(:subject) { WashoutBuilderTestError}
|
8
8
|
|
9
|
+
let(:structure) { {"message"=>{:primitive=>"string", :member_type=>nil}, "backtrace"=>{:primitive=>"string", :member_type=>nil}}}
|
10
|
+
let(:base_structure) { {"code"=>{:primitive=>"integer", :member_type=>nil}, "message"=>{:primitive=>"string", :member_type=>nil}, "backtrace"=>{:primitive=>"string", :member_type=>nil}}}
|
11
|
+
let(:ancestors) {[base_exception]}
|
9
12
|
|
13
|
+
def fault_ancestor_hash(subject, structure, ancestors)
|
14
|
+
{:fault => subject,:structure =>structure ,:ancestors => ancestors }
|
15
|
+
end
|
10
16
|
|
11
17
|
it "gets the strcuture" do
|
12
|
-
subject.get_fault_model_structure.should eq(
|
18
|
+
subject.get_fault_model_structure.should eq(structure)
|
13
19
|
end
|
14
20
|
|
15
|
-
|
16
|
-
|
21
|
+
it "gets the strcuture" do
|
22
|
+
base_exception.get_fault_model_structure.should eq(base_structure)
|
23
|
+
end
|
24
|
+
it "gets the strcuture" do
|
25
|
+
subject.get_fault_attributes.should eq(["message", "backtrace"])
|
26
|
+
end
|
27
|
+
it "gets the strcuture" do
|
28
|
+
base_exception.get_fault_attributes.should eq(["code","message", "backtrace"])
|
17
29
|
end
|
18
|
-
#
|
19
|
-
# it "gets the member type for arrays" do
|
20
|
-
# subject.get_virtus_member_type_primitive({:primitive=>"Array", :member_type=>"SomeInexistentClass"}).should eq("SomeInexistentClass")
|
21
|
-
# end
|
22
|
-
#
|
23
|
-
# it "gets the member type for clasified types" do
|
24
|
-
# subject.get_virtus_member_type_primitive({:primitive=>"SomeInexistentClass", :member_type=>nil}).should eq("SomeInexistentClass")
|
25
|
-
# end
|
26
|
-
#
|
27
|
-
# it "returns nil because is not a classified object" do
|
28
|
-
# subject.get_virtus_member_type_primitive({:primitive=>"integer", :member_type=>nil}).should eq(nil)
|
29
|
-
# end
|
30
30
|
|
31
|
+
specify { subject.check_valid_fault_method?("code").should eq(true) }
|
32
|
+
specify { subject.get_fault_type_method("code").should eq("integer") }
|
33
|
+
specify { subject.get_fault_type_method("message").should eq("string") }
|
34
|
+
specify { subject.get_fault_type_method("backtrace").should eq("string") }
|
31
35
|
|
32
36
|
it "gets the strcuture" do
|
33
37
|
subject.remove_fault_type_inheritable_elements(["code"]).should eq({ "message"=>{:primitive=>"string", :member_type=>nil}, "backtrace"=>{:primitive=>"string", :member_type=>nil}})
|
34
38
|
end
|
35
39
|
|
40
|
+
it "fault_ancestor_hash" do
|
41
|
+
subject.fault_ancestor_hash( structure, ancestors).should eq(fault_ancestor_hash(subject, structure, ancestors))
|
42
|
+
end
|
43
|
+
|
44
|
+
it "gets the fault_ancestors" do
|
45
|
+
subject.expects(:get_complex_type_ancestors).with(subject, ["ActiveRecord::Base", "Object", "BasicObject", "Exception" ]).returns(ancestors)
|
46
|
+
subject.fault_ancestors.should eq ancestors
|
47
|
+
end
|
48
|
+
|
49
|
+
it "gets the fault_without_inheritable_elements" do
|
50
|
+
ancestors[0].expects(:get_fault_model_structure).returns(structure)
|
51
|
+
subject.expects(:remove_fault_type_inheritable_elements).with(structure.keys)
|
52
|
+
subject.fault_without_inheritable_elements(ancestors)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "gets the ancestors" do
|
56
|
+
subject.expects(:fault_ancestors).returns(nil)
|
57
|
+
subject.expects(:get_fault_model_structure).returns(structure)
|
58
|
+
subject.expects(:fault_ancestor_hash).with(structure, []).returns(fault_ancestor_hash(subject, structure, ancestors))
|
59
|
+
subject.get_fault_class_ancestors([]).should eq(nil)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "gets the ancestors" do
|
63
|
+
expected_defined = fault_ancestor_hash(subject, structure, ancestors)
|
64
|
+
subject.expects(:fault_ancestors).returns(ancestors)
|
65
|
+
subject.expects(:fault_without_inheritable_elements).with(ancestors).returns(structure)
|
66
|
+
subject.expects(:fault_ancestor_hash).returns(expected_defined)
|
67
|
+
subject.get_fault_class_ancestors([])
|
68
|
+
end
|
69
|
+
|
36
70
|
end
|
@@ -4,10 +4,17 @@ mock_controller do
|
|
4
4
|
soap_service namespace: "/api/wsdl", description: "some description"
|
5
5
|
|
6
6
|
soap_action 'dispatcher_method', :args => nil, :return => nil
|
7
|
-
|
7
|
+
soap_action 'dispatcher_method2', :args => nil, :return => nil, :raises => WashoutBuilderTestError
|
8
|
+
soap_action 'dispatcher_method3', :args => ProjectType , :return => nil, :raises => [WashoutBuilderTestError]
|
8
9
|
def dispatcher_method
|
9
10
|
#nothing
|
10
11
|
end
|
12
|
+
def dispatcher_method2
|
13
|
+
#nothing
|
14
|
+
end
|
15
|
+
def dispatcher_method3
|
16
|
+
#nothing
|
17
|
+
end
|
11
18
|
end
|
12
19
|
|
13
20
|
describe WashoutBuilder::Document::Generator do
|
@@ -17,12 +24,7 @@ describe WashoutBuilder::Document::Generator do
|
|
17
24
|
namespace: "/api/wsdl",
|
18
25
|
description: "some description"
|
19
26
|
) }
|
20
|
-
|
21
|
-
let(:soap_actions) {
|
22
|
-
{'dispatcher_method' =>
|
23
|
-
{:args => nil, :return => nil, :in => [], :out => [], :builder_in => [], :builder_out => [], :to => 'dispatcher_method'}
|
24
|
-
}
|
25
|
-
}
|
27
|
+
|
26
28
|
let(:service_class) { ApiController }
|
27
29
|
before(:each) do
|
28
30
|
@document = WashoutBuilder::Document::Generator.new("api")
|
@@ -49,40 +51,55 @@ describe WashoutBuilder::Document::Generator do
|
|
49
51
|
end
|
50
52
|
|
51
53
|
context "operations" do
|
52
|
-
specify { @document.operations.should eq(soap_actions.map { |operation, formats| operation }) }
|
54
|
+
specify { @document.operations.should eq(service_class.soap_actions.map { |operation, formats| operation }) }
|
53
55
|
end
|
54
56
|
|
57
|
+
context "sorted_operations" do
|
58
|
+
|
59
|
+
it "returns sorted operations" do
|
60
|
+
expected = service_class.soap_actions.sort_by { |operation, formats| operation.downcase }.uniq
|
61
|
+
@document.sorted_operations.should eq expected
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
55
65
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
66
|
+
def argument_types(type)
|
67
|
+
format_type = (type == "input") ? "builder_in" : "builder_out"
|
68
|
+
types = []
|
69
|
+
unless service_class.soap_actions.blank?
|
70
|
+
service_class.soap_actions.each do |operation, formats|
|
71
|
+
(formats[format_type.to_sym]).each do |p|
|
60
72
|
types << p
|
61
73
|
end
|
62
74
|
end
|
63
|
-
|
75
|
+
end
|
76
|
+
types
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
context "input types" do
|
64
81
|
|
65
|
-
specify { @document.input_types.should eq(
|
82
|
+
specify { @document.input_types.should eq(argument_types("input")) }
|
66
83
|
|
67
84
|
end
|
68
85
|
|
69
86
|
context "output types" do
|
70
|
-
|
71
|
-
|
72
|
-
(formats[:builder_out]).each do |p|
|
73
|
-
types << p
|
74
|
-
end
|
75
|
-
end
|
76
|
-
types }
|
77
|
-
|
78
|
-
specify { @document.output_types.should eq(expected) }
|
87
|
+
|
88
|
+
specify { @document.output_types.should eq(argument_types("output")) }
|
79
89
|
|
80
90
|
end
|
81
91
|
|
82
92
|
|
93
|
+
context "operation exceptions" do
|
94
|
+
|
95
|
+
specify { @document.operation_exceptions("dispatcher_method").should eq([]) }
|
96
|
+
specify { @document.operation_exceptions("dispatcher_method2").should eq([WashoutBuilderTestError]) }
|
97
|
+
specify { @document.operation_exceptions("dispatcher_method3").should eq([WashoutBuilderTestError]) }
|
98
|
+
end
|
99
|
+
|
83
100
|
context "get_soap_action_names" do
|
84
101
|
|
85
|
-
let(:expected) {soap_actions.map { |operation, formats| operation }.map(&:to_s).sort_by { |name| name.downcase }.uniq}
|
102
|
+
let(:expected) {service_class.soap_actions.map { |operation, formats| operation }.map(&:to_s).sort_by { |name| name.downcase }.uniq}
|
86
103
|
|
87
104
|
specify { @document.get_soap_action_names.should eq(expected) }
|
88
105
|
|
@@ -95,6 +112,30 @@ describe WashoutBuilder::Document::Generator do
|
|
95
112
|
end
|
96
113
|
|
97
114
|
|
115
|
+
context "actions with exceptions" do
|
116
|
+
let(:actions_with_exceptions) {service_class.soap_actions.select{|operation, formats| !formats[:raises].blank? } }
|
117
|
+
let(:exceptions_raised) { actions_with_exceptions.collect {|operation, formats| formats[:raises].is_a?(Array) ? formats[:raises] : [formats[:raises]] }.flatten}
|
118
|
+
let(:filter_exceptions_raised) { exceptions_raised.select { |x| WashoutBuilder::Type.valid_fault_class?(x) } unless actions_with_exceptions.blank?}
|
119
|
+
|
120
|
+
specify { @document.actions_with_exceptions.should eq actions_with_exceptions }
|
121
|
+
specify { @document.exceptions_raised.should eq exceptions_raised }
|
122
|
+
specify { @document.filter_exceptions_raised.should eq filter_exceptions_raised }
|
123
|
+
|
124
|
+
it "returns the fault types" do
|
125
|
+
WashoutBuilder::Type.stubs(:get_fault_classes).returns([base_exception])
|
126
|
+
@document.expects(:get_complex_fault_types).with([base_exception]).returns([base_exception])
|
127
|
+
@document.expects(:sort_complex_types).with([base_exception], "fault").returns([base_exception])
|
128
|
+
@document.fault_types.should eq([base_exception])
|
129
|
+
end
|
130
|
+
|
131
|
+
it "returns complex fault types" do
|
132
|
+
base_exception.expects(:get_fault_class_ancestors).with([], true).returns(nil)
|
133
|
+
@document.expects(:filter_exceptions_raised).returns(nil)
|
134
|
+
@document.get_complex_fault_types([base_exception]).should eq([])
|
135
|
+
end
|
136
|
+
|
137
|
+
end
|
138
|
+
|
98
139
|
|
99
140
|
context "complex types" do
|
100
141
|
|
@@ -109,6 +150,8 @@ describe WashoutBuilder::Document::Generator do
|
|
109
150
|
end
|
110
151
|
|
111
152
|
it "returns nil if no complex types detected" do
|
153
|
+
WashOut::Param.any_instance.expects(:get_nested_complex_types).returns([])
|
154
|
+
@document.expects(:sort_complex_types).with([], "class").returns(nil)
|
112
155
|
@document.complex_types.should eq(nil)
|
113
156
|
end
|
114
157
|
|
@@ -4,6 +4,9 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe WashoutBuilder::Type do
|
6
6
|
|
7
|
+
let(:exception) { WashoutBuilderTestError}
|
8
|
+
let(:fault_classes) { [exception] }
|
9
|
+
|
7
10
|
it "defines a list of types" do
|
8
11
|
WashoutBuilder::Type::BASIC_TYPES.should eq([
|
9
12
|
"string",
|
@@ -16,5 +19,24 @@ describe WashoutBuilder::Type do
|
|
16
19
|
"time",
|
17
20
|
"int"])
|
18
21
|
end
|
22
|
+
|
23
|
+
it "gets the fault classes defined" do
|
24
|
+
WashoutBuilder::Type.get_fault_classes.should eq ([base_exception])
|
25
|
+
end
|
26
|
+
|
27
|
+
context "exception" do
|
28
|
+
before(:each) do
|
29
|
+
WashoutBuilder::Type.stubs(:get_fault_classes).returns([base_exception])
|
30
|
+
end
|
31
|
+
|
32
|
+
it "checks if exception has ancestor" do
|
33
|
+
WashoutBuilder::Type.has_ancestor_fault?(exception).should eq(true)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "checks if exception valid" do
|
37
|
+
WashoutBuilder::Type.valid_fault_class?(exception).should eq(true)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
19
41
|
|
20
42
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,10 +1,20 @@
|
|
1
1
|
# Configure Rails Envinronment
|
2
2
|
ENV["RAILS_ENV"] = "test"
|
3
3
|
|
4
|
-
require
|
4
|
+
require 'codeclimate-test-reporter'
|
5
|
+
require 'simplecov'
|
6
|
+
require 'simplecov-summary'
|
5
7
|
require 'coveralls'
|
8
|
+
|
9
|
+
formatters = [SimpleCov::Formatter::HTMLFormatter]
|
10
|
+
|
11
|
+
formatters << Coveralls::SimpleCov::Formatter if ENV['TRAVIS']
|
12
|
+
formatters << CodeClimate::TestReporter::Formatter if ENV['CODECLIMATE_REPO_TOKEN'] && ENV['TRAVIS']
|
13
|
+
|
14
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[*formatters]
|
15
|
+
|
16
|
+
|
6
17
|
Coveralls.wear!
|
7
|
-
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
8
18
|
SimpleCov.start do
|
9
19
|
add_filter 'spec'
|
10
20
|
add_group 'Library', 'lib'
|
@@ -13,28 +23,21 @@ SimpleCov.start do
|
|
13
23
|
at_exit do; end
|
14
24
|
end
|
15
25
|
|
16
|
-
if ENV["TRAVIS"]
|
17
|
-
require "codeclimate-test-reporter"
|
18
|
-
CodeClimate::TestReporter.start
|
19
|
-
end
|
20
|
-
|
21
26
|
require 'active_support'
|
22
27
|
require 'nori'
|
23
28
|
require 'nokogiri'
|
29
|
+
require 'ostruct'
|
24
30
|
|
25
31
|
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
26
32
|
require File.expand_path("../../config/routes.rb", __FILE__)
|
27
33
|
require "rails/test_help"
|
28
34
|
require "rspec/rails"
|
29
35
|
require 'rspec/autorun'
|
30
|
-
require "pry"
|
31
36
|
require "savon"
|
32
37
|
require 'wash_out'
|
33
38
|
|
34
39
|
require 'capybara/rspec'
|
35
40
|
require 'capybara/rails'
|
36
|
-
require 'capybara/firebug/rspec'
|
37
|
-
require 'webmock/rspec'
|
38
41
|
require 'headless'
|
39
42
|
|
40
43
|
Rails.backtrace_cleaner.remove_silencers!
|
@@ -45,16 +48,15 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
|
45
48
|
RSpec.configure do |config|
|
46
49
|
require 'rspec/expectations'
|
47
50
|
config.include RSpec::Matchers
|
48
|
-
|
51
|
+
config.infer_spec_type_from_file_location!
|
49
52
|
|
50
53
|
config.before(:suite) do
|
51
54
|
# Blocks all remote HTTP requests by default, they need to be stubbed.
|
52
|
-
WebMock.disable_net_connect!(:allow_localhost => true)
|
53
55
|
if !RUBY_PLATFORM.downcase.include?('darwin') && !ENV['NO_HEADLESS']
|
54
56
|
Headless.new(reuse: false, destroy_on_exit: false).start
|
55
57
|
end
|
56
58
|
end
|
57
|
-
|
59
|
+
|
58
60
|
config.mock_with :mocha
|
59
61
|
config.before(:all) do
|
60
62
|
WashoutBuilder::Engine.config.wash_out = {
|
@@ -96,3 +98,17 @@ def mock_controller(options = {}, &block)
|
|
96
98
|
|
97
99
|
ActiveSupport::Dependencies::Reference.instance_variable_get(:'@store').delete('ApiController')
|
98
100
|
end
|
101
|
+
|
102
|
+
def base_exception
|
103
|
+
WashOut::Dispatcher::SOAPError
|
104
|
+
end
|
105
|
+
|
106
|
+
|
107
|
+
class WashoutBuilderTestError < base_exception
|
108
|
+
|
109
|
+
|
110
|
+
end
|
111
|
+
|
112
|
+
def get_wash_out_param(class_name_or_structure, soap_config = soap_config)
|
113
|
+
WashOut::Param.parse_builder_def(soap_config, class_name_or_structure)[0]
|
114
|
+
end
|
data/washout_builder.gemspec
CHANGED
@@ -9,11 +9,31 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.homepage = "http://github.com/bogdanRada/washout_builder/"
|
10
10
|
s.description = "WashOut Soap Service HTML-Documentation generator (extends WashOut https://github.com/inossidabile/wash_out/) "
|
11
11
|
s.authors = ["bogdanRada"]
|
12
|
-
s.date =
|
12
|
+
s.date = Date.today
|
13
13
|
|
14
14
|
s.licenses = ["MIT"]
|
15
15
|
s.files = `git ls-files`.split("\n")
|
16
16
|
s.test_files = s.files.grep(/^(spec)/)
|
17
17
|
s.require_paths = ["lib"]
|
18
18
|
s.add_runtime_dependency 'wash_out', '~> 0.9', '>= 0.9.1'
|
19
|
+
|
20
|
+
s.add_development_dependency 'wasabi', '~> 3.3', '>= 3.3.0'
|
21
|
+
s.add_development_dependency 'savon', '~> 2.5', '>= 2.5.1'
|
22
|
+
s.add_development_dependency 'httpi', '~> 2.1', '>= 2.1.0'
|
23
|
+
s.add_development_dependency 'nokogiri', '~> 1.6', '>= 1.6.0'
|
24
|
+
|
25
|
+
s.add_development_dependency 'rspec-rails', '~> 2.0', '>= 2.0'
|
26
|
+
s.add_development_dependency 'guard', '~> 2.6', '>= 2.6.1'
|
27
|
+
s.add_development_dependency 'guard-rspec', '~> 4.2', '>= 4.2.9'
|
28
|
+
s.add_development_dependency 'appraisal', '~> 1.0', '>= 1.0.0'
|
29
|
+
s.add_development_dependency 'simplecov', '~> 0.8', '>= 0.8.2'
|
30
|
+
s.add_development_dependency 'simplecov-summary', '~> 0.0', '>= 0.0.4'
|
31
|
+
s.add_development_dependency 'mocha','~> 1.1', '>= 1.1.0'
|
32
|
+
s.add_development_dependency 'coveralls','~> 0.7', '>= 0.7.0'
|
33
|
+
s.add_development_dependency 'codeclimate-test-reporter','~> 0.3', '>= 0.3.0'
|
34
|
+
s.add_development_dependency 'rvm-tester','~> 1.1', '>= 1.1.0'
|
35
|
+
|
36
|
+
s.add_development_dependency 'capybara', '~> 2.2', '>= 2.2.1'
|
37
|
+
s.add_development_dependency 'selenium-webdriver', '~> 2.41', '>= 2.41.0'
|
38
|
+
s.add_development_dependency 'headless','~> 1.0', '>= 1.0.1'
|
19
39
|
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: 0.13.
|
4
|
+
version: 0.13.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bogdanRada
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: wash_out
|
@@ -30,6 +30,346 @@ dependencies:
|
|
30
30
|
- - ! '>='
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 0.9.1
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: wasabi
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ~>
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '3.3'
|
40
|
+
- - ! '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 3.3.0
|
43
|
+
type: :development
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ~>
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '3.3'
|
50
|
+
- - ! '>='
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 3.3.0
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: savon
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ~>
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '2.5'
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 2.5.1
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '2.5'
|
70
|
+
- - ! '>='
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 2.5.1
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: httpi
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ~>
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '2.1'
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.1.0
|
83
|
+
type: :development
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.1'
|
90
|
+
- - ! '>='
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 2.1.0
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: nokogiri
|
95
|
+
requirement: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ~>
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '1.6'
|
100
|
+
- - ! '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 1.6.0
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '1.6'
|
110
|
+
- - ! '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: 1.6.0
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: rspec-rails
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ~>
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '2.0'
|
120
|
+
- - ! '>='
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '2.0'
|
123
|
+
type: :development
|
124
|
+
prerelease: false
|
125
|
+
version_requirements: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - ~>
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '2.0'
|
130
|
+
- - ! '>='
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '2.0'
|
133
|
+
- !ruby/object:Gem::Dependency
|
134
|
+
name: guard
|
135
|
+
requirement: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ~>
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '2.6'
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: 2.6.1
|
143
|
+
type: :development
|
144
|
+
prerelease: false
|
145
|
+
version_requirements: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - ~>
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '2.6'
|
150
|
+
- - ! '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 2.6.1
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: guard-rspec
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ~>
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '4.2'
|
160
|
+
- - ! '>='
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: 4.2.9
|
163
|
+
type: :development
|
164
|
+
prerelease: false
|
165
|
+
version_requirements: !ruby/object:Gem::Requirement
|
166
|
+
requirements:
|
167
|
+
- - ~>
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '4.2'
|
170
|
+
- - ! '>='
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: 4.2.9
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: appraisal
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - ~>
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '1.0'
|
180
|
+
- - ! '>='
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: 1.0.0
|
183
|
+
type: :development
|
184
|
+
prerelease: false
|
185
|
+
version_requirements: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - ~>
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '1.0'
|
190
|
+
- - ! '>='
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: 1.0.0
|
193
|
+
- !ruby/object:Gem::Dependency
|
194
|
+
name: simplecov
|
195
|
+
requirement: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - ~>
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: '0.8'
|
200
|
+
- - ! '>='
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: 0.8.2
|
203
|
+
type: :development
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - ~>
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '0.8'
|
210
|
+
- - ! '>='
|
211
|
+
- !ruby/object:Gem::Version
|
212
|
+
version: 0.8.2
|
213
|
+
- !ruby/object:Gem::Dependency
|
214
|
+
name: simplecov-summary
|
215
|
+
requirement: !ruby/object:Gem::Requirement
|
216
|
+
requirements:
|
217
|
+
- - ~>
|
218
|
+
- !ruby/object:Gem::Version
|
219
|
+
version: '0.0'
|
220
|
+
- - ! '>='
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: 0.0.4
|
223
|
+
type: :development
|
224
|
+
prerelease: false
|
225
|
+
version_requirements: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ~>
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0.0'
|
230
|
+
- - ! '>='
|
231
|
+
- !ruby/object:Gem::Version
|
232
|
+
version: 0.0.4
|
233
|
+
- !ruby/object:Gem::Dependency
|
234
|
+
name: mocha
|
235
|
+
requirement: !ruby/object:Gem::Requirement
|
236
|
+
requirements:
|
237
|
+
- - ~>
|
238
|
+
- !ruby/object:Gem::Version
|
239
|
+
version: '1.1'
|
240
|
+
- - ! '>='
|
241
|
+
- !ruby/object:Gem::Version
|
242
|
+
version: 1.1.0
|
243
|
+
type: :development
|
244
|
+
prerelease: false
|
245
|
+
version_requirements: !ruby/object:Gem::Requirement
|
246
|
+
requirements:
|
247
|
+
- - ~>
|
248
|
+
- !ruby/object:Gem::Version
|
249
|
+
version: '1.1'
|
250
|
+
- - ! '>='
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
version: 1.1.0
|
253
|
+
- !ruby/object:Gem::Dependency
|
254
|
+
name: coveralls
|
255
|
+
requirement: !ruby/object:Gem::Requirement
|
256
|
+
requirements:
|
257
|
+
- - ~>
|
258
|
+
- !ruby/object:Gem::Version
|
259
|
+
version: '0.7'
|
260
|
+
- - ! '>='
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: 0.7.0
|
263
|
+
type: :development
|
264
|
+
prerelease: false
|
265
|
+
version_requirements: !ruby/object:Gem::Requirement
|
266
|
+
requirements:
|
267
|
+
- - ~>
|
268
|
+
- !ruby/object:Gem::Version
|
269
|
+
version: '0.7'
|
270
|
+
- - ! '>='
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
version: 0.7.0
|
273
|
+
- !ruby/object:Gem::Dependency
|
274
|
+
name: codeclimate-test-reporter
|
275
|
+
requirement: !ruby/object:Gem::Requirement
|
276
|
+
requirements:
|
277
|
+
- - ~>
|
278
|
+
- !ruby/object:Gem::Version
|
279
|
+
version: '0.3'
|
280
|
+
- - ! '>='
|
281
|
+
- !ruby/object:Gem::Version
|
282
|
+
version: 0.3.0
|
283
|
+
type: :development
|
284
|
+
prerelease: false
|
285
|
+
version_requirements: !ruby/object:Gem::Requirement
|
286
|
+
requirements:
|
287
|
+
- - ~>
|
288
|
+
- !ruby/object:Gem::Version
|
289
|
+
version: '0.3'
|
290
|
+
- - ! '>='
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: 0.3.0
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: rvm-tester
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - ~>
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: '1.1'
|
300
|
+
- - ! '>='
|
301
|
+
- !ruby/object:Gem::Version
|
302
|
+
version: 1.1.0
|
303
|
+
type: :development
|
304
|
+
prerelease: false
|
305
|
+
version_requirements: !ruby/object:Gem::Requirement
|
306
|
+
requirements:
|
307
|
+
- - ~>
|
308
|
+
- !ruby/object:Gem::Version
|
309
|
+
version: '1.1'
|
310
|
+
- - ! '>='
|
311
|
+
- !ruby/object:Gem::Version
|
312
|
+
version: 1.1.0
|
313
|
+
- !ruby/object:Gem::Dependency
|
314
|
+
name: capybara
|
315
|
+
requirement: !ruby/object:Gem::Requirement
|
316
|
+
requirements:
|
317
|
+
- - ~>
|
318
|
+
- !ruby/object:Gem::Version
|
319
|
+
version: '2.2'
|
320
|
+
- - ! '>='
|
321
|
+
- !ruby/object:Gem::Version
|
322
|
+
version: 2.2.1
|
323
|
+
type: :development
|
324
|
+
prerelease: false
|
325
|
+
version_requirements: !ruby/object:Gem::Requirement
|
326
|
+
requirements:
|
327
|
+
- - ~>
|
328
|
+
- !ruby/object:Gem::Version
|
329
|
+
version: '2.2'
|
330
|
+
- - ! '>='
|
331
|
+
- !ruby/object:Gem::Version
|
332
|
+
version: 2.2.1
|
333
|
+
- !ruby/object:Gem::Dependency
|
334
|
+
name: selenium-webdriver
|
335
|
+
requirement: !ruby/object:Gem::Requirement
|
336
|
+
requirements:
|
337
|
+
- - ~>
|
338
|
+
- !ruby/object:Gem::Version
|
339
|
+
version: '2.41'
|
340
|
+
- - ! '>='
|
341
|
+
- !ruby/object:Gem::Version
|
342
|
+
version: 2.41.0
|
343
|
+
type: :development
|
344
|
+
prerelease: false
|
345
|
+
version_requirements: !ruby/object:Gem::Requirement
|
346
|
+
requirements:
|
347
|
+
- - ~>
|
348
|
+
- !ruby/object:Gem::Version
|
349
|
+
version: '2.41'
|
350
|
+
- - ! '>='
|
351
|
+
- !ruby/object:Gem::Version
|
352
|
+
version: 2.41.0
|
353
|
+
- !ruby/object:Gem::Dependency
|
354
|
+
name: headless
|
355
|
+
requirement: !ruby/object:Gem::Requirement
|
356
|
+
requirements:
|
357
|
+
- - ~>
|
358
|
+
- !ruby/object:Gem::Version
|
359
|
+
version: '1.0'
|
360
|
+
- - ! '>='
|
361
|
+
- !ruby/object:Gem::Version
|
362
|
+
version: 1.0.1
|
363
|
+
type: :development
|
364
|
+
prerelease: false
|
365
|
+
version_requirements: !ruby/object:Gem::Requirement
|
366
|
+
requirements:
|
367
|
+
- - ~>
|
368
|
+
- !ruby/object:Gem::Version
|
369
|
+
version: '1.0'
|
370
|
+
- - ! '>='
|
371
|
+
- !ruby/object:Gem::Version
|
372
|
+
version: 1.0.1
|
33
373
|
description: ! 'WashOut Soap Service HTML-Documentation generator (extends WashOut
|
34
374
|
https://github.com/inossidabile/wash_out/) '
|
35
375
|
email: raoul_ice@yahoo.com
|
@@ -42,6 +382,7 @@ files:
|
|
42
382
|
- .rspec
|
43
383
|
- .travis.yml
|
44
384
|
- Appraisals
|
385
|
+
- CONTRIBUTING.md
|
45
386
|
- Gemfile
|
46
387
|
- Guardfile
|
47
388
|
- LICENSE
|