wash_out 0.3.2 → 0.3.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.
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.3
4
+
5
+ * Tiny fixes in wash_out behavior with inline arrays (#11, #12)
6
+ * Ability to change namespace
7
+
3
8
  ## 0.3.2
4
9
 
5
10
  * WashOut doesn't check existance of parameters anymore you should do it yourself from now
data/README.md CHANGED
@@ -122,6 +122,11 @@ result.to_hash # => {:value=>"123abc"}
122
122
 
123
123
  Take a look at [WashOut sample application](https://github.com/roundlake/wash_out-sample).
124
124
 
125
+ Namespace
126
+ ---------
127
+
128
+ Use `config.action_view.washout_namespace = 'urn:test'` inside your environment configuration to modify default `urn:WashOut` namespace.
129
+
125
130
  License
126
131
  -------
127
132
 
@@ -5,13 +5,15 @@ module WashOut
5
5
  # as a SOAP endpoint. It includes actions for generating WSDL and handling
6
6
  # SOAP requests.
7
7
  module Dispatcher
8
- # Default Type namespace
9
- NAMESPACE = 'urn:WashOut'
10
-
11
8
  # A SOAPError exception can be raised to return a correct SOAP error
12
9
  # response.
13
10
  class SOAPError < Exception; end
14
11
 
12
+ def namespace
13
+ namespace = ActionView::Base.washout_namespace if defined?(ActionView::Base)
14
+ namespace ||= 'urn:WashOut'
15
+ end
16
+
15
17
  # This filter parses the SOAP request and puts it into +params+ array.
16
18
  def _parse_soap_parameters
17
19
  soap_action = request.env['wash_out.soap_action']
@@ -62,7 +64,7 @@ module WashOut
62
64
  # This action generates the WSDL for defined SOAP methods.
63
65
  def _generate_wsdl
64
66
  @map = self.class.soap_actions
65
- @namespace = NAMESPACE
67
+ @namespace = namespace
66
68
  @name = controller_path.gsub('/', '_')
67
69
 
68
70
  render :template => 'wash_with_soap/wsdl'
@@ -70,7 +72,7 @@ module WashOut
70
72
 
71
73
  # Render a SOAP response.
72
74
  def _render_soap(result, options)
73
- @namespace = NAMESPACE
75
+ @namespace = namespace
74
76
  @operation = soap_action = request.env['wash_out.soap_action']
75
77
  action_spec = self.class.soap_actions[soap_action][:out].clone
76
78
 
@@ -1,4 +1,4 @@
1
1
  module WashOut
2
2
  class Engine < ::Rails::Engine
3
3
  end
4
- end
4
+ end
@@ -31,15 +31,19 @@ module WashOut
31
31
  end
32
32
 
33
33
  data = data[key]
34
- data = Array(data) if @multiplied
34
+ data = [data] if @multiplied && !data.is_a?(Array)
35
35
 
36
36
  if struct?
37
37
  if @multiplied
38
38
  data.map do |x|
39
- map_struct(x) { |param, data, elem| param.load(data, elem) }
39
+ map_struct x do |param, data, elem|
40
+ param.load(data, elem)
41
+ end
40
42
  end
41
43
  else
42
- map_struct(data) { |param, data, elem| param.load(data, elem) }
44
+ map_struct data do |param, data, elem|
45
+ param.load(data, elem)
46
+ end
43
47
  end
44
48
  else
45
49
  operation = case type
@@ -122,7 +126,9 @@ module WashOut
122
126
 
123
127
  # RUBY18 Enumerable#each_with_object is better, but 1.9 only.
124
128
  @map.map do |param|
125
- struct[param.name] = yield param, data, param.name
129
+ if data.has_key? param.name
130
+ struct[param.name] = yield param, data, param.name
131
+ end
126
132
  end
127
133
 
128
134
  struct
@@ -1,3 +1,3 @@
1
1
  module WashOut
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
data/lib/wash_out.rb CHANGED
@@ -15,6 +15,14 @@ module ActionDispatch::Routing
15
15
  end
16
16
 
17
17
  Mime::Type.register "application/soap+xml", :soap
18
+
18
19
  ActionController::Renderers.add :soap do |what, options|
19
20
  _render_soap(what, options)
21
+ end
22
+
23
+ module ActionView
24
+ class Base
25
+ cattr_accessor :washout_namespace
26
+ @@washout_namespace = false
27
+ end
20
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wash_out
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-03-10 00:00:00.000000000 Z
13
+ date: 2012-03-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nori
17
- requirement: &70132283257380 !ruby/object:Gem::Requirement
17
+ requirement: &70221734751660 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70132283257380
25
+ version_requirements: *70221734751660
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rspec-rails
28
- requirement: &70132282141100 !ruby/object:Gem::Requirement
28
+ requirement: &70221734751040 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *70132282141100
36
+ version_requirements: *70221734751040
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: appraisal
39
- requirement: &70132282137260 !ruby/object:Gem::Requirement
39
+ requirement: &70221734750580 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *70132282137260
47
+ version_requirements: *70221734750580
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: tzinfo
50
- requirement: &70132282135480 !ruby/object:Gem::Requirement
50
+ requirement: &70221734750100 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *70132282135480
58
+ version_requirements: *70221734750100
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: savon
61
- requirement: &70132286104660 !ruby/object:Gem::Requirement
61
+ requirement: &70221734768560 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,7 +66,7 @@ dependencies:
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *70132286104660
69
+ version_requirements: *70221734768560
70
70
  description: Dead simple Rails 3 SOAP server library
71
71
  email: boris@roundlake.ru
72
72
  executables: []