wash_out 0.6.1 → 0.7.0

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: 3071f45f7db5e92c1268fa07d37d9360e8d7de1d
4
- data.tar.gz: 3f41b6bb8e62a70f706f1d741a6dce76d3056c14
3
+ metadata.gz: 19fe1a666c510fa52e22b9c31a93a38424d2aa32
4
+ data.tar.gz: 1c01364f646262f102e61b6aa810fcf94fdf4f6a
5
5
  SHA512:
6
- metadata.gz: b943c09e30288f5e2f667dcd91f0d395e7764ac30c7402a6351660bd2abd394e7b406f4d7be2304c6565ba0c6032f04315012cbbe0f71911243ab23bff722d76
7
- data.tar.gz: b0d9054e3443979843838603f557451e57f7915d81f7a25611a9c8a5323efbf4b03f7b1ddc3fab3cea147a76c8431ac8a54a96a56cc31dcb0704c1373945b4c5
6
+ metadata.gz: 13d6e1f2e7d3bc7a9dd6ce4733b54ae7a676fc92c301e88c6dd5744a7fe989f7c980e5b84702eee31adc119914fbbb1aa9feb0b178f85a43c67c93edd045d70e
7
+ data.tar.gz: 1ba235561f6101acddeb623aa5e0750911ed24310532802f74ecc9597e5d845ab32775348888b934c0088b8b333dc7ed4ecfe3dd8970988ed4cfc6b4d556066c
data/.gitignore CHANGED
@@ -1,6 +1,9 @@
1
1
  .rbx/
2
2
  .bundle/
3
+ *.gem
3
4
  .idea/
