washout_builder 0.13.2 → 0.13.3

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjdhNzFiNjYwNDg0M2U0ZGQ5ZTcxNjg3NWIzMDJiYmIzYjZmYTI4MQ==
4
+ NDQ4NTEwNjQwOGY4ZjA3NmY2MmE3MzA2MjNlZGFhY2FkNDJlOGFjNQ==
5
5
  data.tar.gz: !binary |-
6
- NmY0Y2ZiM2NjZWQzYzEwZTNhZThhNjJkYzczNzczOGI3Y2M0NGYzYw==
6
+ OGU0MjUxMGVlMWIxODc1MGE3ODY2ZDY1Njc1NWZmOTlmMzAwY2ExNQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MDc1YjY5MDBjYjkyYWIyMmE3MTE0M2ZlZGE2OGY1OTQzZDAxZTNiNGU4YWRj
10
- ZTQzODRlZmUyZmIwYzUxNzBmY2RmMTEwYjQzNDk0NDE2MjBhMmFkMjFmZjJh
11
- Y2NkZTNlYmQ1ZDU4YjZjODQxOGI2ZmJiNDA0ZjI1MjFmN2E3ZjE=
9
+ MWQ0OTQyZjUwNzFiZWZjN2EyOGJhZTJkZDU4YTk1NWViNTM0ODBmOWQ0ZGU5
10
+ YWNjNTMwMTMwMzQ2YjUwMDhkYTRmYzA2MGZjYmE0OGUyMTllZWI3MzVkZTcy
11
+ ZjEyNDRhZGJiYmQ4ZTU0NzVjMTg5OTkxMjc4ZDY3NmE0NWVmOTA=
12
12
  data.tar.gz: !binary |-
