washout_builder 1.7.4 → 1.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +12 -13
- data/Gemfile +18 -0
- data/README.md +1 -1
- data/Rakefile +3 -3
- data/app/controllers/washout_builder/washout_builder_controller.rb +9 -9
- data/app/helpers/washout_builder_complex_type_helper.rb +1 -1
- data/app/helpers/washout_builder_method_arguments_helper.rb +1 -1
- data/app/helpers/washout_builder_method_list_helper.rb +1 -1
- data/app/helpers/washout_builder_method_return_type_helper.rb +3 -3
- data/app/views/wash_with_html/doc.builder +6 -6
- data/install-travis-bundler.sh +11 -9
- data/lib/washout_builder/document/complex_type.rb +33 -33
- data/lib/washout_builder/document/exception_model.rb +17 -18
- data/lib/washout_builder/document/generator.rb +6 -6
- data/lib/washout_builder/engine.rb +1 -0
- data/lib/washout_builder/env_checker.rb +2 -2
- data/lib/washout_builder/version.rb +1 -1
- data/spec/app/controllers/washout_builder_controller_spec.rb +4 -4
- data/spec/dummy/app/views/layouts/application.html.erb +1 -1
- data/spec/dummy/public/404.html +1 -1
- data/spec/dummy/public/422.html +1 -1
- data/spec/dummy/public/500.html +1 -1
- data/spec/lib/washout_builder/document/complex_type_spec.rb +4 -8
- data/spec/lib/washout_builder/document/exception_model_spec.rb +5 -5
- data/spec/spec_helper.rb +12 -2
- data/washout_builder.gemspec +0 -18
- metadata +3 -291
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 159e07561571b409357453527454de91fc1ed030b715b663467d5609fc171e90
|
|
4
|
+
data.tar.gz: 763e07ae420b1897eb031e33cb0b5073cd534c6f262eb358b6e7d9a1c2f0a95e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7a7d90b7e0e07f2de6be67edeb1fa0957e966c26da4bb53b1c14a38d9e8e25fec19ef6da7fb043c9ff9d4ff4f3506351854766b1a2c3f1cd25b9d5e97e0ca7e9
|
|
7
|
+
data.tar.gz: bc06865bdb9a5f2411cb84434659fb3a5c948107c69e41aee60893a5dc456f28945c4b0662f1bcd08a3966e900574024f529ca5f2f117356965592297437e01a
|
data/.travis.yml
CHANGED
|
@@ -1,30 +1,29 @@
|
|
|
1
1
|
language: ruby
|
|
2
|
-
sudo: false
|
|
3
2
|
|
|
4
3
|
cache: bundler
|
|
5
4
|
|
|
6
5
|
bundler_args: --no-deployment --binstubs=./bin
|
|
7
6
|
|
|
8
7
|
before_install:
|
|
9
|
-
-"echo 'gem: --no-ri --no-rdoc' > ~/.gemrc"
|
|
10
|
-
-
|
|
8
|
+
- "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc"
|
|
9
|
+
- rvm rubygems current
|
|
10
|
+
- gem update --system || true
|
|
11
11
|
- gem --version
|
|
12
|
-
-
|
|
13
|
-
- bundle --version
|
|
12
|
+
- source ./install-travis-bundler.sh
|
|
13
|
+
- bundle ${MY_BUNDLER_VERSION} --version
|
|
14
14
|
|
|
15
15
|
install:
|
|
16
|
-
- bundle config --local
|
|
17
|
-
- bundle config --local
|
|
18
|
-
- bundle config --local
|
|
19
|
-
- bundle config --local
|
|
20
|
-
- bundle
|
|
21
|
-
- bundle install
|
|
16
|
+
- bundle ${MY_BUNDLER_VERSION} config --local jobs 3
|
|
17
|
+
- bundle ${MY_BUNDLER_VERSION} config --local retry 3
|
|
18
|
+
- bundle ${MY_BUNDLER_VERSION} config --local binstubs ./bin
|
|
19
|
+
- bundle ${MY_BUNDLER_VERSION} config --local bin ./bin
|
|
20
|
+
- bundle ${MY_BUNDLER_VERSION} install
|
|
22
21
|
- gem env
|
|
23
|
-
- bundle env
|
|
22
|
+
- bundle ${MY_BUNDLER_VERSION} env
|
|
24
23
|
|
|
25
24
|
script:
|
|
26
25
|
- echo $BUNDLE_GEMFILE
|
|
27
|
-
- bundle exec rake
|
|
26
|
+
- bundle ${MY_BUNDLER_VERSION} exec rake
|
|
28
27
|
|
|
29
28
|
gemfile:
|
|
30
29
|
- gemfiles/rails_4.0.0.gemfile
|
data/Gemfile
CHANGED
|
@@ -3,3 +3,21 @@ source 'http://rubygems.org'
|
|
|
3
3
|
gemspec
|
|
4
4
|
|
|
5
5
|
gem 'wash_out', git: 'https://github.com/inossidabile/wash_out.git'
|
|
6
|
+
|
|
7
|
+
gem 'wasabi'
|
|
8
|
+
gem 'savon', '>= 2.11'
|
|
9
|
+
gem 'httpi', '>= 2.4'
|
|
10
|
+
gem 'nokogiri', '>= 1.7'
|
|
11
|
+
|
|
12
|
+
gem 'rspec-rails','4.0.0.beta3'
|
|
13
|
+
gem 'appraisal', '>= 2.1'
|
|
14
|
+
gem 'simplecov', '>= 0.12'
|
|
15
|
+
gem 'simplecov-summary', '>= 0.0.5'
|
|
16
|
+
gem 'mocha', '>= 1.2'
|
|
17
|
+
gem 'coveralls', '>= 0.8'
|
|
18
|
+
|
|
19
|
+
gem "yard", '>= 0.9.20'
|
|
20
|
+
gem 'yard-rspec', '>= 0.1'
|
|
21
|
+
gem 'redcarpet', '>= 3.4'
|
|
22
|
+
gem 'github-markup', '>= 1.4'
|
|
23
|
+
gem 'inch', '>= 0.7'
|
data/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
washout_builder
|
|
2
2
|
===============
|
|
3
3
|
|
|
4
|
-
[](http://badge.fury.io/rb/washout_builder) [](https://travis-ci.org/bogdanRada/washout_builder)
|
|
4
|
+
[](http://badge.fury.io/rb/washout_builder) [](https://travis-ci.org/bogdanRada/washout_builder) [](http://inch-ci.org/github/bogdanRada/washout_builder) [](https://coveralls.io/r/bogdanRada/washout_builder?branch=master) [](https://codeclimate.com/github/bogdanRada/washout_builder) [](https://github.com/bogdanRada/washout_builder) [](https://github.com/bogdanRada/washout_builder)
|
|
5
5
|
|
|
6
6
|
Overview
|
|
7
7
|
--------
|
data/Rakefile
CHANGED
|
@@ -21,7 +21,7 @@ task :all do |_t|
|
|
|
21
21
|
# require 'json'
|
|
22
22
|
# puts JSON.pretty_generate(ENV.to_hash)
|
|
23
23
|
if ENV['BUNDLE_GEMFILE'] =~ /gemfiles/
|
|
24
|
-
appraisal_name = ENV['BUNDLE_GEMFILE'].scan(/
|
|
24
|
+
appraisal_name = ENV['BUNDLE_GEMFILE'].scan(/rails_(.*)\.gemfile/).flatten.first
|
|
25
25
|
command_prefix = "appraisal rails-#{appraisal_name}"
|
|
26
26
|
exec ("#{command_prefix} bundle install && #{command_prefix} bundle exec rspec && bundle exec rake coveralls:push ")
|
|
27
27
|
else
|
|
@@ -40,8 +40,8 @@ YARD::Config.load_plugins
|
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
YARD::Rake::YardocTask.new do |t|
|
|
43
|
-
t.files =
|
|
44
|
-
t.options =
|
|
43
|
+
t.files = %w(lib/**/*.rb spec/**/*_spec.rb) # optional
|
|
44
|
+
t.options = %w(--any --extra --opts --markup-provider=redcarpet --markup=markdown --debug) # optional
|
|
45
45
|
t.stats_options = ['--list-undoc'] # optional
|
|
46
46
|
end
|
|
47
47
|
|
|
@@ -23,7 +23,7 @@ module WashoutBuilder
|
|
|
23
23
|
@document = WashoutBuilder::Document::Generator.new(route_details, controller_class(params[:name]).controller_path)
|
|
24
24
|
@file_to_serve = 'wash_with_html/doc'
|
|
25
25
|
render_html(@file_to_serve)
|
|
26
|
-
|
|
26
|
+
else
|
|
27
27
|
@services = all_services
|
|
28
28
|
@file_to_serve = 'wash_with_html/all_services'
|
|
29
29
|
render_html(@file_to_serve)
|
|
@@ -71,10 +71,10 @@ module WashoutBuilder
|
|
|
71
71
|
controller_name = hash[:route].present? && hash[:route].respond_to?(:defaults) ? hash[:route].defaults[:controller] : nil
|
|
72
72
|
if controller_name.present?
|
|
73
73
|
{
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
'service_name' => controller_naming(controller_name),
|
|
75
|
+
'namespace' => service_namespace(hash, controller_name),
|
|
76
|
+
'endpoint' => service_endpoint(hash, controller_name),
|
|
77
|
+
'documentation_url' => service_documentation_url(hash, controller_name)
|
|
78
78
|
}
|
|
79
79
|
end
|
|
80
80
|
end.uniq{|hash| hash['service_name'] }
|
|
@@ -113,10 +113,10 @@ module WashoutBuilder
|
|
|
113
113
|
engine_route = Rails.application.routes.named_routes[engine.engine_name]
|
|
114
114
|
routes_hash_array = engine.routes.routes.map { |route|
|
|
115
115
|
{
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
116
|
+
engine: engine,
|
|
117
|
+
route_set: engine.routes,
|
|
118
|
+
route: route,
|
|
119
|
+
mounted_at: engine_route.blank? ? nil : engine_route.path.spec.to_s
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
|
|
@@ -49,7 +49,7 @@ module WashoutBuilderComplexTypeHelper
|
|
|
49
49
|
def create_complex_element_type_html(pre, element, element_description)
|
|
50
50
|
complex_class = element.find_complex_class_name
|
|
51
51
|
return if complex_class.nil?
|
|
52
|
-
complex_class_content = element.multiplied
|
|
52
|
+
complex_class_content = element.multiplied ? "Array of #{complex_class}" : "#{complex_class}"
|
|
53
53
|
pre << "<a href='##{complex_class}'><span class='lightBlue'>#{complex_class_content}</span></a> <span class='bold'>#{element.name}</span>"
|
|
54
54
|
pre << " <span>#{html_safe(element_description)}</span>" unless element_description.blank?
|
|
55
55
|
pre
|
|
@@ -37,7 +37,7 @@ module WashoutBuilderMethodArgumentsHelper
|
|
|
37
37
|
# @api public
|
|
38
38
|
def create_method_argument_complex_element(pre, param, use_spacer, spacer, complex_class)
|
|
39
39
|
return if complex_class.nil?
|
|
40
|
-
argument_content = param.multiplied
|
|
40
|
+
argument_content = param.multiplied ? "Array of #{complex_class}" : "#{complex_class}"
|
|
41
41
|
pre << "#{use_spacer ? spacer : ''}<a href='##{complex_class}'><span class='lightBlue'>#{argument_content}</span></a> <span class='bold'>#{param.name}</span>"
|
|
42
42
|
end
|
|
43
43
|
|
|
@@ -10,7 +10,7 @@ module WashoutBuilderMethodListHelper
|
|
|
10
10
|
#
|
|
11
11
|
# @api public
|
|
12
12
|
def create_return_complex_type_list_html(xml, complex_class, builder_out)
|
|
13
|
-
return_content = builder_out[0].multiplied
|
|
13
|
+
return_content = builder_out[0].multiplied ? "Array of #{complex_class}" : "#{complex_class}"
|
|
14
14
|
xml.span('class' => 'pre') do
|
|
15
15
|
xml.a('href' => "##{complex_class}") do |inner_xml|
|
|
16
16
|
inner_xml.span('class' => 'lightBlue') do |y|
|
|
@@ -37,10 +37,10 @@ module WashoutBuilderMethodReturnTypeHelper
|
|
|
37
37
|
# @api public
|
|
38
38
|
def html_public_method_complex_type(pre, output, complex_class)
|
|
39
39
|
return if complex_class.nil?
|
|
40
|
-
if output[0].multiplied
|
|
41
|
-
complex_return_type = "#{complex_class}"
|
|
42
|
-
else
|
|
40
|
+
if output[0].multiplied
|
|
43
41
|
complex_return_type = "Array of #{complex_class}"
|
|
42
|
+
else
|
|
43
|
+
complex_return_type = "#{complex_class}"
|
|
44
44
|
end
|
|
45
45
|
pre << "<a href='##{complex_class}'><span class='lightBlue'>#{complex_return_type}</span></a>"
|
|
46
46
|
end
|
|
@@ -33,16 +33,16 @@ xml.html( "xmlns" => "http://www.w3.org/1999/xhtml" ) {
|
|
|
33
33
|
|
|
34
34
|
xml.h1 "#{ @document.service} Soap WebService interface description"
|
|
35
35
|
|
|
36
|
-
xml.p{ |y| y << "Endpoint URI:"
|
|
36
|
+
xml.p{ |y| y << "Endpoint URI:"
|
|
37
37
|
xml.span( "class" => "pre") {
|
|
38
|
-
xml.a( "href" => "#{@document.endpoint}") { |
|
|
39
|
-
}
|
|
38
|
+
xml.a( "href" => "#{@document.endpoint}") { |out| out << "#{@document.endpoint}" }
|
|
39
|
+
}
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
xml.p{ |y| y << "WSDL URI:"
|
|
42
|
+
xml.p{ |y| y << "WSDL URI:"
|
|
43
43
|
xml.span( "class" => "pre") {
|
|
44
|
-
xml.a( "href" => "#{@document.namespace}") { |
|
|
45
|
-
}
|
|
44
|
+
xml.a( "href" => "#{@document.namespace}") { |out| out << "#{@document.namespace}" }
|
|
45
|
+
}
|
|
46
46
|
}
|
|
47
47
|
xml.p ""
|
|
48
48
|
unless @document.service_description.blank?
|
data/install-travis-bundler.sh
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
|
|
3
|
-
set -o errexit
|
|
4
|
-
set -o pipefail
|
|
5
|
-
set -o nounset
|
|
3
|
+
# set -o errexit
|
|
4
|
+
# set -o pipefail
|
|
5
|
+
# set -o nounset
|
|
6
6
|
|
|
7
|
-
rails_version="$(
|
|
7
|
+
rails_version="$(basename "${BUNDLE_GEMFILE:="$(pwd)/Gemfile"}" .gemfile | sed 's/[^0-9.]*\([0-9.]*\).*/\1/')"
|
|
8
8
|
|
|
9
|
-
echo "Trying to compare rails ${rails_version} with 5.
|
|
9
|
+
echo "Trying to compare rails ${rails_version:="1"} with 5.2"
|
|
10
10
|
|
|
11
|
-
if (( $(echo "${rails_version%.*} >= 5.
|
|
11
|
+
if (( $(echo "${rails_version%.*} >= 5.2" |bc -l) )); then
|
|
12
12
|
echo "Installing Bundler v2"
|
|
13
|
-
gem uninstall -v '< 2.0' -i $(rvm gemdir)@global -ax bundler --force || true
|
|
13
|
+
gem uninstall -v '< 2.0' -i "$(rvm gemdir)"@global -ax bundler --force || true
|
|
14
14
|
gem install bundler -v '2.0.1'
|
|
15
|
+
export MY_BUNDLER_VERSION="_2.0.1_"
|
|
15
16
|
else
|
|
16
17
|
echo "Installing Bundler v1"
|
|
17
|
-
gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler --force || true
|
|
18
|
+
gem uninstall -v '>= 2' -i "$(rvm gemdir)"@global -ax bundler --force || true
|
|
18
19
|
gem install bundler -v '1.17.3'
|
|
20
|
+
export MY_BUNDLER_VERSION="_1.17.3_"
|
|
19
21
|
fi
|
|
20
22
|
|
|
21
|
-
unset rails_version
|
|
23
|
+
unset rails_version
|
|
@@ -10,27 +10,27 @@ module WashoutBuilder
|
|
|
10
10
|
# finds the complex class name of the current Washout::Param object and checks if is a duplicate
|
|
11
11
|
# @see #check_duplicate_complex_class
|
|
12
12
|
#
|
|
13
|
-
# @param [Array]
|
|
13
|
+
# @param [Array] classes_defined Array that is used for when iterating through descendants and ancestors
|
|
14
14
|
#
|
|
15
15
|
# @return [Class] the complex type name of the current object
|
|
16
16
|
#
|
|
17
17
|
# @api public
|
|
18
|
-
def find_complex_class_name(
|
|
18
|
+
def find_complex_class_name(classes_defined = [])
|
|
19
19
|
complex_class = struct? ? basic_type.tr('.', '/').camelize : nil
|
|
20
|
-
check_duplicate_complex_class(
|
|
20
|
+
check_duplicate_complex_class(classes_defined, complex_class) unless complex_class.nil? || classes_defined.blank?
|
|
21
21
|
complex_class
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
# checks if the complex class appears in the array of complex types
|
|
25
25
|
#
|
|
26
|
-
# @param [Array<Hash>]
|
|
26
|
+
# @param [Array<Hash>] classes_defined Array that is used for checking if a complex type is already classes_defined
|
|
27
27
|
# @param [Class] complex_class the complex type name used for searching
|
|
28
28
|
#
|
|
29
29
|
# @return [Boolean] returns true or false if the complex type is found inside the array
|
|
30
30
|
# @raise [RuntimeError] Raises a runtime error if is detected a duplicate use of the complex type
|
|
31
31
|
# @api public
|
|
32
|
-
def check_duplicate_complex_class(
|
|
33
|
-
complex_obj_found =
|
|
32
|
+
def check_duplicate_complex_class(classes_defined, complex_class)
|
|
33
|
+
complex_obj_found = classes_defined.find { |hash| hash[:class] == complex_class }
|
|
34
34
|
raise "Duplicate use of `#{basic_type}` type name. Consider using classified types." if !complex_obj_found.nil? && struct? && !classified?
|
|
35
35
|
end
|
|
36
36
|
|
|
@@ -40,13 +40,13 @@ module WashoutBuilder
|
|
|
40
40
|
#
|
|
41
41
|
# @param [WashOut::SoapConfig] config the configuration of the soap service
|
|
42
42
|
# @param [Clas] complex_class the complex type name of the object
|
|
43
|
-
# @param [Array<Hash>]
|
|
43
|
+
# @param [Array<Hash>] classes_defined An array that holds all the complex types found so far
|
|
44
44
|
#
|
|
45
45
|
# @return [Array<Class>, nil] returns nil if object not classified othewise an array of classes that are ancestors to curent object
|
|
46
46
|
#
|
|
47
47
|
# @api public
|
|
48
|
-
def complex_type_ancestors(config, complex_class,
|
|
49
|
-
classified? ? get_class_ancestors(config, complex_class,
|
|
48
|
+
def complex_type_ancestors(config, complex_class, classes_defined)
|
|
49
|
+
classified? ? get_class_ancestors(config, complex_class, classes_defined) : nil
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
# iterates through all the elements of the current object
|
|
@@ -94,7 +94,7 @@ module WashoutBuilder
|
|
|
94
94
|
# Description of method
|
|
95
95
|
#
|
|
96
96
|
# @param [String] complex_class A string that contains the name of a class
|
|
97
|
-
# @return [Class, nil] returns the class if it is
|
|
97
|
+
# @return [Class, nil] returns the class if it is classes_defined otherwise nil
|
|
98
98
|
# @api public
|
|
99
99
|
def find_class_from_string(complex_class)
|
|
100
100
|
complex_class.is_a?(Class) ? complex_class : complex_class.constantize
|
|
@@ -114,10 +114,10 @@ module WashoutBuilder
|
|
|
114
114
|
param_structure = find_param_structure
|
|
115
115
|
ancestor_structure = ancestor.find_param_structure
|
|
116
116
|
if param_structure.keys == ancestor_structure.keys
|
|
117
|
-
|
|
117
|
+
true
|
|
118
118
|
else
|
|
119
119
|
remove_type_inheritable_elements(ancestor_structure.keys)
|
|
120
|
-
|
|
120
|
+
false
|
|
121
121
|
end
|
|
122
122
|
end
|
|
123
123
|
|
|
@@ -132,10 +132,10 @@ module WashoutBuilder
|
|
|
132
132
|
def get_ancestors(class_name)
|
|
133
133
|
param_class = find_class_from_string(class_name)
|
|
134
134
|
if param_class.nil?
|
|
135
|
-
|
|
135
|
+
nil
|
|
136
136
|
else
|
|
137
137
|
base_type_class = WashoutBuilder::Type.base_type_class
|
|
138
|
-
filtered_classes =
|
|
138
|
+
filtered_classes = %w(ActiveRecord::Base Object BasicObject)
|
|
139
139
|
filtered_classes << base_type_class.to_s if base_type_class.present?
|
|
140
140
|
get_complex_type_ancestors(param_class, filtered_classes)
|
|
141
141
|
end
|
|
@@ -146,16 +146,16 @@ module WashoutBuilder
|
|
|
146
146
|
# @see WashOutParam#struct?
|
|
147
147
|
#
|
|
148
148
|
# @param [WashOut::SoapConfig] config an object that holds the soap configuration
|
|
149
|
-
# @param [Array<Hash>]
|
|
149
|
+
# @param [Array<Hash>] classes_defined An Array with all the complex types that have been detected till now
|
|
150
150
|
# @return [Array<Hash>] An array with all the complex types that
|
|
151
151
|
# @api public
|
|
152
|
-
def complex_type_descendants(config,
|
|
152
|
+
def complex_type_descendants(config, classes_defined)
|
|
153
153
|
if struct?
|
|
154
154
|
c_names = []
|
|
155
|
-
map.each { |obj| c_names.concat(obj.get_nested_complex_types(config,
|
|
156
|
-
|
|
155
|
+
map.each { |obj| c_names.concat(obj.get_nested_complex_types(config, classes_defined)) }
|
|
156
|
+
classes_defined.concat(c_names)
|
|
157
157
|
end
|
|
158
|
-
|
|
158
|
+
classes_defined
|
|
159
159
|
end
|
|
160
160
|
|
|
161
161
|
# Recursive method that tries to identify all the nested descendants of the current object
|
|
@@ -166,18 +166,18 @@ module WashoutBuilder
|
|
|
166
166
|
# @see #complex_type_descendants
|
|
167
167
|
#
|
|
168
168
|
# @param [WashOut::SoapConfig] config holds the soap configuration
|
|
169
|
-
# @param [Array<Hash>]
|
|
169
|
+
# @param [Array<Hash>] classes_defined An array with all the complex type structures that have been detected so far
|
|
170
170
|
# @return [Array<Hash>] An array with all the complex type that have been detected while iterating to all the descendants of the current object and also contains the previous ones
|
|
171
171
|
# @api public
|
|
172
|
-
def get_nested_complex_types(config,
|
|
173
|
-
|
|
174
|
-
complex_class = find_complex_class_name(
|
|
172
|
+
def get_nested_complex_types(config, classes_defined)
|
|
173
|
+
classes_defined = [] if classes_defined.blank?
|
|
174
|
+
complex_class = find_complex_class_name(classes_defined)
|
|
175
175
|
fix_descendant_wash_out_type(config, complex_class)
|
|
176
176
|
unless complex_class.nil?
|
|
177
|
-
|
|
177
|
+
classes_defined << complex_type_hash(complex_class, self, complex_type_ancestors(config, complex_class, classes_defined))
|
|
178
178
|
end
|
|
179
|
-
|
|
180
|
-
|
|
179
|
+
classes_defined = complex_type_descendants(config, classes_defined)
|
|
180
|
+
classes_defined.blank? ? [] : classes_defined.sort_by { |hash| hash[:class].to_s.downcase }.uniq
|
|
181
181
|
end
|
|
182
182
|
|
|
183
183
|
# method that constructs the a hash with the name of the ancestor ( the class name) and as value its elemen structure
|
|
@@ -199,9 +199,9 @@ module WashoutBuilder
|
|
|
199
199
|
# @api public
|
|
200
200
|
def complex_type_hash(class_name, object, ancestors)
|
|
201
201
|
{
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
202
|
+
class: class_name,
|
|
203
|
+
obj: object,
|
|
204
|
+
ancestors: ancestors
|
|
205
205
|
}
|
|
206
206
|
end
|
|
207
207
|
|
|
@@ -213,10 +213,10 @@ module WashoutBuilder
|
|
|
213
213
|
#
|
|
214
214
|
# @param [WashOut::SoapConfig] config holds the soap configuration
|
|
215
215
|
# @param [Class] class_name The name of the class that is used for fetching the ancestors
|
|
216
|
-
# @param [Array<Hash>]
|
|
216
|
+
# @param [Array<Hash>] classes_defined An Array with all the complex types that have been detected so far
|
|
217
217
|
# @return [Array<Class>] An Array of classes from which the class that is sent as parameter inherits from
|
|
218
218
|
# @api public
|
|
219
|
-
def get_class_ancestors(config, class_name,
|
|
219
|
+
def get_class_ancestors(config, class_name, classes_defined)
|
|
220
220
|
ancestors = get_ancestors(class_name)
|
|
221
221
|
return if ancestors.blank?
|
|
222
222
|
base_param_class = WashoutBuilder::Type.base_param_class
|
|
@@ -224,8 +224,8 @@ module WashoutBuilder
|
|
|
224
224
|
ancestor_object = base_param_class.parse_def(config, ancestor_structure(ancestors))[0]
|
|
225
225
|
bool_the_same = same_structure_as_ancestor?(ancestor_object)
|
|
226
226
|
unless bool_the_same
|
|
227
|
-
top_ancestors = get_class_ancestors(config, ancestors[0],
|
|
228
|
-
|
|
227
|
+
top_ancestors = get_class_ancestors(config, ancestors[0], classes_defined)
|
|
228
|
+
classes_defined << complex_type_hash(ancestors[0], ancestor_object, top_ancestors)
|
|
229
229
|
end
|
|
230
230
|
ancestors unless bool_the_same
|
|
231
231
|
end
|
|
@@ -16,18 +16,18 @@ module WashoutBuilder
|
|
|
16
16
|
# @see #find_fault_model_structure
|
|
17
17
|
# @see #fault_without_inheritable_elements
|
|
18
18
|
#
|
|
19
|
-
# @param [Array<Hash>]
|
|
19
|
+
# @param [Array<Hash>] classes_defined An array that contains all the information about all the exception classes found so far
|
|
20
20
|
# @param [Boolean] _debug = false An optional parameter used for debugging purposes
|
|
21
21
|
# @return [Array<Class>] Array with all the exception classes from which the current exception class inherits from
|
|
22
22
|
# @api public
|
|
23
|
-
def get_fault_class_ancestors(
|
|
23
|
+
def get_fault_class_ancestors(classes_defined, _debug = false)
|
|
24
24
|
bool_the_same = false
|
|
25
25
|
ancestors = fault_ancestors
|
|
26
26
|
if ancestors.blank?
|
|
27
|
-
|
|
27
|
+
classes_defined << fault_ancestor_hash(find_fault_model_structure, [])
|
|
28
28
|
else
|
|
29
|
-
|
|
30
|
-
ancestors[0].get_fault_class_ancestors(
|
|
29
|
+
classes_defined << fault_ancestor_hash(fault_without_inheritable_elements(ancestors), ancestors)
|
|
30
|
+
ancestors[0].get_fault_class_ancestors(classes_defined)
|
|
31
31
|
end
|
|
32
32
|
ancestors unless bool_the_same
|
|
33
33
|
end
|
|
@@ -47,7 +47,7 @@ module WashoutBuilder
|
|
|
47
47
|
# @return [Array<Class>] Returns an array with all the classes from which the current exception class inherits from
|
|
48
48
|
# @api public
|
|
49
49
|
def fault_ancestors
|
|
50
|
-
get_complex_type_ancestors(self,
|
|
50
|
+
get_complex_type_ancestors(self, %w(ActiveRecord::Base Object BasicObject Exception))
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
# constructs the structure of the current exception class by holding the instance, the structure, and its ancestors
|
|
@@ -80,9 +80,9 @@ module WashoutBuilder
|
|
|
80
80
|
# @api public
|
|
81
81
|
def check_valid_fault_method?(method)
|
|
82
82
|
method != :== && method != :! &&
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
(instance_methods.include?(:"#{method}=") ||
|
|
84
|
+
instance_methods.include?(:"#{method}")
|
|
85
|
+
)
|
|
86
86
|
end
|
|
87
87
|
|
|
88
88
|
# tries to fins all instance methods that have both a setter and a getter of the curent class
|
|
@@ -90,7 +90,6 @@ module WashoutBuilder
|
|
|
90
90
|
# @return [Array<String>] An array with all the atrributes and instance methods that have both a setter and a getter
|
|
91
91
|
# @api public
|
|
92
92
|
def find_fault_attributes
|
|
93
|
-
attrs = []
|
|
94
93
|
attrs = instance_methods(nil).map do |method|
|
|
95
94
|
method.to_s if check_valid_fault_method?(method)
|
|
96
95
|
end
|
|
@@ -105,12 +104,12 @@ module WashoutBuilder
|
|
|
105
104
|
# @api public
|
|
106
105
|
def get_fault_type_method(method_name)
|
|
107
106
|
case method_name.to_s.downcase
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
107
|
+
when 'code'
|
|
108
|
+
'integer'
|
|
109
|
+
when 'message', 'backtrace'
|
|
110
|
+
'string'
|
|
111
|
+
else
|
|
112
|
+
'string'
|
|
114
113
|
end
|
|
115
114
|
end
|
|
116
115
|
|
|
@@ -126,8 +125,8 @@ module WashoutBuilder
|
|
|
126
125
|
method_name = method_name.to_s.end_with?('=') ? method_name.to_s.delete('=') : method_name
|
|
127
126
|
primitive_type = get_fault_type_method(method_name)
|
|
128
127
|
h["#{method_name}"] = {
|
|
129
|
-
|
|
130
|
-
|
|
128
|
+
primitive: "#{primitive_type}",
|
|
129
|
+
member_type: nil
|
|
131
130
|
}
|
|
132
131
|
end
|
|
133
132
|
h
|
|
@@ -164,11 +164,11 @@ module WashoutBuilder
|
|
|
164
164
|
# @return [Array<WashOut::Param>] Returns an array with all the complex types sorted alphabetically
|
|
165
165
|
# @api public
|
|
166
166
|
def complex_types
|
|
167
|
-
|
|
167
|
+
classes_defined = []
|
|
168
168
|
(input_types + output_types).each do |p|
|
|
169
|
-
|
|
169
|
+
classes_defined.concat(p.get_nested_complex_types(config, classes_defined))
|
|
170
170
|
end
|
|
171
|
-
|
|
171
|
+
sort_complex_types(classes_defined, 'class')
|
|
172
172
|
end
|
|
173
173
|
|
|
174
174
|
# Returns an array with all the operations that can raise an exception at least or more
|
|
@@ -205,9 +205,9 @@ module WashoutBuilder
|
|
|
205
205
|
# @api public
|
|
206
206
|
def get_complex_fault_types(base_fault_array)
|
|
207
207
|
fault_types = []
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
208
|
+
classes_defined = filter_exceptions_raised
|
|
209
|
+
classes_defined = classes_defined.blank? ? base_fault_array : classes_defined.concat(base_fault_array)
|
|
210
|
+
classes_defined.each { |exception_class| exception_class.get_fault_class_ancestors(fault_types, true) } unless classes_defined.blank?
|
|
211
211
|
fault_types
|
|
212
212
|
end
|
|
213
213
|
|
|
@@ -4,6 +4,7 @@ module WashoutBuilder
|
|
|
4
4
|
class Engine < ::Rails::Engine
|
|
5
5
|
isolate_namespace WashoutBuilder
|
|
6
6
|
config.washout_builder = ActiveSupport::OrderedOptions.new
|
|
7
|
+
|
|
7
8
|
initializer 'washout_builder.configuration' do |app|
|
|
8
9
|
mounted_path = app.config.washout_builder[:mounted_path]
|
|
9
10
|
if WashoutBuilder::EnvChecker.new(app).available_for_env?(Rails.env)
|
|
@@ -9,7 +9,7 @@ module WashoutBuilder
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def available_for_env?(env_name)
|
|
12
|
-
if
|
|
12
|
+
if whitelist.present? || blacklist.present?
|
|
13
13
|
if whitelist.find{|a| blacklist.include?(a) }.blank?
|
|
14
14
|
if whitelist.include?('*') || (!valid_for_env?(blacklist, env_name) && valid_for_env?(whitelist, env_name))
|
|
15
15
|
return true
|
|
@@ -18,7 +18,7 @@ module WashoutBuilder
|
|
|
18
18
|
else
|
|
19
19
|
return true
|
|
20
20
|
end
|
|
21
|
-
|
|
21
|
+
false
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
|
|
@@ -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
|
|
|
@@ -33,7 +33,7 @@ describe WashoutBuilder::WashoutBuilderController, type: :controller do
|
|
|
33
33
|
it 'renders the template' do
|
|
34
34
|
get :all
|
|
35
35
|
expect(subject.instance_variable_get(:@file_to_serve)).to eq('wash_with_html/all_services')
|
|
36
|
-
expect(response.
|
|
36
|
+
expect(response.media_type).to eq("text/html")
|
|
37
37
|
expect(response).to have_http_status(:ok)
|
|
38
38
|
end
|
|
39
39
|
|
|
@@ -52,7 +52,7 @@ describe WashoutBuilder::WashoutBuilderController, type: :controller do
|
|
|
52
52
|
get :all, params
|
|
53
53
|
end
|
|
54
54
|
expect(subject.instance_variable_get(:@file_to_serve)).to eq('wash_with_html/doc')
|
|
55
|
-
expect(response.
|
|
55
|
+
expect(response.media_type).to eq("text/html")
|
|
56
56
|
expect(response).to have_http_status(:ok)
|
|
57
57
|
end
|
|
58
58
|
end
|
data/spec/dummy/public/404.html
CHANGED
data/spec/dummy/public/422.html
CHANGED
data/spec/dummy/public/500.html
CHANGED
|
@@ -4,9 +4,9 @@ require 'spec_helper'
|
|
|
4
4
|
describe WashoutBuilder::Document::ComplexType do
|
|
5
5
|
let(:soap_config) do
|
|
6
6
|
OpenStruct.new(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
camelize_wsdl: false,
|
|
8
|
+
namespace: '/api/wsdl',
|
|
9
|
+
description: 'some description'
|
|
10
10
|
)
|
|
11
11
|
end
|
|
12
12
|
|
|
@@ -17,10 +17,6 @@ describe WashoutBuilder::Document::ComplexType do
|
|
|
17
17
|
expect(subject.find_complex_class_name).to eq('ProjectType')
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
it 'returns the complex class name' do
|
|
21
|
-
expect(subject.find_complex_class_name).to eq('ProjectType')
|
|
22
|
-
end
|
|
23
|
-
|
|
24
20
|
it 'returns the complex class with namespace' do
|
|
25
21
|
expect(namespaced_object.find_complex_class_name).to eq('Api::TestType')
|
|
26
22
|
end
|
|
@@ -33,7 +29,7 @@ describe WashoutBuilder::Document::ComplexType do
|
|
|
33
29
|
end
|
|
34
30
|
|
|
35
31
|
it 'returns the param structure' do
|
|
36
|
-
expect(subject.find_param_structure).to eq(
|
|
32
|
+
expect(subject.find_param_structure).to eq("project"=>"struct")
|
|
37
33
|
end
|
|
38
34
|
|
|
39
35
|
it 'fixes the first descendant ' do
|
|
@@ -20,7 +20,7 @@ describe WashoutBuilder::Document::ExceptionModel do
|
|
|
20
20
|
|
|
21
21
|
specify { expect(InheritedExceptionModel.included_modules).to include(WashoutBuilder::Document::SharedComplexType) }
|
|
22
22
|
|
|
23
|
-
def
|
|
23
|
+
def exception_ancestor_hash(subject, structure, ancestors)
|
|
24
24
|
{ fault: subject, structure: structure, ancestors: ancestors }
|
|
25
25
|
end
|
|
26
26
|
|
|
@@ -48,11 +48,11 @@ describe WashoutBuilder::Document::ExceptionModel do
|
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
it 'fault_ancestor_hash' do
|
|
51
|
-
expect(subject.fault_ancestor_hash(structure, ancestors)).to eq(
|
|
51
|
+
expect(subject.fault_ancestor_hash(structure, ancestors)).to eq(exception_ancestor_hash(subject, structure, ancestors))
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
it 'gets the fault_ancestors' do
|
|
55
|
-
subject.expects(:get_complex_type_ancestors).with(subject,
|
|
55
|
+
subject.expects(:get_complex_type_ancestors).with(subject, %w(ActiveRecord::Base Object BasicObject Exception)).returns(ancestors)
|
|
56
56
|
expect(subject.fault_ancestors).to eq ancestors
|
|
57
57
|
end
|
|
58
58
|
|
|
@@ -69,12 +69,12 @@ describe WashoutBuilder::Document::ExceptionModel do
|
|
|
69
69
|
it 'gets the ancestors' do
|
|
70
70
|
subject.expects(:fault_ancestors).returns(nil)
|
|
71
71
|
subject.expects(:find_fault_model_structure).returns(structure)
|
|
72
|
-
subject.expects(:fault_ancestor_hash).with(structure, []).returns(
|
|
72
|
+
subject.expects(:fault_ancestor_hash).with(structure, []).returns(exception_ancestor_hash(subject, structure, ancestors))
|
|
73
73
|
expect(subject.get_fault_class_ancestors([])).to eq(nil)
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
it 'gets the ancestors' do
|
|
77
|
-
expected_defined =
|
|
77
|
+
expected_defined = exception_ancestor_hash(subject, structure, ancestors)
|
|
78
78
|
subject.expects(:fault_ancestors).returns(ancestors)
|
|
79
79
|
subject.expects(:fault_without_inheritable_elements).with(ancestors).returns(structure)
|
|
80
80
|
subject.expects(:fault_ancestor_hash).returns(expected_defined)
|
data/spec/spec_helper.rb
CHANGED
|
@@ -98,11 +98,11 @@ end
|
|
|
98
98
|
class WashoutBuilderTestError < base_exception
|
|
99
99
|
end
|
|
100
100
|
|
|
101
|
-
def get_wash_out_param(
|
|
101
|
+
def get_wash_out_param(class_or_struct, soap_config = OpenStruct.new(
|
|
102
102
|
camelize_wsdl: false,
|
|
103
103
|
namespace: '/api/wsdl'
|
|
104
104
|
))
|
|
105
|
-
WashOut::Param.parse_builder_def(soap_config,
|
|
105
|
+
WashOut::Param.parse_builder_def(soap_config, class_or_struct)[0]
|
|
106
106
|
end
|
|
107
107
|
|
|
108
108
|
class Hash
|
|
@@ -133,6 +133,16 @@ class Hash
|
|
|
133
133
|
end
|
|
134
134
|
end
|
|
135
135
|
|
|
136
|
+
Builder::XmlBase.class_eval do
|
|
137
|
+
|
|
138
|
+
alias_method :old_method_missing, :method_missing
|
|
139
|
+
|
|
140
|
+
def method_missing(sym, *args, &block)
|
|
141
|
+
return if ['inspect'].include?(sym.to_s)
|
|
142
|
+
old_method_missing(sym, *args, &block)
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
|
|
136
146
|
unless defined?(silence_stream) # Rails 5
|
|
137
147
|
def silence_stream(stream)
|
|
138
148
|
old_stream = stream.dup
|
data/washout_builder.gemspec
CHANGED
|
@@ -21,22 +21,4 @@ Gem::Specification.new do |s|
|
|
|
21
21
|
|
|
22
22
|
s.add_runtime_dependency 'wash_out', '>= 0.9.1', '>= 0.9.1'
|
|
23
23
|
s.add_runtime_dependency 'activesupport', '>= 4.0', '>= 4.0'
|
|
24
|
-
|
|
25
|
-
s.add_development_dependency 'wasabi', '~> 3.5', '>= 3.5'
|
|
26
|
-
s.add_development_dependency 'savon', '~> 2.11', '>= 2.11'
|
|
27
|
-
s.add_development_dependency 'httpi', '~> 2.4', '>= 2.4'
|
|
28
|
-
s.add_development_dependency 'nokogiri', '~> 1.7', '>= 1.7'
|
|
29
|
-
|
|
30
|
-
s.add_development_dependency 'rspec-rails','4.0.0.beta3'
|
|
31
|
-
s.add_development_dependency 'appraisal', '~> 2.1', '>= 2.1'
|
|
32
|
-
s.add_development_dependency 'simplecov', '~> 0.12', '>= 0.12'
|
|
33
|
-
s.add_development_dependency 'simplecov-summary', '~> 0.0.5', '>= 0.0.5'
|
|
34
|
-
s.add_development_dependency 'mocha','~> 1.2', '>= 1.2'
|
|
35
|
-
s.add_development_dependency 'coveralls','~> 0.8', '>= 0.8'
|
|
36
|
-
|
|
37
|
-
s.add_development_dependency "yard", '~> 0.9', '>= 0.9.20'
|
|
38
|
-
s.add_development_dependency 'yard-rspec', '~> 0.1', '>= 0.1'
|
|
39
|
-
s.add_development_dependency 'redcarpet', '~> 3.4', '>= 3.4'
|
|
40
|
-
s.add_development_dependency 'github-markup', '~> 1.4', '>= 1.4'
|
|
41
|
-
s.add_development_dependency 'inch', '~> 0.7'
|
|
42
24
|
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.7.
|
|
4
|
+
version: 1.7.5
|
|
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: 2020-02-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: wash_out
|
|
@@ -38,294 +38,6 @@ dependencies:
|
|
|
38
38
|
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '4.0'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: wasabi
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - ">="
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '3.5'
|
|
48
|
-
- - "~>"
|
|
49
|
-
- !ruby/object:Gem::Version
|
|
50
|
-
version: '3.5'
|
|
51
|
-
type: :development
|
|
52
|
-
prerelease: false
|
|
53
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
54
|
-
requirements:
|
|
55
|
-
- - ">="
|
|
56
|
-
- !ruby/object:Gem::Version
|
|
57
|
-
version: '3.5'
|
|
58
|
-
- - "~>"
|
|
59
|
-
- !ruby/object:Gem::Version
|
|
60
|
-
version: '3.5'
|
|
61
|
-
- !ruby/object:Gem::Dependency
|
|
62
|
-
name: savon
|
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
|
64
|
-
requirements:
|
|
65
|
-
- - ">="
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version: '2.11'
|
|
68
|
-
- - "~>"
|
|
69
|
-
- !ruby/object:Gem::Version
|
|
70
|
-
version: '2.11'
|
|
71
|
-
type: :development
|
|
72
|
-
prerelease: false
|
|
73
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
74
|
-
requirements:
|
|
75
|
-
- - ">="
|
|
76
|
-
- !ruby/object:Gem::Version
|
|
77
|
-
version: '2.11'
|
|
78
|
-
- - "~>"
|
|
79
|
-
- !ruby/object:Gem::Version
|
|
80
|
-
version: '2.11'
|
|
81
|
-
- !ruby/object:Gem::Dependency
|
|
82
|
-
name: httpi
|
|
83
|
-
requirement: !ruby/object:Gem::Requirement
|
|
84
|
-
requirements:
|
|
85
|
-
- - ">="
|
|
86
|
-
- !ruby/object:Gem::Version
|
|
87
|
-
version: '2.4'
|
|
88
|
-
- - "~>"
|
|
89
|
-
- !ruby/object:Gem::Version
|
|
90
|
-
version: '2.4'
|
|
91
|
-
type: :development
|
|
92
|
-
prerelease: false
|
|
93
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
94
|
-
requirements:
|
|
95
|
-
- - ">="
|
|
96
|
-
- !ruby/object:Gem::Version
|
|
97
|
-
version: '2.4'
|
|
98
|
-
- - "~>"
|
|
99
|
-
- !ruby/object:Gem::Version
|
|
100
|
-
version: '2.4'
|
|
101
|
-
- !ruby/object:Gem::Dependency
|
|
102
|
-
name: nokogiri
|
|
103
|
-
requirement: !ruby/object:Gem::Requirement
|
|
104
|
-
requirements:
|
|
105
|
-
- - ">="
|
|
106
|
-
- !ruby/object:Gem::Version
|
|
107
|
-
version: '1.7'
|
|
108
|
-
- - "~>"
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: '1.7'
|
|
111
|
-
type: :development
|
|
112
|
-
prerelease: false
|
|
113
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - ">="
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: '1.7'
|
|
118
|
-
- - "~>"
|
|
119
|
-
- !ruby/object:Gem::Version
|
|
120
|
-
version: '1.7'
|
|
121
|
-
- !ruby/object:Gem::Dependency
|
|
122
|
-
name: rspec-rails
|
|
123
|
-
requirement: !ruby/object:Gem::Requirement
|
|
124
|
-
requirements:
|
|
125
|
-
- - '='
|
|
126
|
-
- !ruby/object:Gem::Version
|
|
127
|
-
version: 4.0.0.beta3
|
|
128
|
-
type: :development
|
|
129
|
-
prerelease: false
|
|
130
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
131
|
-
requirements:
|
|
132
|
-
- - '='
|
|
133
|
-
- !ruby/object:Gem::Version
|
|
134
|
-
version: 4.0.0.beta3
|
|
135
|
-
- !ruby/object:Gem::Dependency
|
|
136
|
-
name: appraisal
|
|
137
|
-
requirement: !ruby/object:Gem::Requirement
|
|
138
|
-
requirements:
|
|
139
|
-
- - ">="
|
|
140
|
-
- !ruby/object:Gem::Version
|
|
141
|
-
version: '2.1'
|
|
142
|
-
- - "~>"
|
|
143
|
-
- !ruby/object:Gem::Version
|
|
144
|
-
version: '2.1'
|
|
145
|
-
type: :development
|
|
146
|
-
prerelease: false
|
|
147
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
148
|
-
requirements:
|
|
149
|
-
- - ">="
|
|
150
|
-
- !ruby/object:Gem::Version
|
|
151
|
-
version: '2.1'
|
|
152
|
-
- - "~>"
|
|
153
|
-
- !ruby/object:Gem::Version
|
|
154
|
-
version: '2.1'
|
|
155
|
-
- !ruby/object:Gem::Dependency
|
|
156
|
-
name: simplecov
|
|
157
|
-
requirement: !ruby/object:Gem::Requirement
|
|
158
|
-
requirements:
|
|
159
|
-
- - ">="
|
|
160
|
-
- !ruby/object:Gem::Version
|
|
161
|
-
version: '0.12'
|
|
162
|
-
- - "~>"
|
|
163
|
-
- !ruby/object:Gem::Version
|
|
164
|
-
version: '0.12'
|
|
165
|
-
type: :development
|
|
166
|
-
prerelease: false
|
|
167
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
168
|
-
requirements:
|
|
169
|
-
- - ">="
|
|
170
|
-
- !ruby/object:Gem::Version
|
|
171
|
-
version: '0.12'
|
|
172
|
-
- - "~>"
|
|
173
|
-
- !ruby/object:Gem::Version
|
|
174
|
-
version: '0.12'
|
|
175
|
-
- !ruby/object:Gem::Dependency
|
|
176
|
-
name: simplecov-summary
|
|
177
|
-
requirement: !ruby/object:Gem::Requirement
|
|
178
|
-
requirements:
|
|
179
|
-
- - ">="
|
|
180
|
-
- !ruby/object:Gem::Version
|
|
181
|
-
version: 0.0.5
|
|
182
|
-
- - "~>"
|
|
183
|
-
- !ruby/object:Gem::Version
|
|
184
|
-
version: 0.0.5
|
|
185
|
-
type: :development
|
|
186
|
-
prerelease: false
|
|
187
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
188
|
-
requirements:
|
|
189
|
-
- - ">="
|
|
190
|
-
- !ruby/object:Gem::Version
|
|
191
|
-
version: 0.0.5
|
|
192
|
-
- - "~>"
|
|
193
|
-
- !ruby/object:Gem::Version
|
|
194
|
-
version: 0.0.5
|
|
195
|
-
- !ruby/object:Gem::Dependency
|
|
196
|
-
name: mocha
|
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
|
198
|
-
requirements:
|
|
199
|
-
- - ">="
|
|
200
|
-
- !ruby/object:Gem::Version
|
|
201
|
-
version: '1.2'
|
|
202
|
-
- - "~>"
|
|
203
|
-
- !ruby/object:Gem::Version
|
|
204
|
-
version: '1.2'
|
|
205
|
-
type: :development
|
|
206
|
-
prerelease: false
|
|
207
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
208
|
-
requirements:
|
|
209
|
-
- - ">="
|
|
210
|
-
- !ruby/object:Gem::Version
|
|
211
|
-
version: '1.2'
|
|
212
|
-
- - "~>"
|
|
213
|
-
- !ruby/object:Gem::Version
|
|
214
|
-
version: '1.2'
|
|
215
|
-
- !ruby/object:Gem::Dependency
|
|
216
|
-
name: coveralls
|
|
217
|
-
requirement: !ruby/object:Gem::Requirement
|
|
218
|
-
requirements:
|
|
219
|
-
- - ">="
|
|
220
|
-
- !ruby/object:Gem::Version
|
|
221
|
-
version: '0.8'
|
|
222
|
-
- - "~>"
|
|
223
|
-
- !ruby/object:Gem::Version
|
|
224
|
-
version: '0.8'
|
|
225
|
-
type: :development
|
|
226
|
-
prerelease: false
|
|
227
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
228
|
-
requirements:
|
|
229
|
-
- - ">="
|
|
230
|
-
- !ruby/object:Gem::Version
|
|
231
|
-
version: '0.8'
|
|
232
|
-
- - "~>"
|
|
233
|
-
- !ruby/object:Gem::Version
|
|
234
|
-
version: '0.8'
|
|
235
|
-
- !ruby/object:Gem::Dependency
|
|
236
|
-
name: yard
|
|
237
|
-
requirement: !ruby/object:Gem::Requirement
|
|
238
|
-
requirements:
|
|
239
|
-
- - "~>"
|
|
240
|
-
- !ruby/object:Gem::Version
|
|
241
|
-
version: '0.9'
|
|
242
|
-
- - ">="
|
|
243
|
-
- !ruby/object:Gem::Version
|
|
244
|
-
version: 0.9.20
|
|
245
|
-
type: :development
|
|
246
|
-
prerelease: false
|
|
247
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
248
|
-
requirements:
|
|
249
|
-
- - "~>"
|
|
250
|
-
- !ruby/object:Gem::Version
|
|
251
|
-
version: '0.9'
|
|
252
|
-
- - ">="
|
|
253
|
-
- !ruby/object:Gem::Version
|
|
254
|
-
version: 0.9.20
|
|
255
|
-
- !ruby/object:Gem::Dependency
|
|
256
|
-
name: yard-rspec
|
|
257
|
-
requirement: !ruby/object:Gem::Requirement
|
|
258
|
-
requirements:
|
|
259
|
-
- - ">="
|
|
260
|
-
- !ruby/object:Gem::Version
|
|
261
|
-
version: '0.1'
|
|
262
|
-
- - "~>"
|
|
263
|
-
- !ruby/object:Gem::Version
|
|
264
|
-
version: '0.1'
|
|
265
|
-
type: :development
|
|
266
|
-
prerelease: false
|
|
267
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
268
|
-
requirements:
|
|
269
|
-
- - ">="
|
|
270
|
-
- !ruby/object:Gem::Version
|
|
271
|
-
version: '0.1'
|
|
272
|
-
- - "~>"
|
|
273
|
-
- !ruby/object:Gem::Version
|
|
274
|
-
version: '0.1'
|
|
275
|
-
- !ruby/object:Gem::Dependency
|
|
276
|
-
name: redcarpet
|
|
277
|
-
requirement: !ruby/object:Gem::Requirement
|
|
278
|
-
requirements:
|
|
279
|
-
- - ">="
|
|
280
|
-
- !ruby/object:Gem::Version
|
|
281
|
-
version: '3.4'
|
|
282
|
-
- - "~>"
|
|
283
|
-
- !ruby/object:Gem::Version
|
|
284
|
-
version: '3.4'
|
|
285
|
-
type: :development
|
|
286
|
-
prerelease: false
|
|
287
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
288
|
-
requirements:
|
|
289
|
-
- - ">="
|
|
290
|
-
- !ruby/object:Gem::Version
|
|
291
|
-
version: '3.4'
|
|
292
|
-
- - "~>"
|
|
293
|
-
- !ruby/object:Gem::Version
|
|
294
|
-
version: '3.4'
|
|
295
|
-
- !ruby/object:Gem::Dependency
|
|
296
|
-
name: github-markup
|
|
297
|
-
requirement: !ruby/object:Gem::Requirement
|
|
298
|
-
requirements:
|
|
299
|
-
- - ">="
|
|
300
|
-
- !ruby/object:Gem::Version
|
|
301
|
-
version: '1.4'
|
|
302
|
-
- - "~>"
|
|
303
|
-
- !ruby/object:Gem::Version
|
|
304
|
-
version: '1.4'
|
|
305
|
-
type: :development
|
|
306
|
-
prerelease: false
|
|
307
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
308
|
-
requirements:
|
|
309
|
-
- - ">="
|
|
310
|
-
- !ruby/object:Gem::Version
|
|
311
|
-
version: '1.4'
|
|
312
|
-
- - "~>"
|
|
313
|
-
- !ruby/object:Gem::Version
|
|
314
|
-
version: '1.4'
|
|
315
|
-
- !ruby/object:Gem::Dependency
|
|
316
|
-
name: inch
|
|
317
|
-
requirement: !ruby/object:Gem::Requirement
|
|
318
|
-
requirements:
|
|
319
|
-
- - "~>"
|
|
320
|
-
- !ruby/object:Gem::Version
|
|
321
|
-
version: '0.7'
|
|
322
|
-
type: :development
|
|
323
|
-
prerelease: false
|
|
324
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
325
|
-
requirements:
|
|
326
|
-
- - "~>"
|
|
327
|
-
- !ruby/object:Gem::Version
|
|
328
|
-
version: '0.7'
|
|
329
41
|
description: 'WashOut Soap Service HTML-Documentation generator (extends WashOut https://github.com/inossidabile/wash_out/) '
|
|
330
42
|
email: raoul_ice@yahoo.com
|
|
331
43
|
executables: []
|
|
@@ -446,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
446
158
|
- !ruby/object:Gem::Version
|
|
447
159
|
version: '0'
|
|
448
160
|
requirements: []
|
|
449
|
-
rubygems_version: 3.
|
|
161
|
+
rubygems_version: 3.1.2
|
|
450
162
|
signing_key:
|
|
451
163
|
specification_version: 4
|
|
452
164
|
summary: WashOut Soap Service HTML-Documentation generator (extends WashOut https://github.com/inossidabile/wash_out/)
|