washout_builder 1.0.9 → 1.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ad8d849dc2071cd6beb38f0d1ec8d053857e4ed
4
- data.tar.gz: 86f0df05faa8d71ba29a7a5f933a11d2d8760551
3
+ metadata.gz: df24805fd747f5ee4264ddd30bbb664a64980fed
4
+ data.tar.gz: e1f7a66e3c6ae46f56fc8230defef7d17fd850de
5
5
  SHA512:
6
- metadata.gz: b8269346c5e2e1a35e78d510988853dd117d158add2f4bc4586a2cf8d7adae8a1ecdbe8e9d65e5575b5f437236bfeef763e56297c99a444ceb1fd025779caf53
7
- data.tar.gz: ab69d71b6d7c9d94beb4e90777e8b37667f078abb5acc8814320c6326759a184686ea036eea3fb17de90b5dd4597418847c764fa9dd244c4d83878ff7968214b
6
+ metadata.gz: 746b52b2afc23edcf448c2d140a8cb4c40646728484aeb28a5a069beb92711d48fc48a9788aa604d44bf2e0cdb1150ecfdeb3b41684058ae4c3bf886dbbef25f
7
+ data.tar.gz: 9a5839e1fba426d88f22711b1d9055f17a50b7c0c02456b070f39b2643c9150c8eafc2edfe7fab085f6a1388107b12422f437f4e49dd23f06f021d3dd3be918f
@@ -15,19 +15,20 @@ module WashoutBuilder
15
15
  #
16
16
  # @api public
17
17
  def all
18
+ @routes = find_all_routes
18
19
  route = params[:name].present? ? controller_is_a_service?(params[:name]) : nil
19
20
  if route.present?
20
21
  @document = WashoutBuilder::Document::Generator.new(route.defaults[:controller])
21
22
  render template: 'wash_with_html/doc', layout: false,
22
- content_type: 'text/html'
23
+ content_type: 'text/html'
23
24
  else
24
25
  @services = all_services
25
26
  render template: 'wash_with_html/all_services', layout: false,
26
- content_type: 'text/html'
27
+ content_type: 'text/html'
27
28
  end
28
29
  end
29
30
 
30
- private
31
+ private
31
32
 
32
33
  # tries to find all services by searching through the rails controller
33
34
  # and returns their namespace, endpoint and a documentation url
@@ -74,6 +75,17 @@ module WashoutBuilder
74
75
  route.defaults[:action] == '_generate_wsdl'
75
76
  end
76
77
 
78
+ def find_all_routes
79
+ rails_routes = Rails.application.routes.routes.map {|route| route }
80
+ engine_routes = []
81
+ ::Rails::Engine.subclasses.each do |engine|
82
+ engine.routes.routes.each do |route|
83
+ engine_routes << route
84
+ end
85
+ end
86
+ rails_routes.concat(engine_routes).uniq.compact
87
+ end
88
+
77
89
  # method for getting all controllers that have the generate wsdl action or finding out
78
90
  # if a single controller is a soap service
79
91
  # @see #route_can_generate_wsdl?
@@ -86,7 +98,7 @@ module WashoutBuilder
86
98
  #
87
99
  # @api private
88
100
  def map_controllers(action = 'map')
89
- res = Rails.application.routes.routes.send(action) do |route|
101
+ res = @routes.send(action) do |route|
90
102
  if route_can_generate_wsdl?(route)
91
103
  yield route if block_given?
92
104
  end
@@ -18,13 +18,23 @@ module WashoutBuilderComplexTypeHelper
18
18
  element.type = 'integer' if element.type == 'int'
19
19
  if WashoutBuilder::Type::BASIC_TYPES.include?(element.type)
20
20
  pre << "<span class='blue'>#{element.type}</span>&nbsp;<span class='bold'>#{element.name}</span>"
21
- pre << "&#8194;<span>#{element_description}</span>" unless element_description.blank?
21
+ pre << "&#8194;<span>#{html_safe(element_description)}</span>" unless element_description.blank?
22
22
  pre
23
23
  else
24
24
  create_complex_element_type_html(pre, element, element_description)
25
25
  end
26
26
  end
27
27
 
28
+ # used for escaping strings
29
+ # @param [String] string The string that needs to be escaped
30
+ #
31
+ # @return [String]
32
+ #
33
+ # @api public
34
+ def html_safe(string)
35
+ string.present? ? ActiveSupport::SafeBuffer.new(string) : string
36
+ end
37
+
28
38
  # checks if a complex attribute of a complex type is a array or not
29
39
  # and retrieves the complex class name of the attribute and prints it
30
40
  # @see WashoutBuilder::Document::ComplexType#find_complex_class_name
@@ -41,7 +51,7 @@ module WashoutBuilderComplexTypeHelper
41
51
  return if complex_class.nil?
42
52
  complex_class_content = element.multiplied == false ? "#{complex_class}" : "Array of #{complex_class}"
43
53
  pre << "<a href='##{complex_class}'><span class='lightBlue'>#{complex_class_content}</span></a>&nbsp;<span class='bold'>#{element.name}</span>"
44
- pre << "&#8194;<span>#{element_description}</span>" unless element_description.blank?
54
+ pre << "&#8194;<span>#{html_safe(element_description)}</span>" unless element_description.blank?
45
55
  pre
46
56
  end
47
57
  end
@@ -2,6 +2,8 @@ require 'wash_out'
2
2
  require 'active_support/core_ext/object/blank'
3
3
  require 'active_support/core_ext/hash/keys'
4
4
  require 'active_support/concern'
5
+ require 'active_support/core_ext/string/output_safety.rb'
6
+
5
7
  Gem.find_files('washout_builder/**/*.rb').each { |path| require path }
6
8
 
7
9
  # finds all the exception class and extends them by including the ExceptionModel module in order to be
@@ -12,7 +12,7 @@ module WashoutBuilder
12
12
  # the minor version of the gem
13
13
  MINOR = 0
14
14
  # the tiny version of the gem
15
- TINY = 9
15
+ TINY = 10
16
16
  # if the version should be a e
17
17
  PRE = nil
18
18
 
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.0.9
4
+ version: 1.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - bogdanRada
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-03 00:00:00.000000000 Z
11
+ date: 2016-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: wash_out