washout_builder 1.0.0 → 1.0.2

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: 8e260042314d03a1b4870adc1f58aa09b3bb0f03
4
- data.tar.gz: 45e9bd052649d80b029ddfeeb20d8e3399dc89f6
3
+ metadata.gz: ce93207677248ea25aec7558a3266667c7e1ee45
4
+ data.tar.gz: 71325291f14d1069c7754c4ba5add1f367cd3335
5
5
  SHA512:
6
- metadata.gz: a3e0839175bad01174789649207527c2f338cbe42a29e604af71c3b555930687df41d44807aeef2700f5365357d963a69798e8f6920d5fdee7d956de3eca15ba
7
- data.tar.gz: dd7a24b984e06b0863e787cf28c54265a74334ba4d9b384a28db59828c8c74c0f514bfa3507f25954bd11ce657323fc6f38ffd84fbe922c37205892ea21a3d17
6
+ metadata.gz: f6ab9c9c591e68539ffd4f7052f723765a42adfc5401d53866578122771f36b61bfcb9ffb162f5e2b31a00cf15cf564f6cdee853b823f3cef80add358ba109c6
7
+ data.tar.gz: 70785954e5697320a6c42948f302205120df5632482be8420e38fe8a6b644c093321c0e89402fee3221920857e25d150ab7cd02500cd54b0204e76da8d294cd7
@@ -4,7 +4,7 @@ unless object.blank?
4
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
5
 
6
6
 