5
+ .rvmrc
6
+ *.swp
4
7
  log/*.log
5
8
  pkg/
6
9
  spec/dummy/db/*.sqlite3
@@ -8,3 +11,5 @@ spec/dummy/log/*.log
8
11
  spec/dummy/tmp/
9
12
  gemfiles/rails-3.1.0.gemfile.lock b/gemfiles/rails-3.1.0.gemfile.lock
10
13
  gemfiles/rails-3.1.0.gemfile.lock b/gemfiles/rails-3.0.10.gemfile.lock
14
+ coverage
15
+ tags
data/.travis.yml CHANGED
@@ -3,5 +3,4 @@ before_install:
3
3
  rvm:
4
4
  - 1.9.3
5
5
  - jruby-19mode
6
- - rbx-19mode
7
6
  - 2.0.0
data/CHANGELOG.md CHANGED
@@ -1,9 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.7.0
4
+
5
+ * WSDL Document mode support [@gorism][]
6
+
3
7
  ## 0.6.0
4
8
 
5
- * Switched to Savon2 family
6
- * Main spec refactored greatly
9
+ * Switched to Savon2 family [@inossidabile][]
10
+ * Main spec refactored greatly [@inossidabile][]
7
11
 
8
12
  ## 0.5.4
9
13
 
@@ -82,7 +86,8 @@
82
86
  * SOAP response format improved. All results are now wrapped into tns:messages instead of soap:Body.
83
87
  * Arrays (minOccurs/maxOccurs) are now supported with `:foo => [:integer]` syntax.
84
88
 
85
- [@inossidabile]: https://twitter.com/#!/_inossidabile
89
+ [@inossidabile]: http://staal.io
86
90
  [@rngtng]: https://github.com/rngtng
87
91
  [@dhinus]: https://github.com/dhinus
88
- [@ebeigarts]: https://github.com/ebeigarts
92
+ [@ebeigarts]: https://github.com/ebeigarts
93
+ [@gorism]: https://github.com/gorism
data/Gemfile.lock CHANGED
@@ -8,7 +8,7 @@ GIT
8
8
  PATH
9
9
  remote: .
10
10
  specs:
11
- wash_out (0.6.1)
11
+ wash_out (0.7.0)
12
12
  nori (~> 2.0.0)
13
13
 
14
14
  GEM
@@ -86,7 +86,7 @@ GEM
86
86
  rake (>= 0.8.7)
87
87
  rdoc (~> 3.4)
88
88
  thor (>= 0.14.6, < 2.0)
89
- rake (10.0.3)
89
+ rake (10.0.4)
90
90
  rb-fsevent (0.9.2)
91
91
  rdoc (3.12)
92
92
  json (~> 1.4)
data/README.md CHANGED
@@ -9,10 +9,12 @@ But if you have a chance, please [http://stopsoap.com/](http://stopsoap.com/).
9
9
 
10
10
  ## Compatibility
11
11
 
12
- Rails >3.0 only. MRI 1.9, 2.0, JRuby (--1.9), Rubinius (--1.9).
12
+ Rails >3.0 only. MRI 1.9, 2.0, JRuby (--1.9).
13
13
 
14
14
  Ruby 1.8 is not officially supported since 0.5.3. We will accept further compatibilty pull-requests but no upcoming versions will be tested against it.
15
15
 
16
+ Rubinius support temporarily dropped since 0.6.2 due to Rails 4 incompatibility.
17
+
16
18
  ## Installation
17
19
 
18
20
  In your Gemfile, add this line:
@@ -140,6 +142,7 @@ Use `config.wash_out...` inside your environment configuration to setup WashOut.
140
142
 
141
143
  Available properties are:
142
144
 
145
+ * **style**: sets WSDL style. Supported values are: 'document' and 'rpc'.
143
146
  * **catch_xml_errors**: intercept Rails parsing exceptions to return correct XML response for corrupt XML input. Default is `false`.
144
147
  * **namespace**: SOAP namespace to use. Default is `urn:WashOut`.
145
148
  * **snakecase**: *(DEPRECATED SINCE 0.4.0)* Determines if WashOut should modify parameters keys to snakecase. Default is `false`.
@@ -157,7 +160,7 @@ soap_action "foo" # this will be passed as is
157
160
 
158
161
  ## Credits
159
162
 
160
- * Boris Staal ([@_inossidabile](http://twitter.com/#!/_inossidabile)) [![endorse](http://api.coderwall.com/inossidabile/endorsecount.png)](http://coderwall.com/inossidabile)
163
+ * Boris Staal ([@inossidabile](http://staal.io)) [![endorse](http://api.coderwall.com/inossidabile/endorsecount.png)](http://coderwall.com/inossidabile)
161
164
  * Peter Zotov ([@whitequark](http://twitter.com/#!/whitequark)) [![endorse](http://api.coderwall.com/whitequark/endorsecount.png)](http://coderwall.com/inossidabile)
162
165
 
163
166
  ## Contributors
@@ -167,6 +170,7 @@ soap_action "foo" # this will be passed as is
167
170
  * Francesco Negri ([@dhinus](https://github.com/dhinus))
168
171
  * Edgars Beigarts ([@ebeigarts](https://github.com/ebeigarts))
169
172
  * [Exad](https://github.com/exad) ([@wknechtel](https://github.com/wknechtel) and [@☈king](https://github.com/rking))
173
+ * Mark Goris ([@gorism](https://github.com/gorism))
170
174
 
171
175
  ## LICENSE
172
176
 
@@ -1,25 +1,36 @@
1
1
  module WashOutHelper
2
+
3
+ def wsdl_data_options(param)
4
+ case WashOut::Engine.style
5
+ when 'rpc'
6
+ { :"xsi:type" => param.namespaced_type }
7
+ when 'document'
8
+ { }
9
+ end
10
+ end
11
+
2
12
  def wsdl_data(xml, params)
3
13
  params.each do |param|
4
14
  tag_name = param.name
15
+ param_options = wsdl_data_options(param)
5
16
 
6
17
  if !param.struct?
7
18
  if !param.multiplied
8
- xml.tag! tag_name, param.value, "xsi:type" => param.namespaced_type
19
+ xml.tag! tag_name, param.value, param_options
9
20
  else
10
21
  param.value = [] unless param.value.is_a?(Array)
11
22
  param.value.each do |v|
12
- xml.tag! tag_name, v, "xsi:type" => param.namespaced_type
23
+ xml.tag! tag_name, v, param_options
13
24
  end
14
25
  end
15
26
  else
16
27
  if !param.multiplied
17
- xml.tag! tag_name, "xsi:type" => param.namespaced_type do
28
+ xml.tag! tag_name, param_options do
18
29
  wsdl_data(xml, param.map)
19
30
  end
20
31
  else
21
32
  param.map.each do |p|
22
- xml.tag! tag_name, "xsi:type" => param.namespaced_type do
33
+ xml.tag! tag_name, param_options do
23
34
  wsdl_data(xml, p.map)
24
35
  end
25
36
  end
@@ -0,0 +1,9 @@
1
+ xml.instruct!
2
+ xml.tag! "soap:Envelope", "xmlns:soap" => 'http://schemas.xmlsoap.org/soap/envelope/' do
3
+ xml.tag! "soap:Body" do
4
+ xml.tag! "soap:Fault" do
5
+ xml.faultcode "soap:Server"
6
+ xml.faultstring error_message
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ xml.instruct!
2
+ xml.tag! "soap:Envelope", "xmlns:soap" => 'http://schemas.xmlsoap.org/soap/envelope/',
3
+ "xmlns:xsd" => 'http://www.w3.org/2001/XMLSchema',
4
+ "xmlns:tns" => @namespace do
5
+ xml.tag! "soap:Body" do
6
+ key = "tns:#{@operation}#{WashOut::Engine.camelize_wsdl ? 'Response' : '_response'}"
7
+
8
+ xml.tag! @action_spec[:response_tag] do
9
+ wsdl_data xml, result
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,68 @@
1
+ xml.instruct!
2
+ xml.definitions 'xmlns' => 'http://schemas.xmlsoap.org/wsdl/',
3
+ 'xmlns:tns' => @namespace,
4
+ 'xmlns:soap' => 'http://schemas.xmlsoap.org/wsdl/soap/',
5
+ 'xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema',
6
+ 'xmlns:soap-enc' => 'http://schemas.xmlsoap.org/soap/encoding/',
7
+ 'xmlns:wsdl' => 'http://schemas.xmlsoap.org/wsdl/',
8
+ 'name' => @name,
9
+ 'targetNamespace' => @namespace do
10
+
11
+ xml.types do
12
+ xml.tag! "schema", :targetNamespace => @namespace, :xmlns => 'http://www.w3.org/2001/XMLSchema' do
13
+ defined = []
14
+ @map.each do |operation, formats|
15
+ (formats[:in] + formats[:out]).each do |p|
16
+ wsdl_type xml, p, defined
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ xml.portType :name => "#{@name}_port" do
23
+ @map.keys.each do |operation|
24
+ xml.operation :name => operation do
25
+ xml.input :message => "tns:#{operation}"
26
+ xml.output :message => "tns:#{operation}#{WashOut::Engine.camelize_wsdl ? 'Response' : '_response'}"
27
+ end
28
+ end
29
+ end
30
+
31
+ xml.binding :name => "#{@name}_binding", :type => "tns:#{@name}_port" do
32
+ xml.tag! "soap:binding", :style => 'document', :transport => 'http://schemas.xmlsoap.org/soap/http'
33
+ @map.keys.each do |operation|
34
+ xml.operation :name => operation do
35
+ xml.tag! "soap:operation", :soapAction => operation
36
+ xml.input do
37
+ xml.tag! "soap:body",
38
+ :use => "literal",
39
+ :namespace => @namespace
40
+ end
41
+ xml.output do
42
+ xml.tag! "soap:body",
43
+ :use => "literal",
44
+ :namespace => @namespace
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ xml.service :name => "service" do
51
+ xml.port :name => "#{@name}_port", :binding => "tns:#{@name}_binding" do
52
+ xml.tag! "soap:address", :location => url_for(:action => '_action', :only_path => false)
53
+ end
54
+ end
55
+
56
+ @map.each do |operation, formats|
57
+ xml.message :name => "#{operation}" do
58
+ formats[:in].each do |p|
59
+ xml.part wsdl_occurence(p, false, :name => p.name, :type => p.namespaced_type)
60
+ end
61
+ end
62
+ xml.message :name => "#{operation}#{WashOut::Engine.camelize_wsdl ? 'Response' : '_response'}" do
63
+ formats[:out].each do |p|
64
+ xml.part wsdl_occurence(p, false, :name => p.name, :type => p.namespaced_type)
65
+ end
66
+ end
67
+ end
68
+ end
@@ -15,11 +15,8 @@ module WashOut
15
15
  parser = Nori.new(
16
16
  :strip_namespaces => true,
17
17
  :advanced_typecasting => true,
18
- :convert_tags_to => (
19
- WashOut::Engine.snakecase_input ? lambda { |tag| tag.snakecase.to_sym }
20
- : lambda { |tag| tag.to_sym }
21
- )
22
- )
18
+ :convert_tags_to => ( WashOut::Engine.snakecase_input ? lambda { |tag| tag.snakecase.to_sym } \
19
+ : lambda { |tag| tag.to_sym } ))
23
20
 
24
21
  @_params = parser.parse(request.body.read)
25
22
  references = WashOut::Dispatcher.deep_select(@_params){|k,v| v.is_a?(Hash) && v.has_key?(:@id)}
@@ -70,14 +67,19 @@ module WashOut
70
67
  hash
71
68
  }
72
69
  xml_data = strip_empty_nodes.call(xml_data)
73
- @_params = HashWithIndifferentAccess.new
70
+ @_params = _load_params(action_spec[:in], xml_data)
71
+ end
74
72
 
75
- action_spec[:in].each do |param|
73
+ # Creates the final parameter hash based on the request spec and xml_data from the request
74
+ def _load_params(spec, xml_data)
75
+ params = HashWithIndifferentAccess.new
76
+ spec.each do |param|
76
77
  key = param.raw_name.to_sym
77
78
  if xml_data.has_key? key
78
- @_params[param.raw_name] = param.load(xml_data, key)
79
+ params[param.raw_name] = param.load(xml_data, key)
79
80
  end
80
81
  end
82
+ params
81
83
  end
82
84
 
83
85
  # This action generates the WSDL for defined SOAP methods.
@@ -86,7 +88,7 @@ module WashOut
86
88
  @namespace = WashOut::Engine.namespace
87
89
  @name = controller_path.gsub('/', '_')
88
90
 
89
- render :template => 'wash_with_soap/wsdl', :layout => false
91
+ render :template => "wash_with_soap/#{WashOut::Engine.style}/wsdl", :layout => false
90
92
  end
91
93
 
92
94
  # Render a SOAP response.
@@ -136,7 +138,7 @@ module WashOut
136
138
  return result_spec
137
139
  }
138
140
 
139
- render :template => 'wash_with_soap/response',
141
+ render :template => "wash_with_soap/#{WashOut::Engine.style}/response",
140
142
  :layout => false,
141
143
  :locals => { :result => inject.call(result, @action_spec[:out]) },
142
144
  :content_type => 'text/xml'
@@ -156,7 +158,7 @@ module WashOut
156
158
  # Rails do not support sequental rescue_from handling, that is, rescuing an
157
159
  # exception from a rescue_from handler. Hence this function is a public API.
158
160
  def render_soap_error(message)
159
- render :template => 'wash_with_soap/error', :status => 422,
161
+ render :template => "wash_with_soap/#{WashOut::Engine.style}/error", :status => 500,
160
162
  :layout => false,
161
163
  :locals => { :error_message => message },
162
164
  :content_type => 'text/xml'
@@ -2,6 +2,7 @@ module WashOut
2
2
  class Engine < ::Rails::Engine
3
3
  class << self
4
4
  attr_accessor :namespace
5
+ attr_accessor :style
5
6
  attr_accessor :snakecase, :camelize_output
6
7
  attr_accessor :snakecase_input, :camelize_wsdl
7
8
  attr_accessor :wsse_username, :wsse_password
@@ -9,6 +10,7 @@ module WashOut
9
10
  end
10
11
 
11
12
  self.namespace = 'urn:WashOut'
13
+ self.style = 'rpc'
12
14
  self.snakecase = nil
13
15
 
14
16
  self.snakecase_input = false
@@ -34,9 +36,14 @@ module WashOut
34
36
  raise "Usage of wash_out.camelize_output is deprecated. You should use wash_out.camelize_wsdl option instead"
35
37
  end
36
38
 
39
+ unless ['rpc','document'].include? self.class.style
40
+ raise "Invalid binding. Style must be one of #{['rpc','document'].join(',')}"
41
+ end
42
+
37
43
  if self.class.catch_xml_errors
38
44
  app.config.middleware.insert_after 'ActionDispatch::ShowExceptions', WashOut::Middleware
39
45
  end
40
46
  end
47
+
41
48
  end
42
49
  end
@@ -47,6 +47,7 @@ module WashOut
47
47
  data = [data] if @multiplied && !data.is_a?(Array)
48
48
 
49
49
  if struct?
50
+ data ||= {}
50
51
  if @multiplied
51
52
  data.map do |x|
52
53
  map_struct x do |param, data, elem|
@@ -63,7 +64,7 @@ module WashOut
63
64
  when 'string'; :to_s
64
65
  when 'integer'; :to_i
65
66
  when 'double'; :to_f
66
- when 'boolean'; nil
67
+ when 'boolean'; lambda{|data| data === "0" ? false : !!data}
67
68
  when 'date'; :to_date
68
69
  when 'datetime'; :to_datetime
69
70
  when 'time'; :to_time
@@ -71,10 +72,11 @@ module WashOut
71
72
  end
72
73
 
73
74
  begin
74
- if operation.nil? || data.nil?
75
+ if data.nil?
75
76
  data
76
77
  elsif @multiplied
77
- data.map{|x| x.send(operation)}
78
+ return data.map{|x| x.send(operation)} if operation.is_a?(Symbol)
79
+ return data.map{|x| operation.call(x)} if operation.is_a?(Proc)
78
80
  elsif operation.is_a? Symbol
79
81
  data.send(operation)
80
82
  else
data/lib/wash_out/type.rb CHANGED
@@ -21,8 +21,8 @@ module WashOut
21
21
  elsif WashOut::Engine.camelize_wsdl
22
22
  @param_type_name = @param_type_name.camelize
23
23
  end
24
-
24
+
25
25
  @param_type_name
26
26
  end
27
27
  end
28
- end
28
+ end
@@ -1,3 +1,3 @@
1
1
  module WashOut
2
- VERSION = "0.6.1"
2
+ VERSION = "0.7.0"
3
3
  end
@@ -58,4 +58,33 @@ describe WashOut::Dispatcher do
58
58
  }
59
59
  end
60
60
 
61
+ describe "#_load_params" do
62
+ let(:dispatcher) { Dispatcher.new }
63
+
64
+ it "should load params for an array" do
65
+ spec = WashOut::Param.parse_def( {:my_array => [:integer] } )
66
+ xml_data = {:my_array => [1, 2, 3]}
67
+ dispatcher._load_params(spec, xml_data).should == {"my_array" => [1, 2, 3]}
68
+ end
69
+
70
+ it "should load params for an empty array" do
71
+ spec = WashOut::Param.parse_def( {:my_array => [:integer] } )
72
+ xml_data = {}
73
+ dispatcher._load_params(spec, xml_data).should == {}
74
+ end
75
+
76
+ it "should load params for a nested array" do
77
+ spec = WashOut::Param.parse_def( {:nested => {:my_array => [:integer]}} )
78
+ xml_data = {:nested => {:my_array => [1, 2, 3]}}
79
+ dispatcher._load_params(spec, xml_data).should == {"nested" => {"my_array" => [1, 2, 3]}}
80
+ end
81
+
82
+ it "should load params for an empty nested array" do
83
+ spec = WashOut::Param.parse_def( {:nested => {:empty => [:integer] }} )
84
+ xml_data = {:nested => nil}
85
+ dispatcher._load_params(spec, xml_data).should == {"nested" => {}}
86
+ end
87
+
88
+ end
89
+
61
90
  end
@@ -4,34 +4,56 @@ require 'spec_helper'
4
4
 
5
5
  describe WashOut::Param do
6
6
 
7
- class Abraka1 < WashOut::Type
8
- map(
9
- :test => :string
10
- )
7
+ context "custom types" do
8
+ class Abraka1 < WashOut::Type
9
+ map(
10
+ :test => :string
11
+ )
12
+ end
13
+ class Abraka2 < WashOut::Type
14
+ type_name 'test'
15
+ map :foo => Abraka1
16
+ end
17
+
18
+ it "loads custom_types" do
19
+ map = WashOut::Param.parse_def Abraka2
20
+
21
+ map.should be_a_kind_of(Array)
22
+ map[0].name.should == 'value'
23
+ map[0].map[0].name.should == 'foo'
24
+ map[0].map[0].map[0].name.should == 'test'
25
+ end
26
+
27
+ it "respects camelization setting" do
28
+ WashOut::Engine.camelize_wsdl = true
29
+
30
+ map = WashOut::Param.parse_def Abraka2
31
+
32
+ map.should be_a_kind_of(Array)
33
+ map[0].name.should == 'Value'
34
+ map[0].map[0].name.should == 'Foo'
35
+ map[0].map[0].map[0].name.should == 'Test'
36
+ end
11
37
  end
12
- class Abraka2 < WashOut::Type
13
- type_name 'test'
14
- map :foo => Abraka1
15
- end
16
-
17
- it "loads custom_types" do
18
- map = WashOut::Param.parse_def Abraka2
19
38
 
20
- map.should be_a_kind_of(Array)
21
- map[0].name.should == 'value'
22
- map[0].map[0].name.should == 'foo'
23
- map[0].map[0].map[0].name.should == 'test'
39
+ it "should accept nested empty arrays" do
40
+ map = WashOut::Param.parse_def( {:nested => {:some_attr => :string, :empty => [:integer] }} )
41
+ map[0].load( {:nested => nil}, :nested).should == {}
24
42
  end
25
43
 
26
- it "respects camelization setting" do
27
- WashOut::Engine.camelize_wsdl = true
44
+ describe "booleans" do
45
+ # following http://www.w3.org/TR/xmlschema-2/#boolean, only true, false, 0 and 1 are allowed.
46
+ # Nori maps the strings true and false to TrueClass and FalseClass, but not 0 and 1.
47
+ let(:map) { WashOut::Param.parse_def(:value => :boolean) }
28
48
 
29
- map = WashOut::Param.parse_def Abraka2
49
+ it "should accept 'true' and '1'" do
50
+ map[0].load({:value => true}, :value).should be_true
51
+ map[0].load({:value => "1"}, :value).should be_true
52
+ end
30
53
 
31
- map.should be_a_kind_of(Array)
32
- map[0].name.should == 'Value'
33
- map[0].map[0].name.should == 'Foo'
34
- map[0].map[0].map[0].name.should == 'Test'
54
+ it "should accept 'false' and '0'" do
55
+ map[0].load({:value => false}, :value).should be_false
56
+ map[0].load({:value => "0"}, :value).should be_false
57
+ end
35
58
  end
36
-
37
- end
59
+ end
@@ -185,6 +185,36 @@ describe WashOut do
185
185
  savon(:rumba, :rumbas => [1, 2, 3])
186
186
  end
187
187
 
188
+ it "accept empty arrays" do
189
+ mock_controller do
190
+ soap_action "rumba",
191
+ :args => {
192
+ :my_array => [:integer]
193
+ },
194
+ :return => nil
195
+ def rumba
196
+ params.should == {}
197
+ render :soap => nil
198
+ end
199
+ end
200
+ savon(:rumba, :empty => [])
201
+ end
202
+
203
+ it "accept nested empty arrays" do
204
+ mock_controller do
205
+ soap_action "rumba",
206
+ :args => {
207
+ :nested => {:my_array => [:integer] }
208
+ },
209
+ :return => nil
210
+ def rumba
211
+ params.should == {"nested" => {}}
212
+ render :soap => nil
213
+ end
214
+ end
215
+ savon(:rumba, :nested => {:my_array => []})
216
+ end
217
+
188
218
  it "accept nested structures inside arrays" do
189
219
  mock_controller do
190
220
  soap_action "rumba",
@@ -357,8 +387,10 @@ describe WashOut do
357
387
  end
358
388
  end
359
389
 
360
- savon(:true, :value => true)
361
- savon(:false, :value => false)
390
+ savon(:true, :value => "true")
391
+ savon(:true, :value => "1")
392
+ savon(:false, :value => "false")
393
+ savon(:false, :value => "0")
362
394
  end
363
395
 
364
396
  it "recognize dates" do
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,13 @@
1
1
  # Configure Rails Envinronment
2
2
  ENV["RAILS_ENV"] = "test"
3
3
 
4
+ require "simplecov"
5
+ SimpleCov.start do
6
+ add_filter 'spec'
7
+ add_group 'Library', 'lib'
8
+ add_group 'App', 'app'
9
+ end
10
+
4
11
  require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
12
  require "rails/test_help"
6
13
  require "rspec/rails"
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.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boris Staal
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-07 00:00:00.000000000 Z
12
+ date: 2013-04-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nori
@@ -43,9 +43,12 @@ files:
43
43
  - README.md
44
44
  - Rakefile
45
45
  - app/helpers/wash_out_helper.rb
46
- - app/views/wash_with_soap/error.builder
47
- - app/views/wash_with_soap/response.builder
48
- - app/views/wash_with_soap/wsdl.builder
46
+ - app/views/wash_with_soap/document/error.builder
47
+ - app/views/wash_with_soap/document/response.builder
48
+ - app/views/wash_with_soap/document/wsdl.builder
49
+ - app/views/wash_with_soap/rpc/error.builder
50
+ - app/views/wash_with_soap/rpc/response.builder
51
+ - app/views/wash_with_soap/rpc/wsdl.builder
49
52
  - gemfiles/rails_3.1.3.gemfile
50
53
  - gemfiles/rails_3.1.3.gemfile.lock
51
54
  - gemfiles/rails_3.2.12.gemfile