washout_builder 0.16.5 → 1.0.0

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4c29c616804c414323cef5873a40c5dc32dda16d
4
- data.tar.gz: fcc127cab6b7b6c839df8a93f614d4d05bd9b6b2
3
+ metadata.gz: 8e260042314d03a1b4870adc1f58aa09b3bb0f03
4
+ data.tar.gz: 45e9bd052649d80b029ddfeeb20d8e3399dc89f6
5
5
  SHA512:
6
- metadata.gz: 99929f3655c1dc6a46df4fdeec82e9aaf2ce3c0c23046a9414df4c3fd40297f151ad697b11ea25ba9bff4cc4ec9b7983a4093c1a6a49034e228e859ad92c0c07
7
- data.tar.gz: 4c95effbfe698198b8704b4111b99f335cb11a2a4d88e6e3eba6b7aaf59aa33215689e46e98653a80bd2a43944a321e21a6cc4c8680bcaa8e1bde80d00a2298e
6
+ metadata.gz: a3e0839175bad01174789649207527c2f338cbe42a29e604af71c3b555930687df41d44807aeef2700f5365357d963a69798e8f6920d5fdee7d956de3eca15ba
7
+ data.tar.gz: dd7a24b984e06b0863e787cf28c54265a74334ba4d9b384a28db59828c8c74c0f514bfa3507f25954bd11ce657323fc6f38ffd84fbe922c37205892ea21a3d17
data/.rubocop.yml CHANGED
@@ -4,6 +4,7 @@ AllCops:
4
4
  - bin/**/*
5
5
  - spec/support/fix_minitest.rb
6
6
  - Guardfile
7
+ - vendor/**/*
7
8
 
8
9
  Documentation:
9
10
  Enabled: false
@@ -66,4 +67,3 @@ Style/ExtraSpacing:
66
67
 
67
68
  Style/FileName:
68
69
  Enabled: false
69
-
data/.travis.yml CHANGED
@@ -1,3 +1,5 @@
1
+ sudo: false
2
+ cache: bundler
1
3
  language: ruby
2
4
  before_install:
3
5
  - "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc"
