washout_builder 0.13.7 → 0.13.8
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 +8 -8
- data/Appraisals +4 -0
- data/README.rdoc +2 -1
- data/lib/washout_builder/engine.rb +3 -6
- data/lib/washout_builder/version.rb +13 -2
- data/spec/lib/washout_builder/document/complex_type_spec.rb +136 -2
- data/spec/lib/washout_builder/document/exception_model_spec.rb +13 -1
- data/spec/lib/washout_builder_spec.rb +1 -1
- data/washout_builder.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDBmZWYxODM5YTU5YmZjZmZkNGYwZWJmNWZiN2Y5ODg5YTkwZjE4MA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZGRjMDc3YmI2YWFiOGFkMzk3N2Y4Nzc5MGM0ZWMwNmZlYWM2NzY0NA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MzQyZjY1MGUyMTY4OTA4YTNhYmRiYjNlM2IyOThlMGUwZmVjNjc1NDExOTc1
|
10
|
+
NTJmYTlmNmJiZjkxNTVkNjg5ZmVmYjU2YzUxYTc3OTM5ZTM2NGZlZDY1NzAy
|
11
|
+
MWE0ZmYxZjkwYzU5OTQ2YjY0ZWU0ODk2YzYzM2U1NmQwMjZiMWI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MjJiM2VhOTIxYjU4NGJjOThkZWQ5MTNmM2E0ZTc2NTQyYWU5ZDA3ZmQ0NjZh
|
14
|
+
YzZkNjFhNDZjOWJlZWUwNWQ0MjVjYWMyYjI4YzY4NzI0MjJkMzMzZWU0MDZk
|
15
|
+
MWE4NzI0MzNlNGFiNTdmODk2ZjU2ZGU5YWUzMDE1NmJjNDk5ODc=
|
data/Appraisals
CHANGED
data/README.rdoc
CHANGED
@@ -4,7 +4,8 @@
|
|
4
4
|
{<img src="https://coveralls.io/repos/bogdanRada/washout_builder/badge.png" alt="Coverage Status" />}[https://coveralls.io/r/bogdanRada/washout_builder]
|
5
5
|
{<img src="https://codeclimate.com/github/bogdanRada/washout_builder.png" />}[https://codeclimate.com/github/bogdanRada/washout_builder]
|
6
6
|
{<img src="https://reposs.herokuapp.com/?path=bogdanRada/washout_builder" alt="Repo Size"/>}[https://github.com/bogdanRada/washout_builder]
|
7
|
-
{<img src="https://gem-
|
7
|
+
{<img src="https://ruby-gem-downloads-badge.herokuapp.com/washout_builder?type=total&style=dynamic" alt="Gem Downloads"/>}[https://rubygems.org/gems/washout_builder]
|
8
|
+
|
8
9
|
= Overview
|
9
10
|
WashOutBuilder is a Soap Service Documentation generator (extends WashOut https://github.com/inossidabile/wash_out/)
|
10
11
|
|
@@ -1,11 +1,8 @@
|
|
1
1
|
module WashoutBuilder
|
2
2
|
class Engine < ::Rails::Engine
|
3
3
|
isolate_namespace WashoutBuilder
|
4
|
-
initializer "
|
5
|
-
|
6
|
-
app.config.middleware.insert_after 'ActionDispatch::ShowExceptions', WashOut::Middleware if defined?(WashOut::Middleware)
|
7
|
-
app.config.middleware.insert_after 'ActionDispatch::ShowExceptions', WashOut::Middlewares::Catcher if defined?(WashOut::Middlewares::Catcher)
|
8
|
-
end
|
4
|
+
initializer "washout_builder.configuration" do |app|
|
5
|
+
|
9
6
|
end
|
10
|
-
end
|
7
|
+
end
|
11
8
|
end
|
@@ -1,3 +1,14 @@
|
|
1
|
-
module WashoutBuilder
|
2
|
-
|
1
|
+
module WashoutBuilder # Returns the version of the currently loaded Rails as a <tt>Gem::Version</tt>
|
2
|
+
def self.gem_version
|
3
|
+
Gem::Version.new VERSION::STRING
|
4
|
+
end
|
5
|
+
|
6
|
+
module VERSION
|
7
|
+
MAJOR = 0
|
8
|
+
MINOR = 13
|
9
|
+
TINY = 8
|
10
|
+
PRE = nil
|
11
|
+
|
12
|
+
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
|
13
|
+
end
|
3
14
|
end
|
@@ -30,8 +30,7 @@ describe WashoutBuilder::Document::ComplexType do
|
|
30
30
|
it "returns error if classname already detected (only used for hashes)" do
|
31
31
|
subject.stubs(:classified?).returns(false)
|
32
32
|
subject.stubs(:basic_type).returns("ProjectType")
|
33
|
-
defined = [ { :class
|
34
|
-
defined.stubs(:detect).returns({:class => "ProjectType"})
|
33
|
+
defined = [ { :class => "ProjectType" }]
|
35
34
|
expect {subject.get_complex_class_name(defined) }.to raise_error(RuntimeError, "Duplicate use of `ProjectType` type name. Consider using classified types.")
|
36
35
|
end
|
37
36
|
|
@@ -50,8 +49,143 @@ describe WashoutBuilder::Document::ComplexType do
|
|
50
49
|
subject.get_ancestors(ProjectType).should eq([])
|
51
50
|
end
|
52
51
|
|
52
|
+
it "same as ancestor" do
|
53
|
+
subject.get_ancestors("WashoutBuilderSomeInexistentClass").should eq(nil)
|
54
|
+
end
|
55
|
+
|
56
|
+
it "returns the complex type ancestors" do
|
57
|
+
expected = "some_name"
|
58
|
+
subject.stubs(:classified?).returns(true)
|
59
|
+
subject.expects(:get_class_ancestors).with(soap_config, ProjectType, []).returns(expected)
|
60
|
+
subject.complex_type_ancestors(soap_config, ProjectType, [] ).should eq(expected)
|
61
|
+
end
|
62
|
+
|
63
|
+
it "returns nil for unclassified objects" do
|
64
|
+
subject.stubs(:classified?).returns(false)
|
65
|
+
subject.complex_type_ancestors(soap_config, ProjectType, [] ).should eq(nil)
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should remove inheritable elements" do
|
69
|
+
subject_dup = subject.dup
|
70
|
+
subject_dup.remove_type_inheritable_elements(["name"])
|
71
|
+
subject_dup.map.detect {|element| element.name == "name" }.should eq(nil)
|
72
|
+
end
|
73
|
+
|
74
|
+
|
75
|
+
it "should return true if same structure" do
|
76
|
+
subject.same_structure_as_ancestor?(subject).should eq(true)
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
it "should return true if same structure" do
|
82
|
+
subject.same_structure_as_ancestor?(get_wash_out_param(Fluffy)).should eq(false)
|
83
|
+
end
|
84
|
+
|
85
|
+
|
86
|
+
describe '#complex_type_descendants' do
|
87
|
+
|
88
|
+
it "returns empty array if not struct?" do
|
89
|
+
defined = []
|
90
|
+
subject.stubs(:struct?).returns(false)
|
91
|
+
subject.complex_type_descendants(soap_config, defined).should eq(defined)
|
92
|
+
end
|
93
|
+
|
94
|
+
it "returns the descendants if struct?" do
|
95
|
+
defined = []
|
96
|
+
subject.map.each { |obj|
|
97
|
+
obj.expects(:get_nested_complex_types).with(soap_config, defined).returns([obj.name])
|
98
|
+
}
|
99
|
+
subject.stubs(:struct?).returns(true)
|
100
|
+
subject.complex_type_descendants(soap_config, defined).should eq(subject.map.collect{|x| x.name } )
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
53
104
|
|
105
|
+
|
106
|
+
describe "#get_nested_complex_types" do
|
107
|
+
|
108
|
+
let(:complex_class) {"ProjectType" }
|
109
|
+
let(:ancestors) { ["something"]}
|
110
|
+
let(:complex_type_hash) { {:class =>complex_class, :obj =>subject , :ancestors => ancestors }}
|
111
|
+
let(:expected) { [complex_type_hash]}
|
112
|
+
|
113
|
+
it "returns the complex class ancestors" do
|
114
|
+
defined = []
|
115
|
+
subject.expects(:get_complex_class_name).with(defined).returns(complex_class)
|
116
|
+
subject.expects(:fix_descendant_wash_out_type).with(soap_config, complex_class).returns(true)
|
117
|
+
subject.expects(:complex_type_ancestors).with(soap_config, complex_class, defined).returns(ancestors)
|
118
|
+
subject.expects(:complex_type_hash).with(complex_class, subject, ancestors ).returns(complex_type_hash)
|
119
|
+
subject.expects(:complex_type_descendants).with(soap_config, [complex_type_hash]).returns(expected)
|
120
|
+
subject.get_nested_complex_types(soap_config, defined).should eq(expected)
|
121
|
+
end
|
122
|
+
|
123
|
+
it "returns the the descendants" do
|
124
|
+
defined = nil
|
125
|
+
subject.expects(:get_complex_class_name).with([]).returns(nil)
|
126
|
+
subject.expects(:fix_descendant_wash_out_type).with(soap_config, nil).returns(true)
|
127
|
+
subject.expects(:complex_type_descendants).with(soap_config, []).returns(expected)
|
128
|
+
subject.get_nested_complex_types(soap_config, defined).should eq(expected)
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
|
133
|
+
|
134
|
+
describe '#ancestor_structure' do
|
135
|
+
let(:ancestor_class) {ProjectType}
|
136
|
+
let(:ancestors) { [ancestor_class] }
|
137
|
+
|
138
|
+
|
139
|
+
it "returns the ancestor structure" do
|
140
|
+
subject.ancestor_structure(ancestors).should eq({ ancestors[0].to_s.downcase => ancestors[0].wash_out_param_map })
|
141
|
+
end
|
142
|
+
|
143
|
+
end
|
54
144
|
|
55
145
|
|
146
|
+
describe '#complex_type_hash' do
|
147
|
+
let(:complex_class) {"ProjectType" }
|
148
|
+
let(:ancestors) { ["something"]}
|
149
|
+
|
150
|
+
|
151
|
+
it "returns the complex_type_hash" do
|
152
|
+
subject.complex_type_hash(complex_class, subject, ancestors).should eq({:class =>complex_class, :obj =>subject , :ancestors => ancestors })
|
153
|
+
end
|
154
|
+
|
155
|
+
end
|
156
|
+
|
157
|
+
|
158
|
+
describe '#get_class_ancestors' do
|
159
|
+
let(:class_name) {"ProjectType" }
|
160
|
+
let(:defined) { [] }
|
161
|
+
let(:ancestors) { ["SomeInexistentClass"] }
|
162
|
+
let(:ancestor_structure) {{ ancestors[0].to_s.downcase => "bla" }}
|
163
|
+
let(:top_ancestors){}
|
164
|
+
let(:complex_type_hash) { {:class =>class_name, :obj =>subject , :ancestors => ancestors }}
|
165
|
+
|
166
|
+
it "returns nil if no ancestors" do
|
167
|
+
subject.expects(:get_ancestors).with(class_name).returns(nil)
|
168
|
+
subject.get_class_ancestors(soap_config, class_name, defined).should eq(nil)
|
169
|
+
end
|
170
|
+
|
171
|
+
it "returns the ancestors and the top ones" do
|
172
|
+
skip "recursion problem"
|
173
|
+
subject.expects(:get_ancestors).with(class_name).returns(ancestors)
|
174
|
+
subject.expects(:ancestor_structure).with(ancestors).returns(ancestor_structure)
|
175
|
+
WashOut::Param.stubs(:parse_def).returns([namespaced_object])
|
176
|
+
subject.expects(:same_structure_as_ancestor?).with(namespaced_object).returns(false)
|
177
|
+
subject.expects(:complex_type_hash).returns(complex_type_hash)
|
178
|
+
subject.get_class_ancestors(soap_config, class_name, defined).should eq([complex_type_hash])
|
179
|
+
end
|
180
|
+
|
181
|
+
it "returns nil if same structure as ancestor" do
|
182
|
+
subject.expects(:get_ancestors).with(class_name).returns(ancestors)
|
183
|
+
subject.expects(:ancestor_structure).with(ancestors).returns(ancestor_structure)
|
184
|
+
WashOut::Param.stubs(:parse_def).returns([namespaced_object])
|
185
|
+
subject.expects(:same_structure_as_ancestor?).with(namespaced_object).returns(true)
|
186
|
+
subject.get_class_ancestors(soap_config, class_name, defined).should eq(nil)
|
187
|
+
end
|
188
|
+
|
189
|
+
end
|
56
190
|
|
57
191
|
end
|
@@ -10,6 +10,13 @@ describe WashoutBuilder::Document::ExceptionModel do
|
|
10
10
|
let(:base_structure) { {"code"=>{:primitive=>"integer", :member_type=>nil}, "message"=>{:primitive=>"string", :member_type=>nil}, "backtrace"=>{:primitive=>"string", :member_type=>nil}}}
|
11
11
|
let(:ancestors) {[base_exception]}
|
12
12
|
|
13
|
+
[
|
14
|
+
WashoutBuilder::Document::SharedComplexType
|
15
|
+
].each do |extension|
|
16
|
+
specify { described_class.included_modules.should include(extension) }
|
17
|
+
end
|
18
|
+
|
19
|
+
|
13
20
|
def fault_ancestor_hash(subject, structure, ancestors)
|
14
21
|
{:fault => subject,:structure =>structure ,:ancestors => ancestors }
|
15
22
|
end
|
@@ -46,6 +53,11 @@ describe WashoutBuilder::Document::ExceptionModel do
|
|
46
53
|
subject.fault_ancestors.should eq ancestors
|
47
54
|
end
|
48
55
|
|
56
|
+
it "gets the attribute type" do
|
57
|
+
subject.get_fault_type_method("some_name").should eq "string"
|
58
|
+
end
|
59
|
+
|
60
|
+
|
49
61
|
it "gets the fault_without_inheritable_elements" do
|
50
62
|
ancestors[0].expects(:get_fault_model_structure).returns(structure)
|
51
63
|
subject.expects(:remove_fault_type_inheritable_elements).with(structure.keys)
|
@@ -60,7 +72,7 @@ describe WashoutBuilder::Document::ExceptionModel do
|
|
60
72
|
end
|
61
73
|
|
62
74
|
it "gets the ancestors" do
|
63
|
-
|
75
|
+
expected_defined = fault_ancestor_hash(subject, structure, ancestors)
|
64
76
|
subject.expects(:fault_ancestors).returns(ancestors)
|
65
77
|
subject.expects(:fault_without_inheritable_elements).with(ancestors).returns(structure)
|
66
78
|
subject.expects(:fault_ancestor_hash).returns(expected_defined)
|
data/washout_builder.gemspec
CHANGED
@@ -2,7 +2,7 @@ require File.expand_path("../lib/washout_builder/version", __FILE__)
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "washout_builder"
|
5
|
-
s.version = WashoutBuilder
|
5
|
+
s.version = WashoutBuilder.gem_version
|
6
6
|
s.platform = Gem::Platform::RUBY
|
7
7
|
s.summary = "WashOut Soap Service HTML-Documentation generator (extends WashOut https://github.com/inossidabile/wash_out/)"
|
8
8
|
s.email = "raoul_ice@yahoo.com"
|
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.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bogdanRada
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: wash_out
|