washout_builder 0.11.8 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.rdoc +10 -1
- data/app/controllers/washout_builder/washout_builder_controller.rb +3 -3
- data/config/routes.rb +1 -1
- data/lib/washout_builder.rb +0 -17
- data/lib/washout_builder/soap.rb +0 -1
- data/lib/washout_builder/version.rb +1 -1
- metadata +1 -4
- data/lib/washout_builder/dispatcher.rb +0 -28
- data/spec/lib/washout_builder/dispatcher_spec.rb +0 -54
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZjhmZjI2ZjY3MTcwNTI3YTEzY2Q0ZDMwYjkwZjNlNGY4Y2U3N2MzYw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NDk3ODhiOTY4ZDFjMWMwOGM2OTQzYzhiYjY5ZGZkZmJkZTM3MmRiNg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ODAyYzg5YjNmYzczYzUwMDllNDExODc1MTQwM2Q0YWNkYTQ3ZGQ3NTkzNmEy
|
10
|
+
NTNmNzk3YzU0ZDVjYjA2NDRkN2NhNDhjZTY3NmQ4NzI4MTRiNTZkNjU5YzZm
|
11
|
+
NDIxNTBjMGRlNWVlZjFiMGQ0ZWIyZjg5YWVkOWE1NWY4OTNiNjQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NGM2ZmE2YmE2MDk3NTdjYWYyZWQxMWVjYjM0NWMzZGZmODA1ZGFiMGQ3NmIw
|
14
|
+
NjZkN2UyMzc0ODgwODg2NDQzYjRhYjc4OTFhMzNlYjUzYzZhMzg1YWE4YzE4
|
15
|
+
NTZhMGVhYzViZDhkYWUzMDYzMzc3MDBhZWMzNjlhZDM5YzRjNzI=
|
data/README.rdoc
CHANGED
@@ -72,13 +72,22 @@ In the following file +config/routes.rb+ you can put this configuration
|
|
72
72
|
wash_out :rumbas
|
73
73
|
wash_out :my_other_service
|
74
74
|
|
75
|
+
namespace :api do
|
76
|
+
wash_out :project_service
|
77
|
+
end
|
78
|
+
|
75
79
|
mount WashoutBuilder::Engine => "/washout"
|
76
80
|
end
|
77
81
|
|
78
82
|
You can access the url +/washout+ and you will see a list with available services ( in our case there are only two : The RumbasController and MyOtherServiceController) with links to their documentation and where you can find the WSDL.
|
79
83
|
|
80
|
-
If you want to access directly the hml documentation that was generated for RumbasController you can do that by accessing url
|
84
|
+
If you want to access directly the hml documentation that was generated for RumbasController you can do that by accessing url like this:
|
85
|
+
|
86
|
+
/washout/Rumbas #camelcase name
|
87
|
+
/washout/rumbas #without camelcase
|
81
88
|
|
89
|
+
/washout/Api::ProjectService # for namespaced services with camelcase
|
90
|
+
/washout/api/project_service # without camelcase
|
82
91
|
|
83
92
|
When specifying the <b>soap_service</b> you can also pass a <b>option for description</b> . Here is an example
|
84
93
|
|
@@ -48,13 +48,13 @@ class WashoutBuilder::WashoutBuilderController < ActionController::Base
|
|
48
48
|
|
49
49
|
def map_controllers
|
50
50
|
all_controllers.map do |route|
|
51
|
-
route.defaults[:controller] if route.defaults[:action] == "
|
51
|
+
route.defaults[:controller] if route.defaults[:action] == "_generate_wsdl"
|
52
52
|
end.uniq.compact
|
53
53
|
end
|
54
54
|
|
55
55
|
def controller_is_a_service?(controller)
|
56
56
|
route = all_controllers.detect do |route|
|
57
|
-
route.defaults[:controller].try(:camelize) == controller.camelize && route.defaults[:action] == "
|
57
|
+
route.defaults[:controller].try(:camelize) == controller.camelize && route.defaults[:action] == "_generate_wsdl"
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -71,7 +71,7 @@ class WashoutBuilder::WashoutBuilderController < ActionController::Base
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def service_documentation_url(controller_name)
|
74
|
-
"#{
|
74
|
+
"#{washout_builder.root_url}#{controller_name.camelize}"
|
75
75
|
end
|
76
76
|
|
77
77
|
end
|
data/config/routes.rb
CHANGED
data/lib/washout_builder.rb
CHANGED
@@ -6,27 +6,10 @@ require 'washout_builder/document/shared_complex_type'
|
|
6
6
|
require 'washout_builder/document/complex_type'
|
7
7
|
require 'washout_builder/document/virtus_model'
|
8
8
|
require 'washout_builder/document/generator'
|
9
|
-
require 'washout_builder/dispatcher'
|
10
9
|
require 'washout_builder/type'
|
11
10
|
require 'washout_builder/version'
|
12
11
|
|
13
12
|
|
14
|
-
module ActionDispatch::Routing
|
15
|
-
class Mapper
|
16
|
-
|
17
|
-
alias_method :original_wash_out,:wash_out
|
18
|
-
|
19
|
-
# Adds the routes for a SOAP endpoint at +controller+.
|
20
|
-
def wash_out(controller_name, options={})
|
21
|
-
options.reverse_merge!(@scope) if @scope
|
22
|
-
|
23
|
-
match "#{controller_name}/doc" => "#{controller_name}#_generate_doc", :via => :get, :format => false
|
24
|
-
original_wash_out(controller_name, options)
|
25
|
-
|
26
|
-
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
13
|
|
31
14
|
Virtus::InstanceMethods::Constructor.class_eval do
|
32
15
|
alias_method :original_initialize,:initialize
|
data/lib/washout_builder/soap.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: washout_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bogdanRada
|
@@ -74,7 +74,6 @@ files:
|
|
74
74
|
- config/routes.rb
|
75
75
|
- init.rb
|
76
76
|
- lib/washout_builder.rb
|
77
|
-
- lib/washout_builder/dispatcher.rb
|
78
77
|
- lib/washout_builder/document/complex_type.rb
|
79
78
|
- lib/washout_builder/document/generator.rb
|
80
79
|
- lib/washout_builder/document/shared_complex_type.rb
|
@@ -110,7 +109,6 @@ files:
|
|
110
109
|
- spec/dummy/public/favicon.ico
|
111
110
|
- spec/dummy/public/stylesheets/.gitkeep
|
112
111
|
- spec/dummy/script/rails
|
113
|
-
- spec/lib/washout_builder/dispatcher_spec.rb
|
114
112
|
- spec/lib/washout_builder/document/complex_type_spec.rb
|
115
113
|
- spec/lib/washout_builder/document/generator_spec.rb
|
116
114
|
- spec/lib/washout_builder/document/virtus_model_spec.rb
|
@@ -181,7 +179,6 @@ test_files:
|
|
181
179
|
- spec/dummy/public/favicon.ico
|
182
180
|
- spec/dummy/public/stylesheets/.gitkeep
|
183
181
|
- spec/dummy/script/rails
|
184
|
-
- spec/lib/washout_builder/dispatcher_spec.rb
|
185
182
|
- spec/lib/washout_builder/document/complex_type_spec.rb
|
186
183
|
- spec/lib/washout_builder/document/generator_spec.rb
|
187
184
|
- spec/lib/washout_builder/document/virtus_model_spec.rb
|
@@ -1,28 +0,0 @@
|
|
1
|
-
|
2
|
-
module WashoutBuilder
|
3
|
-
# The WashoutBuilder::Dispatcher module should be included in a controller acting
|
4
|
-
# as a SOAP endpoint. It includes actions for generating WSDL and handling
|
5
|
-
# SOAP requests.
|
6
|
-
module Dispatcher
|
7
|
-
|
8
|
-
def _generate_doc
|
9
|
-
@document = WashoutBuilder::Document::Generator.new(
|
10
|
-
:config => soap_config,
|
11
|
-
:service_class => self.class,
|
12
|
-
:soap_actions => self.class.soap_actions
|
13
|
-
)
|
14
|
-
|
15
|
-
render :template => "wash_with_html/doc", :layout => false,
|
16
|
-
:content_type => 'text/html'
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.included(controller)
|
20
|
-
controller.send :helper,:washout_builder
|
21
|
-
controller.send :before_filter, :_authenticate_wsse, :except => [
|
22
|
-
:_generate_wsdl, :_generate_doc,:_invalid_action ]
|
23
|
-
controller.send :before_filter, :_map_soap_parameters, :except => [
|
24
|
-
:_generate_wsdl,:_generate_doc, :_invalid_action ]
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
#encoding:utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
mock_controller do
|
5
|
-
soap_action 'dispatcher_method', :args => nil, :return => nil
|
6
|
-
|
7
|
-
def dispatcher_method
|
8
|
-
#nothing
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
describe ApiController, :type => :controller do
|
13
|
-
|
14
|
-
let(:document) { WashoutBuilder::Document::Generator.new}
|
15
|
-
|
16
|
-
render_views(false)
|
17
|
-
|
18
|
-
before(:each) do
|
19
|
-
WashoutBuilder::Document::Generator.stubs(:new).returns(document)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "inits the document generator" do
|
23
|
-
WashoutBuilder::Document::Generator.expects(:new).with(
|
24
|
-
:config => ApiController.soap_config,
|
25
|
-
:service_class => ApiController,
|
26
|
-
:soap_actions => {"dispatcher_method"=>{
|
27
|
-
:args=>nil,
|
28
|
-
:return=>nil,
|
29
|
-
:in=>[],
|
30
|
-
:out=>[],
|
31
|
-
:to=>"dispatcher_method",
|
32
|
-
:response_tag=>"tns:dispatcher_methodResponse",
|
33
|
-
:builder_in=>[],
|
34
|
-
:builder_out=>[]
|
35
|
-
}
|
36
|
-
}
|
37
|
-
)
|
38
|
-
get :_generate_doc
|
39
|
-
end
|
40
|
-
|
41
|
-
it "verifies render" do
|
42
|
-
controller.expects(:render).with(nil)
|
43
|
-
controller.expects(:render).with(:template => "wash_with_html/doc", :layout => false,
|
44
|
-
:content_type => 'text/html')
|
45
|
-
get :_generate_doc
|
46
|
-
end
|
47
|
-
|
48
|
-
it "renders the template" , :fails =>true do
|
49
|
-
get :_generate_doc
|
50
|
-
response.should render_template("wash_with_html/doc")
|
51
|
-
end
|
52
|
-
|
53
|
-
|
54
|
-
end
|