data/README.rdoc CHANGED
@@ -1,6 +1,7 @@
1
1
  = washout_builder {<img src="https://badge.fury.io/rb/washout_builder.png" alt="Gem Version" />}[http://badge.fury.io/rb/washout_builder]
2
2
  {<img src="https://travis-ci.org/bogdanRada/washout_builder.png?branch=master,develop" />}[https://travis-ci.org/bogdanRada/washout_builder]
3
3
  {<img src="https://gemnasium.com/bogdanRada/washout_builder.svg" alt="Dependency Status" />}[https://gemnasium.com/bogdanRada/washout_builder]
4
+ {<img src="http://inch-ci.org/github/bogdanRada/washout_builder.svg?branch=master" alt="Inline docs" />}[http://inch-ci.org/github/bogdanRada/washout_builder]
4
5
  {<img src="https://coveralls.io/repos/bogdanRada/washout_builder/badge.png?branch=master" alt="Coverage Status" />}[https://coveralls.io/r/bogdanRada/washout_builder?branch=master]
5
6
  {<img src="https://codeclimate.com/github/bogdanRada/washout_builder.png" />}[https://codeclimate.com/github/bogdanRada/washout_builder]
6
7
  {<img src="https://reposs.herokuapp.com/?path=bogdanRada/washout_builder" alt="Repo Size"/>}[https://github.com/bogdanRada/washout_builder]
@@ -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 object.is_a?(WashOut::Param)
7
+ if WashoutBuilder::Type.all_param_classes.include?(object.class)
8
8
  xml.ul("class" => "pre") {
9
9
  object.map.each do |element|
10
10
  xml.li { |pre|
@@ -1,28 +1,31 @@
1
1
  require 'wash_out'
2
+ require 'active_support/core_ext/object/blank'
3
+ require 'active_support/core_ext/hash/keys'
4
+ require 'active_support/concern'
2
5
  Gem.find_files('washout_builder/**/*.rb').each { |path| require path }
3
6
 
4
- WashOut::Param.send :include, WashoutBuilder::Document::ComplexType
5
-
6
7
  WashoutBuilder::Type.all_fault_classes.each do |exception_class|
7
8
  exception_class.class_eval do
8
9
  extend WashoutBuilder::Document::ExceptionModel
9
10
  end
10
11
  end
11
12
 
12
- if defined?(WashOut::SOAP)
13
- WashOut::SOAP::ClassMethods.class_eval do
13
+ WashoutBuilder::Type.all_controller_classes.each do |controller|
14
+ controller.class_eval do
14
15
  alias_method :original_soap_action, :soap_action
16
+ include WashoutBuilder::SOAP
15
17
  end
16
18
  end
17
19
 
18
- if defined?(WashOut::Rails::Controller)
19
- WashOut::Rails::Controller::ClassMethods.class_eval do
20
- alias_method :original_soap_action, :soap_action
20
+ WashoutBuilder::Type.all_param_classes.each do |controller|
21
+ controller.class_eval do
22
+ extend WashoutBuilder::Param
23
+ include WashoutBuilder::Document::ComplexType
21
24
  end
22
25
  end
23
26
 
24
- if defined?(WashOut::SoapConfig)
25
- WashOut::SoapConfig.class_eval do
27
+ WashoutBuilder::Type.all_soap_config_classes.each do |controller|
28
+ controller.class_eval do
26
29
  singleton_class.send(:alias_method, :original_config, :config)
27
30
  singleton_class.send(:alias_method, :original_keys, :keys)
28
31
 
@@ -34,56 +37,5 @@ if defined?(WashOut::SoapConfig)
34
37
  original_config.merge(description: nil)
35
38
  end
36
39
  end
37
- WashOut::SoapConfig.soap_accessor(:description)
38
- end
39
-
40
- WashOut::Param.class_eval do
41
- def self.parse_builder_def(soap_config, definition)
42
- raise '[] should not be used in your params. Use nil if you want to mark empty set.' if definition == []
43
- return [] if definition.blank?
44
-
45
- # the following lines was removed because when generating the documentation
46
- # the "source_class" attrtibute of the object was not the name of the class of the complex tyoe
47
- # but instead was the name given in the hash
48
- # Example :
49
- # class ProjectType < WashOut::Type
50
- # map :project => {
51
- # :name => :string,
52
- # :description => :string,
53
- # :users => [{:mail => :string }],
54
- # }
55
- # end
56
- #
57
- # The name of the complex type should be ProjectType and not "project"
58
-
59
- # if definition.is_a?(Class) && definition.ancestors.include?(WashOut::Type)
60
- # definition = definition.wash_out_param_map
61
- # end
62
-
63
- definition = { value: definition } unless definition.is_a?(Hash) # for arrays and symbols
64
-
65
- definition.map do |name, opt|
66
- if opt.is_a? WashOut::Param
67
- opt
68
- elsif opt.is_a? Array
69
- WashOut::Param.new(soap_config, name, opt[0], true)
70
- else
71
- WashOut::Param.new(soap_config, name, opt)
72
- end
73
- end
74
- end
75
- end
76
-
77
- ActionController::Base.class_eval do
78
- # Define a SOAP service. The function has no required +options+:
79
- # but allow any of :parser, :namespace, :wsdl_style, :snakecase_input,
80
- # :camelize_wsdl, :wsse_username, :wsse_password and :catch_xml_errors.
81
- #
82
- # Any of the the params provided allows for overriding the defaults
83
- # (like supporting multiple namespaces instead of application wide such)
84
- #
85
- def self.soap_service(options = {})
86
- include WashoutBuilder::SOAP
87
- self.soap_config = options
88
- end
40
+ controller.soap_accessor(:description)
89
41
  end
@@ -0,0 +1,40 @@
1
+ module WashoutBuilder
2
+ module Param
3
+ extend ActiveSupport::Concern
4
+
5
+ def parse_builder_def(soap_config, definition)
6
+ raise '[] should not be used in your params. Use nil if you want to mark empty set.' if definition == []
7
+ return [] if definition.blank?
8
+
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
+ definition = { value: definition } unless definition.is_a?(Hash) # for arrays and symbols
28
+
29
+ definition.map do |name, opt|
30
+ if opt.is_a? self
31
+ opt
32
+ elsif opt.is_a? Array
33
+ new(soap_config, name, opt[0], true)
34
+ else
35
+ new(soap_config, name, opt)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -5,20 +5,7 @@ module WashoutBuilder
5
5
  # their arguments and return types
6
6
  module SOAP
7
7
  extend ActiveSupport::Concern
8
- include WashOut::SOAP if defined?(WashOut::SOAP)
9
- include WashOut::Rails::Controller if defined?(WashOut::Rails::Controller)
10
-
11
- # module that is used to define a soap action for a controller
12
- module ClassMethods
13
- # module that is used to define a soap action for a controller
14
- #
15
- # @!attribute soap_actions
16
- # @return [Hash] Hash that contains all the actions to which the web service responds to and information about them
17
- #
18
- # @!attribute washout_builder_action
19
- # @return [String] holds the action of the controller
20
- attr_accessor :soap_actions, :washout_builder_action
21
-
8
+ included do
22
9
  # Define a SOAP action +action+. The function has two required +options+:
23
10
  # :args and :return. Each is a type +definition+ of format described in
24
11
  # WashOut::Param#parse_def.
@@ -47,11 +34,5 @@ module WashoutBuilder
47
34
  current_action[:builder_out] = WashOut::Param.parse_builder_def(soap_config, options[:return])
48
35
  end
49
36
  end
50
-
51
- included do
52
- include WashOut::Configurable if defined?(WashOut::Configurable)
53
- include WashOut::Dispatcher if defined?(WashOut::Dispatcher)
54
- self.soap_actions = {}
55
- end
56
37
  end
57
38
  end
@@ -9,11 +9,30 @@ module WashoutBuilder
9
9
  # @return [Array<Class>] returns all the exception classes that should be considered to be detected
10
10
  # @api public
11
11
  def self.all_fault_classes
12
- faults = []
13
- faults << WashOut::SOAPError if defined?(WashOut::SOAPError)
14
- faults << WashOut::Dispatcher::SOAPError if defined?(WashOut::Dispatcher::SOAPError)
15
- faults << SOAPError if defined?(SOAPError)
16
- faults
12
+ classes = []
13
+ classes << WashOut::SOAPError if defined?(WashOut::SOAPError)
14
+ classes << WashOut::Dispatcher::SOAPError if defined?(WashOut::Dispatcher::SOAPError)
15
+ classes << SOAPError if defined?(SOAPError)
16
+ classes
17
+ end
18
+
19
+ def self.all_controller_classes
20
+ classes = []
21
+ classes << WashOut::Rails::Controller::ClassMethods if defined?(WashOut::Rails::Controller::ClassMethods)
22
+ classes << WashOut::SOAP::ClassMethods if defined?(WashOut::SOAP::ClassMethods)
23
+ classes
24
+ end
25
+
26
+ def self.all_param_classes
27
+ classes = []
28
+ classes << WashOut::Param if defined?(WashOut::Param)
29
+ classes
30
+ end
31
+
32
+ def self.all_soap_config_classes
33
+ classes = []
34
+ classes << WashOut::SoapConfig if defined?(WashOut::SoapConfig)
35
+ classes
17
36
  end
18
37
 
19
38
  # Checks if a exception class inherits from the basic ones
@@ -8,11 +8,11 @@ module WashoutBuilder
8
8
  # the module that is used to generate the gem version
9
9
  module VERSION
10
10
  # the major version of the gem
11
- MAJOR = 0
11
+ MAJOR = 1
12
12
  # the minor version of the gem
13
- MINOR = 16
13
+ MINOR = 0
14
14
  # the tiny version of the gem
15
- TINY = 5
15
+ TINY = 0
16
16
  # if the version should be a e
17
17
  PRE = nil
18
18
 
@@ -16,6 +16,7 @@ Gem::Specification.new do |s|
16
16
  s.test_files = s.files.grep(/^(spec)/)
17
17
  s.require_paths = ["lib"]
18
18
  s.add_runtime_dependency 'wash_out', '~> 0.9.1', '>= 0.9.1'
19
+ s.add_runtime_dependency 'activesupport', '~> 4.0', '>= 4.0'
19
20
 
20
21
  s.add_development_dependency 'wasabi', '~> 3.5', '>= 3.5'
21
22
  s.add_development_dependency 'savon', '~> 2.11', '>= 2.11'
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.16.5
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bogdanRada
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-26 00:00:00.000000000 Z
11
+ date: 2015-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: wash_out
@@ -30,6 +30,26 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.9.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: activesupport
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '4.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '4.0'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '4.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '4.0'
33
53
  - !ruby/object:Gem::Dependency
34
54
  name: wasabi
35
55
  requirement: !ruby/object:Gem::Requirement
@@ -575,6 +595,7 @@ files:
575
595
  - lib/washout_builder/document/generator.rb
576
596
  - lib/washout_builder/document/shared_complex_type.rb
577
597
  - lib/washout_builder/engine.rb
598
+ - lib/washout_builder/param.rb
578
599
  - lib/washout_builder/soap.rb
579
600
  - lib/washout_builder/type.rb
580
601
  - lib/washout_builder/version.rb