wash_out 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
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: []