7
- if WashoutBuilder::Type.all_param_classes.include?(object.class)
7
+ if WashoutBuilder::Type.base_param_class.present? && object.is_a?(WashoutBuilder::Type.base_param_class)
8
8
  xml.ul("class" => "pre") {
9
9
  object.map.each do |element|
10
10
  xml.li { |pre|
@@ -4,12 +4,16 @@ require 'active_support/core_ext/hash/keys'
4
4
  require 'active_support/concern'
5
5
  Gem.find_files('washout_builder/**/*.rb').each { |path| require path }
6
6
 
7
+ # finds all the exception class and extends them by including the ExceptionModel module in order to be
8
+ # able to generate documentation for exceptions
7
9
  WashoutBuilder::Type.all_fault_classes.each do |exception_class|
8
10
  exception_class.class_eval do
9
11
  extend WashoutBuilder::Document::ExceptionModel
10
12
  end
11
13
  end
12
14
 
15
+ # finds all the classes that have defined the "soap_action" method and overrides it so that
16
+ # it parses the definition properly for generating documentation
13
17
  WashoutBuilder::Type.all_controller_classes.each do |controller|
14
18
  controller.class_eval do
15
19
  alias_method :original_soap_action, :soap_action
@@ -17,13 +21,18 @@ WashoutBuilder::Type.all_controller_classes.each do |controller|
17
21
  end
18
22
  end
19
23
 
20
- WashoutBuilder::Type.all_param_classes.each do |controller|
21
- controller.class_eval do
24
+ # find the class that is used for parsing definition of soap actions and add method for parsing definition
25
+ # and also includes the ComplexType module that is used for generating documentation
26
+ base_param_class = WashoutBuilder::Type.base_param_class
27
+ if base_param_class.present?
28
+ base_param_class.class_eval do
22
29
  extend WashoutBuilder::Param
23
30
  include WashoutBuilder::Document::ComplexType
24
31
  end
25
32
  end
26
33
 
34
+ # finds all the soap config classes that have the methods "config" and "keys" and overrides them in order to add the "description"key to the allowed keys
35
+ # this will allow webservices to specify a description besides the namespace and endpoint
27
36
  WashoutBuilder::Type.all_soap_config_classes.each do |controller|
28
37
  controller.class_eval do
29
38
  singleton_class.send(:alias_method, :original_config, :config)
@@ -27,7 +27,7 @@ module WashoutBuilder
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
32
  def check_duplicate_complex_class(defined, complex_class)
33
33
  complex_obj_found = defined.find { |hash| hash[:class] == complex_class }
@@ -1,29 +1,39 @@
1
1
  module WashoutBuilder
2
+ # module that extends the base WashoutParam to allow parsing of definitions for building documentation
2
3
  module Param
3
4
  extend ActiveSupport::Concern
4
5
 
6
+ # Method that receives the arguments for a soap action (input or output) and tries to parse the definition (@see WashOutParam#parse_def)
7
+ #
8
+ # the following lines was removed from original method because when generating the documentation
9
+ # the "source_class" attrtibute of the object was not the name of the class of the complex tyoe
10
+ # but instead was the name given in the hash
11
+ #
12
+ # if definition.is_a?(Class) && definition.ancestors.include?(WashOut::Type)
13
+ # definition = definition.wash_out_param_map
14
+ # end
15
+ #
16
+ # @example Given the class ProjectType as a "definition" argument, the complex type name should be ProjectType and not "project"
17
+ # class ProjectType < WashOut::Type
18
+ # map :project => {
19
+ # :name => :string,
20
+ # :description => :string,
21
+ # :users => [{:mail => :string }],
22
+ # }
23
+ # end
24
+ #
25
+ #
26
+ # @see WashoutBuilder::SOAP#soap_action
27
+ # @see WashOutParam#initialize
28
+ #
29
+ # @param [WasOut::SoapConfig] soap_config Holds the soap configuration for the entire web service
30
+ # @param [Object] definition Any type of object ( this is passed from the soap action)
31
+ #
32
+ # @return [Type] description of returned object
5
33
  def parse_builder_def(soap_config, definition)
6
34
  raise '[] should not be used in your params. Use nil if you want to mark empty set.' if definition == []
7
35
  return [] if definition.blank?
8
36
 
9
- # the following lines was removed because when generating the documentation
10
- # the "source_class" attrtibute of the object was not the name of the class of the complex tyoe
11
- # but instead was the name given in the hash
12
- # Example :
13
- # class ProjectType < WashOut::Type
14
- # map :project => {
15
- # :name => :string,
16
- # :description => :string,
17
- # :users => [{:mail => :string }],
18
- # }
19
- # end
20
- #
21
- # The name of the complex type should be ProjectType and not "project"
22
-
23
- # if definition.is_a?(Class) && definition.ancestors.include?(WashOut::Type)
24
- # definition = definition.wash_out_param_map
25
- # end
26
-
27
37
  definition = { value: definition } unless definition.is_a?(Hash) # for arrays and symbols
28
38
 
29
39
  definition.map do |name, opt|
@@ -16,6 +16,10 @@ module WashoutBuilder
16
16
  classes
17
17
  end
18
18
 
19
+ # returns all the controller classes that should override the "soap_action" method
20
+ #
21
+ # @return [Array<Class>] returns all the controller classes that should override the "soap_action" method
22
+ # @api public
19
23
  def self.all_controller_classes
20
24
  classes = []
21
25
  classes << WashOut::Rails::Controller::ClassMethods if defined?(WashOut::Rails::Controller::ClassMethods)
@@ -23,12 +27,18 @@ module WashoutBuilder
23
27
  classes
24
28
  end
25
29
 
26
- def self.all_param_classes
27
- classes = []
28
- classes << WashOut::Param if defined?(WashOut::Param)
29
- classes
30
+ # returns the base class that is used for parsing definitions of soap actions
31
+ #
32
+ # @return [Class] returns the base class that is used for parsing definitions of soap actions
33
+ # @api public
34
+ def self.base_param_class
35
+ defined?(WashOut::Param) ? WashOut::Param : nil
30
36
  end
31
37
 
38
+ # returns all the soap config classss that should be overriden to allow description of web service also besides namespace and endpoint
39
+ #
40
+ # @return [Array<Class>] returns all the soap config classss that should be overriden to allow description of web service also besides namespace and endpoint
41
+ # @api public
32
42
  def self.all_soap_config_classes
33
43
  classes = []
34
44
  classes << WashOut::SoapConfig if defined?(WashOut::SoapConfig)
@@ -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 = 0
15
+ TINY = 2
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.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - bogdanRada
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-01 00:00:00.000000000 Z
11
+ date: 2015-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: wash_out