13
- Y2Y3MTRjNzZkYWE0MjUyZDRlMDE1YmZkNDgxYzdiOWMxMzRlYzdmYjRkMTg5
14
- M2NjNjI4ZDgwOTczZTlkM2JmYWJmYmIyYTdhZGQ0NjZhYWE4N2Q0ZWUyZTlj
15
- ODM3OWVhNWQwMmE1YjM3ZTllNjExNWUwMGM5NGIxMjEzN2IyOGM=
13
+ N2YxYTQ5ZWQyMDA0NTJlMjMwNTdiOTRhYjM5ZDk1M2IzOGQwZmQwZWI2ZDg3
14
+ ZmVjODhlOWU1MTA2YzE4MzI5MjE1NDhmZDA0MmMxOGVhZjIwZTkwNTk4NjEw
15
+ NWE5MmRkZjI0ZjIxMzAxNzY3M2UwMTk5M2Y1ZTNmMzJmMTNkOTI=
@@ -0,0 +1,26 @@
1
+ module WashoutBuilderComplexTypeHelper
2
+
3
+ def create_complex_type_element_html(xml, element)
4
+ element.type = "string" if element.type == "text"
5
+ element.type = "integer" if element.type == "int"
6
+ xml.li { |pre|
7
+ if WashoutBuilder::Type::BASIC_TYPES.include?(element.type)
8
+ pre << "<span class='blue'>#{element.type}</span>&nbsp;<span class='bold'>#{element.name}</span>"
9
+ else
10
+ create_element_type_html(pre, element)
11
+ end
12
+ }
13
+ end
14
+
15
+ def create_element_type_html(pre, element)
16
+ complex_class = element.get_complex_class_name
17
+ unless complex_class.nil?
18
+ complex_class_content = element.multiplied == false ? "#{complex_class}" : "Array of #{complex_class}"
19
+ pre << "<a href='##{complex_class}'><span class='lightBlue'>#{complex_class_content}</span></a>&nbsp;<span class='bold'>#{element.name}</span>"
20
+ end
21
+ end
22
+
23
+ end
24
+
25
+
26
+
@@ -0,0 +1,25 @@
1
+ module WashoutBuilderFaultTypeHelper
2
+
3
+ def create_fault_model_complex_element_type(pre, attr_primitive, attribute, array)
4
+ attribute_primitive = array == true ? "Array of #{attr_primitive}" : "#{attr_primitive}"
5
+ pre << "<a href='##{attr_primitive}'><span class='lightBlue'> #{attribute_primitive}</span></a>&nbsp;<span class='bold'>#{attribute}</span>"
6
+ end
7
+
8
+
9
+ def create_html_fault_model_element_type(xml, attribute, attr_details)
10
+ xml.li { |pre|
11
+ if WashoutBuilder::Type::BASIC_TYPES.include?(attr_details[:primitive].to_s.downcase) || attr_details[:primitive] == "nilclass"
12
+ pre << "<span class='blue'>#{attr_details[:primitive].to_s.downcase == "nilclass" ? "string" : attr_details[:primitive].to_s.downcase }</span>&nbsp;<span class='bold'>#{attribute}</span>"
13
+
14
+ else
15
+ if attr_details[:primitive].to_s.downcase == "array"
16
+
17
+ attr_primitive = WashoutBuilder::Type::BASIC_TYPES.include?(attr_details[:member_type].to_s.downcase) ? attr_details[:member_type].to_s.downcase : attr_details[:member_type]
18
+ create_fault_model_complex_element_type(pre,attr_primitive, attribute, true )
19
+ else
20
+ create_fault_model_complex_element_type(pre,attr_details[:primitive], attribute, false )
21
+ end
22
+ end
23
+ }
24
+ end
25
+ end
@@ -0,0 +1,41 @@
1
+ module WashoutBuilderMethodArgumentsHelper
2
+
3
+ def create_method_argument_element( pre, param, mlen)
4
+ spacer = "&nbsp;&nbsp;&nbsp;&nbsp;"
5
+ complex_class = param.get_complex_class_name
6
+ use_spacer = mlen > 1 ? true : false
7
+ if WashoutBuilder::Type::BASIC_TYPES.include?(param.type)
8
+ pre << "#{use_spacer ? spacer: ''}<span class='blue'>#{param.type}</span>&nbsp;<span class='bold'>#{param.name}</span>"
9
+ else
10
+ unless complex_class.nil?
11
+ argument_content = param.multiplied == false ? "#{complex_class}" : "Array of #{complex_class}"
12
+ pre << "#{use_spacer ? spacer: ''}<a href='##{complex_class}'><span class='lightBlue'>#{argument_content}</span></a>&nbsp;<span class='bold'>#{param.name}</span>"
13
+ end
14
+ end
15
+ end
16
+
17
+ def create_argument_element_spacer(xml, j, mlen )
18
+ if j< (mlen-1)
19
+ xml.span ", "
20
+ end
21
+ if mlen > 1
22
+ xml.br
23
+ end
24
+ if (j+1) == mlen
25
+ xml.span("class" => "bold") {|y| y << ")" }
26
+ end
27
+ end
28
+
29
+
30
+
31
+ def create_html_public_method_arguments(xml, pre, input)
32
+ mlen = input.size
33
+ xml.br if mlen > 1
34
+ if mlen > 0
35
+ input.each_with_index do |element, index|
36
+ create_method_argument_element( pre, element, mlen)
37
+ create_argument_element_spacer(xml, index, mlen )
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,38 @@
1
+ module WashoutBuilderMethodListHelper
2
+
3
+ def create_element_exceptions_list_html(p)
4
+ xml.li("class" => "pre"){ |y| y<< "<a href='##{p.to_s}'><span class='lightBlue'> #{p.to_s}</span></a>" }
5
+ end
6
+
7
+ def create_parameters_element_list_html(xml, param)
8
+ xml.li("class" => "pre") { |pre|
9
+ if WashoutBuilder::Type::BASIC_TYPES.include?(param.type)
10
+ pre << "<span class='blue'>#{param.type}</span>&nbsp;<span class='bold'>#{param.name}</span>"
11
+ else
12
+ create_element_type_html(pre, param)
13
+ end
14
+ }
15
+ end
16
+
17
+ def create_return_complex_type_list_html(xml, complex_class, builder_out)
18
+ return_content = builder_out[0].multiplied == false ? "#{complex_class}" : "Array of #{complex_class}"
19
+ xml.span("class" => "pre") { xml.a("href" => "##{complex_class}") { |xml| xml.span("class" => "lightBlue") { |y| y<<"#{return_content}" } } }
20
+ end
21
+
22
+
23
+ def create_return_type_list_html(xml, output)
24
+ unless output.nil?
25
+ complex_class = output[0].get_complex_class_name
26
+ if WashoutBuilder::Type::BASIC_TYPES.include?(output[0].type)
27
+ xml.span("class" => "pre") { |xml| xml.span("class" => "blue") { |sp| sp << "#{output[0].type}" } }
28
+ else
29
+ create_return_complex_type_html(xml, complex_class, output) unless complex_class.nil?
30
+ end
31
+ else
32
+ xml.span("class" => "pre") { |sp| sp << "void" }
33
+ end
34
+
35
+
36
+ end
37
+
38
+ end
@@ -0,0 +1,20 @@
1
+ module WashoutBuilderMethodReturnTypeHelper
2
+
3
+ def create_html_public_method_return_type(xml,pre, output)
4
+ if !output.nil?
5
+ complex_class = output[0].get_complex_class_name
6
+ if WashoutBuilder::Type::BASIC_TYPES.include?(output[0].type)
7
+ xml.span("class" => "blue") { |y| y<< "#{output[0].type}" }
8
+ else
9
+ complex_return_type = output[0].multiplied == false ? "#{complex_class}" : "Array of #{complex_class}"
10
+ pre << "<a href='##{complex_class}'><span class='lightBlue'>#{complex_return_type}</span></a>" unless complex_class.nil?
11
+ end
12
+ else
13
+ pre << "void"
14
+ end
15
+ end
16
+
17
+
18
+
19
+
20
+ end
@@ -0,0 +1,14 @@
1
+
2
+ unless object.blank?
3
+ xml.a( "name" => "#{class_name}") { }
4
+ xml.h3 { |pre| pre << "#{class_name} #{ancestors.blank? ? "" : "<small>(extends <a href='##{ancestors[0].to_s.classify}'>#{ancestors[0].to_s.classify}</a>)</small>" } " }
5
+
6
+
7
+ if object.is_a?(WashOut::Param)
8
+ xml.ul("class" => "pre") {
9
+ object.map.each do |element|
10
+ create_complex_type_element_html(xml, element)
11
+ end
12
+ }
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ if object.is_a?(Class)
2
+ xml.h3 { |pre| pre << "#{object} #{ancestors.blank? ? "" : "<small>(extends <a href='##{ancestors[0].to_s.classify}'>#{ancestors[0].to_s.classify}</a>)</small>" } " }
3
+ xml.a("name" => "#{object}") {}
4
+ xml.ul("class" => "pre") {
5
+ structure.each do |attribute, attr_details|
6
+ create_html_fault_model_element_type(xml, attribute, attr_details)
7
+ end
8
+ }
9
+ end
@@ -0,0 +1,36 @@
1
+ xml.h3 "#{operation}"
2
+ xml.a("name" => "#{operation}") {}
3
+
4
+ xml.p("class" => "pre"){ |pre|
5
+ create_html_public_method_return_type(xml,pre, output)
6
+ xml.span("class" => "bold") {|y| y << "#{operation} (" }
7
+ create_html_public_method_arguments(xml, pre, input)
8
+ }
9
+ xml.p "#{description}" unless description.blank?
10
+
11
+
12
+ xml.p "Parameters:"
13
+ xml.ul {
14
+ input.each do |element|
15
+ create_parameters_element_list_html(xml,element)
16
+ end
17
+ }
18
+
19
+ xml.p "Return value:"
20
+ xml.ul {
21
+ xml.li {
22
+
23
+ create_return_type_list_html(xml,output)
24
+ }
25
+ }
26
+
27
+
28
+ operation_exceptions = @document.operation_exceptions(operation)
29
+ unless operation_exceptions.blank?
30
+ xml.p "Exceptions:"
31
+ xml.ul {
32
+ operation_exceptions.each do |p|
33
+ create_element_exceptions_list_html(p)
34
+ end
35
+ }
36
+ end
@@ -41,7 +41,7 @@ xml.html( "xmlns" => "http://www.w3.org/1999/xhtml" ) {
41
41
  xml.span( "class" => "pre") {
42
42
  xml.a( "href" => "#{@document.namespace}") { |y| y << "#{@document.namespace}" }
43
43
  };}
44
- xml.p ""
44
+ xml.p ""
45
45
  unless @document.service_description.blank?
46
46
  xml.p "#{@document.service_description}"
47
47
  end
@@ -87,18 +87,25 @@ xml.html( "xmlns" => "http://www.w3.org/1999/xhtml" ) {
87
87
 
88
88
  unless @complex_types.blank?
89
89
  xml.h2 "Complex types:"
90
- create_html_complex_types(xml, @complex_types)
91
- end
92
- unless @fault_complex_types.blank?
93
- create_html_fault_types_details(xml, @fault_complex_types)
90
+ @complex_types.each { |hash|
91
+ xml << render(:partial => "wash_with_html/complex_type", :locals => { :object => hash[:obj], :class_name => hash[:class], :ancestors => hash[:ancestors]})
92
+ }
94
93
  end
95
94
  unless @fault_types.blank?
96
95
  xml.h2 "Fault types:"
97
- create_html_fault_types_details(xml, @fault_types)
96
+ @fault_types.each { |hash|
97
+ xml << render(:partial => "wash_with_html/fault_type", :locals => { :object => hash[:fault], :structure => hash[:structure], :ancestors => hash[:ancestors]})
98
+ }
98
99
  end
99
100
  unless @methods.blank?
100
101
  xml.h2 "Public methods:"
101
- create_html_public_methods(xml, @document.soap_actions)
102
+ @map = @document.sorted_operations
103
+ unless @map.blank?
104
+ @map.each { |operation, formats|
105
+ xml << render(:partial => "wash_with_html/public_method", :locals => { :operation=> operation, :input => formats[:in], :output => formats[:out] , :exceptions => formats[:raises], :description => formats[:description]})
106
+ }
107
+ end
108
+
102
109
  end
103
110
 
104
111
  if @complex_types.blank? && @fault_types.blank? && @methods.blank?
@@ -12,7 +12,7 @@ module WashoutBuilder
12
12
  bool_the_same = false
13
13
  ancestors = fault_ancestors
14
14
  if ancestors.blank?
15
- defined << fault_ancestor_hash(get_virtus_model_structure, [])
15
+ defined << fault_ancestor_hash(get_fault_model_structure, [])
16
16
  else
17
17
  defined << fault_ancestor_hash(fault_without_inheritable_elements(ancestors), ancestors)
18
18
  ancestors[0].get_fault_class_ancestors( defined)
@@ -22,7 +22,7 @@ module WashoutBuilder
22
22
 
23
23
 
24
24
  def fault_without_inheritable_elements(ancestors)
25
- remove_fault_type_inheritable_elements( ancestors[0].get_virtus_model_structure.keys)
25
+ remove_fault_type_inheritable_elements( ancestors[0].get_fault_model_structure.keys)
26
26
  end
27
27
 
28
28
  def fault_ancestors
@@ -34,33 +34,44 @@ module WashoutBuilder
34
34
  end
35
35
 
36
36
  def remove_fault_type_inheritable_elements( keys)
37
- get_virtus_model_structure.delete_if{|key,value| keys.include?(key) }
37
+ get_fault_model_structure.delete_if{|key,value| keys.include?(key) }
38
38
  end
39
39
 
40
-
40
+ def check_valid_fault_method?(method)
41
+ method != :== && method != :! &&
42
+ ( self.instance_methods.include?(:"#{method}=") ||
43
+ self.instance_methods.include?(:"#{method}")
44
+ )
45
+ end
46
+
41
47
 
42
- def get_exception_attributes
43
- attrs = self.instance_methods.find_all do |method|
44
- method != :== &&
45
- method != :! &&
46
- self.instance_methods.include?(:"#{method}=")
48
+ def get_fault_attributes
49
+ attrs = []
50
+ attrs = self.instance_methods(nil).collect do |method|
51
+ method.to_s if check_valid_fault_method?(method)
47
52
  end
53
+ attrs = attrs.delete_if {|method| method.end_with?("=") && attrs.include?(method.gsub("=",'')) }
48
54
  attrs.concat(["message", "backtrace"])
49
55
  end
50
56
 
57
+ def get_fault_type_method(method_name)
58
+ case method_name.to_s.downcase
59
+ when "code"
60
+ "integer"
61
+ when "message", "backtrace"
62
+ "string"
63
+ else
64
+ "string"
65
+ end
66
+ end
67
+
51
68
 
52
- def get_virtus_model_structure
69
+ def get_fault_model_structure
53
70
  h = {}
54
- get_exception_attributes.each do |method_name|
55
- primitive_type = case method_name.to_s.downcase
56
- when "code"
57
- "integer"
58
- when "message", "backtrace"
59
- "string"
60
- else
61
- "string"
62
- end
63
- h["#{method_name}"]= {
71
+ get_fault_attributes.each do |method_name|
72
+ method_name = method_name.to_s.end_with?("=") ? method_name.to_s.gsub("=", '') : method_name
73
+ primitive_type = get_fault_type_method(method_name)
74
+ h["#{method_name}"]= {
64
75
  :primitive => "#{primitive_type}",
65
76
  :member_type => nil
66
77
  }
@@ -39,6 +39,19 @@ module WashoutBuilder
39
39
  soap_actions.map { |operation, formats| operation }
40
40
  end
41
41
 
42
+ def sorted_operations
43
+ soap_actions.sort_by { |operation, formats| operation.downcase }.uniq unless soap_actions.blank?
44
+ end
45
+
46
+ def operation_exceptions(operation_name)
47
+ hash_object = soap_actions.detect {|operation, formats| operation.to_s.downcase == operation_name.to_s.downcase}
48
+ unless hash_object.blank?
49
+ faults = hash_object[1][:raises]
50
+ faults = faults.is_a?(Array) ? faults : [faults]
51
+ faults.select { |x| WashoutBuilder::Type.valid_fault_class?(x) }
52
+ end
53
+ end
54
+
42
55
  def sort_complex_types(types, type)
43
56
  types.sort_by { |hash| hash[type.to_sym].to_s.downcase }.uniq {|hash| hash[type.to_sym] } unless types.blank?
44
57
  end
@@ -1,3 +1,3 @@
1
1
  module WashoutBuilder
2
- VERSION = "0.13.2"
2
+ VERSION = "0.13.3"
3
3
  end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+
3
+ describe WashoutBuilderComplexTypeHelper do
4
+
5
+
6
+
7
+
8
+ end
@@ -1,18 +1,19 @@
1
1
  #encoding:utf-8
2
2
  require 'spec_helper'
3
3
 
4
- class SOAPError < WashOut::Dispatcher::SOAPError
5
-
6
- end
7
4
 
8
5
  describe WashoutBuilder::Document::ExceptionModel do
9
6
 
10
- let(:subject) { SOAPError}
7
+ let(:subject) { WashOut::Dispatcher::SOAPError}
11
8
 
12
9
 
13
10
 
14
11
  it "gets the strcuture" do
15
- subject.get_virtus_model_structure.should eq({"code"=>{:primitive=>"integer", :member_type=>nil}, "message"=>{:primitive=>"string", :member_type=>nil}, "backtrace"=>{:primitive=>"string", :member_type=>nil}})
12
+ subject.get_fault_model_structure.should eq({"code"=>{:primitive=>"integer", :member_type=>nil}, "message"=>{:primitive=>"string", :member_type=>nil}, "backtrace"=>{:primitive=>"string", :member_type=>nil}})
13
+ end
14
+
15
+ it "gets the strcuture" do
16
+ subject.get_fault_attributes.should eq(["code","message", "backtrace"])
16
17
  end
17
18
  #
18
19
  # it "gets the member type for arrays" do
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.13.2
4
+ version: 0.13.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - bogdanRada
@@ -48,7 +48,14 @@ files:
48
48
  - README.rdoc
49
49
  - Rakefile
50
50
  - app/controllers/washout_builder/washout_builder_controller.rb
51
- - app/helpers/washout_builder_helper.rb
51
+ - app/helpers/washout_builder_complex_type_helper.rb
52
+ - app/helpers/washout_builder_fault_type_helper.rb
53
+ - app/helpers/washout_builder_method_arguments_helper.rb
54
+ - app/helpers/washout_builder_method_list_helper.rb
55
+ - app/helpers/washout_builder_method_return_type_helper.rb
56
+ - app/views/wash_with_html/_complex_type.builder
57
+ - app/views/wash_with_html/_fault_type.builder
58
+ - app/views/wash_with_html/_public_method.builder
52
59
  - app/views/wash_with_html/all_services.builder
53
60
  - app/views/wash_with_html/doc.builder
54
61
  - config/routes.rb
@@ -63,7 +70,7 @@ files:
63
70
  - lib/washout_builder/type.rb
64
71
  - lib/washout_builder/version.rb
65
72
  - spec/app/controllers/washout_builder_controller_spec.rb
66
- - spec/app/helpers/washout_builder_helper_spec.rb
73
+ - spec/app/helpers/washout_builder_complex_type_helper_spec.rb
67
74
  - spec/app/integration/washout_builder_all_services_spec.rb
68
75
  - spec/app/integration/washout_builder_service_spec.rb
69
76
  - spec/dummy/Rakefile
@@ -126,7 +133,7 @@ specification_version: 4
126
133
  summary: WashOut Soap Service HTML-Documentation generator (extends WashOut https://github.com/inossidabile/wash_out/)
127
134
  test_files:
128
135
  - spec/app/controllers/washout_builder_controller_spec.rb
129
- - spec/app/helpers/washout_builder_helper_spec.rb
136
+ - spec/app/helpers/washout_builder_complex_type_helper_spec.rb
130
137
  - spec/app/integration/washout_builder_all_services_spec.rb
131
138
  - spec/app/integration/washout_builder_service_spec.rb
132
139
  - spec/dummy/Rakefile
@@ -1,245 +0,0 @@
1
- module WashoutBuilderHelper
2
-
3
- def create_html_complex_types(xml, types)
4
- types.each { |hash| create_complex_type_html(xml, hash[:obj], hash[:class], hash[:ancestors]) }
5
- end
6
-
7
-
8
-
9
- def create_element_type_html(pre, complex_class, element)
10
- unless complex_class.nil?
11
- if element.multiplied == false
12
- pre << "<a href='##{complex_class}'><span class='lightBlue'>#{complex_class}</span></a>&nbsp;<span class='bold'>#{element.name}</span>"
13
- else
14
- pre << "<a href='##{complex_class}'><span class='lightBlue'>Array of #{complex_class}</span></a>&nbsp;<span class='bold'>#{element.name}</span>"
15
- end
16
- end
17
- end
18
-
19
-
20
- def create_class_type_html(xml, class_name, ancestors)
21
- xml.h3 { |pre| pre << "#{class_name} #{ancestors.blank? ? "" : "<small>(extends <a href='##{ancestors[0].to_s.classify}'>#{ancestors[0].to_s.classify}</a>)</small>" } " }
22
- end
23
-
24
-
25
- def create_complex_type_element_html(xml, element)
26
- element.type = "string" if element.type == "text"
27
- element.type = "integer" if element.type == "int"
28
- xml.li { |pre|
29
- if WashoutBuilder::Type::BASIC_TYPES.include?(element.type)
30
- pre << "<span class='blue'>#{element.type}</span>&nbsp;<span class='bold'>#{element.name}</span>"
31
- else
32
- complex_class = element.get_complex_class_name
33
- create_element_type_html(pre, complex_class, element)
34
- end
35
- }
36
- end
37
-
38
-
39
- def create_complex_type_html(xml, param, class_name, ancestors)
40
- unless param.blank?
41
- xml.a( "name" => "#{class_name}") { }
42
-
43
- create_class_type_html(xml, class_name, ancestors)
44
- if param.is_a?(WashOut::Param)
45
- xml.ul("class" => "pre") {
46
- param.map.each do |element|
47
- create_complex_type_element_html(xml, element)
48
- end
49
- }
50
- end
51
- end
52
- end
53
-
54
- def create_html_fault_types_details(xml, fault_types)
55
- unless fault_types.blank?
56
-
57
- fault_types.each { |hash|
58
- create_html_virtus_model_type(xml, hash[:fault],hash[:structure], hash[:ancestors])
59
- }
60
- end
61
- end
62
-
63
- def create_virtus_model_complex_element_type(pre, attr_primitive, attribute, array)
64
- attribute_primitive = array == true ? "Array of #{attr_primitive}" : "#{attr_primitive}"
65
- pre << "<a href='##{attr_primitive}'><span class='lightBlue'> #{attribute_primitive}</span></a>&nbsp;<span class='bold'>#{attribute}</span>"
66
- end
67
-
68
-
69
- def create_html_virtus_model_element_type(xml, attribute, attr_details)
70
- xml.li { |pre|
71
- if WashoutBuilder::Type::BASIC_TYPES.include?(attr_details[:primitive].to_s.downcase) || attr_details[:primitive] == "nilclass"
72
- pre << "<span class='blue'>#{attr_details[:primitive].to_s.downcase == "nilclass" ? "string" : attr_details[:primitive].to_s.downcase }</span>&nbsp;<span class='bold'>#{attribute}</span>"
73
-
74
- else
75
- if attr_details[:primitive].to_s.downcase == "array"
76
-
77
- attr_primitive = WashoutBuilder::Type::BASIC_TYPES.include?(attr_details[:member_type].to_s.downcase) ? attr_details[:member_type].to_s.downcase : attr_details[:member_type]
78
- create_virtus_model_complex_element_type(pre,attr_primitive, attribute, true )
79
- else
80
- create_virtus_model_complex_element_type(pre,attr_details[:primitive], attribute, false )
81
- end
82
- end
83
- }
84
- end
85
-
86
-
87
- def create_html_virtus_model_type(xml, param, fault_structure, ancestors)
88
- if param.is_a?(Class)
89
- create_class_type_html(xml, param, ancestors)
90
- xml.a("name" => "#{param}") {}
91
- xml.ul("class" => "pre") {
92
- fault_structure.each do |attribute, attr_details|
93
- create_html_virtus_model_element_type(xml, attribute, attr_details)
94
- end
95
- }
96
- end
97
- end
98
-
99
- def create_html_public_methods(xml, map)
100
- unless map.blank?
101
- map =map.sort_by { |operation, formats| operation.downcase }.uniq
102
- map.each { |operation, formats| create_html_public_method(xml, operation, formats) }
103
- end
104
- end
105
-
106
-
107
- def create_return_complex_type_html(xml, complex_class, builder_out)
108
- return_content = builder_out[0].multiplied == false ? "#{complex_class}" : "Array of #{complex_class}"
109
- xml.span("class" => "pre") { xml.a("href" => "##{complex_class}") { |xml| xml.span("class" => "lightBlue") { |y| y<<"#{return_content}" } } }
110
- end
111
-
112
-
113
- def create_return_type_html(xml, formats)
114
- xml.p "Return value:"
115
- xml.ul {
116
- xml.li {
117
- unless formats[:builder_out].nil?
118
- complex_class = formats[:builder_out][0].get_complex_class_name
119
- if WashoutBuilder::Type::BASIC_TYPES.include?(formats[:builder_out][0].type)
120
- xml.span("class" => "pre") { |xml| xml.span("class" => "blue") { |sp| sp << "#{formats[:builder_out][0].type}" } }
121
- else
122
- create_return_complex_type_html(xml, complex_class, formats[:builder_out]) unless complex_class.nil?
123
- end
124
- else
125
- xml.span("class" => "pre") { |sp| sp << "void" }
126
- end
127
-
128
- }
129
- }
130
- end
131
-
132
-
133
- def create_parameters_html(xml, formats)
134
- xml.p "Parameters:"
135
- xml.ul {
136
- j=0
137
- mlen = formats[:builder_in].size
138
- while j<mlen
139
- param = formats[:builder_in][j]
140
- complex_class = param.get_complex_class_name
141
- xml.li("class" => "pre") { |pre|
142
- if WashoutBuilder::Type::BASIC_TYPES.include?(param.type)
143
- pre << "<span class='blue'>#{param.type}</span>&nbsp;<span class='bold'>#{param.name}</span>"
144
- else
145
- create_element_type_html(pre, complex_class, param)
146
- end
147
- }
148
- j+=1
149
- end
150
-
151
- }
152
- end
153
-
154
- def create_exceptions_list_html(xml, formats)
155
- unless formats[:raises].blank?
156
- faults = formats[:raises]
157
- faults = [formats[:raises]] if !faults.is_a?(Array)
158
-
159
- faults = faults.select { |x| WashoutBuilder::Type.valid_fault_class?(x) }
160
- unless faults.blank?
161
- xml.p "Exceptions:"
162
- xml.ul {
163
- faults.each do |p|
164
- xml.li("class" => "pre"){ |y| y<< "<a href='##{p.to_s}'><span class='lightBlue'> #{p.to_s}</span></a>" }
165
- end
166
- }
167
- end
168
- end
169
- end
170
-
171
-
172
- def create_html_public_method_return_type(xml,pre, formats)
173
- unless formats[:builder_out].nil?
174
- complex_class = formats[:builder_out][0].get_complex_class_name
175
- if WashoutBuilder::Type::BASIC_TYPES.include?(formats[:builder_out][0].type)
176
- xml.span("class" => "blue") { |y| y<< "#{formats[:builder_out][0].type}" }
177
- else
178
- unless complex_class.nil?
179
- if formats[:builder_out][0].multiplied == false
180
- pre << "<a href='##{complex_class}'><span class='lightBlue'>#{complex_class}</span></a>"
181
- else
182
- pre << "<a href='##{complex_class}'><span class='lightBlue'>Array of #{complex_class}</span></a>"
183
- end
184
- end
185
- end
186
- else
187
- pre << "void"
188
- end
189
- end
190
-
191
- def create_html_public_method_arguments_complex_type(pre, spacer, use_spacer, complex_class, param)
192
- argument_content = param.multiplied == false ? "#{complex_class}" : "Array of #{complex_class}"
193
- pre << "#{use_spacer ? spacer: ''}<a href='##{complex_class}'><span class='lightBlue'>#{argument_content}</span></a>&nbsp;<span class='bold'>#{param.name}</span>"
194
- end
195
-
196
- def create_html_public_method_arguments(xml, pre, operation, formats)
197
- mlen = formats[:builder_in].size
198
- xml.br if mlen > 1
199
- spacer = "&nbsp;&nbsp;&nbsp;&nbsp;"
200
- if mlen > 0
201
- j=0
202
- while j<mlen
203
- param = formats[:builder_in][j]
204
- complex_class = param.get_complex_class_name
205
- use_spacer = mlen > 1 ? true : false
206
- if WashoutBuilder::Type::BASIC_TYPES.include?(param.type)
207
- pre << "#{use_spacer ? spacer: ''}<span class='blue'>#{param.type}</span>&nbsp;<span class='bold'>#{param.name}</span>"
208
- else
209
- unless complex_class.nil?
210
- create_html_public_method_arguments_complex_type(pre, spacer, use_spacer, complex_class, param)
211
- end
212
- end
213
- if j< (mlen-1)
214
- xml.span ", "
215
- end
216
- if mlen > 1
217
- xml.br
218
- end
219
- if (j+1) == mlen
220
- xml.span("class" => "bold") {|y| y << ")" }
221
- end
222
- j+=1
223
- end
224
-
225
- end
226
- end
227
-
228
-
229
- def create_html_public_method(xml, operation, formats)
230
- # raise YAML::dump(formats[:builder_in])
231
- xml.h3 "#{operation}"
232
- xml.a("name" => "#{operation}") {}
233
-
234
- xml.p("class" => "pre"){ |pre|
235
- create_html_public_method_return_type(xml,pre, formats)
236
- xml.span("class" => "bold") {|y| y << "#{operation} (" }
237
- create_html_public_method_arguments(xml, pre, operation, formats)
238
- }
239
- xml.p "#{formats[:description]}" if !formats[:description].blank?
240
- create_parameters_html(xml, formats)
241
- create_return_type_html(xml, formats)
242
- create_exceptions_list_html(xml, formats)
243
- end
244
-
245
- end
@@ -1,8 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe WashoutBuilderHelper do
4
-
5
-
6
-
7
-
8
- end