wash_out 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ .rbx/
1
2
  .bundle/
2
3
  .idea/
3
4
  log/*.log
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --tty --colour
data/.travis.yml CHANGED
@@ -1,3 +1,4 @@
1
1
  rvm:
2
2
  - 1.9.3
3
3
  - jruby-19mode
4
+ - rbx-19mode
data/Gemfile CHANGED
@@ -1,5 +1,2 @@
1
1
  source "http://rubygems.org"
2
-
3
- gem 'pry'
4
-
5
2
  gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wash_out (0.5.2)
4
+ wash_out (0.5.3)
5
5
  nori
6
6
 
7
7
  GEM
@@ -29,9 +29,18 @@ GEM
29
29
  bundler
30
30
  rake
31
31
  builder (3.0.0)
32
- coderay (1.0.5)
32
+ coderay (1.0.8)
33
33
  diff-lcs (1.1.3)
34
34
  erubis (2.7.0)
35
+ ffi (1.1.5)
36
+ ffi (1.1.5-java)
37
+ guard (1.5.0)
38
+ listen (>= 0.4.2)
39
+ lumberjack (>= 1.0.2)
40
+ pry (>= 0.9.10)
41
+ thor (>= 0.14.6)
42
+ guard-rspec (1.2.1)
43
+ guard (>= 1.1)
35
44
  gyoku (0.4.4)
36
45
  builder (>= 2.1.2)
37
46
  hike (1.2.1)
@@ -41,19 +50,21 @@ GEM
41
50
  journey (1.0.3)
42
51
  json (1.6.5)
43
52
  json (1.6.5-java)
44
- method_source (0.7.1)
53
+ listen (0.5.3)
54
+ lumberjack (1.0.2)
55
+ method_source (0.8.1)
45
56
  multi_json (1.1.0)
46
57
  nokogiri (1.5.0)
47
58
  nokogiri (1.5.0-java)
48
59
  nori (1.1.0)
49
- pry (0.9.8.4)
60
+ pry (0.9.10)
50
61
  coderay (~> 1.0.5)
51
- method_source (~> 0.7.1)
52
- slop (>= 2.4.4, < 3)
53
- pry (0.9.8.4-java)
62
+ method_source (~> 0.8)
63
+ slop (~> 3.3.1)
64
+ pry (0.9.10-java)
54
65
  coderay (~> 1.0.5)
55
- method_source (~> 0.7.1)
56
- slop (>= 2.4.4, < 3)
66
+ method_source (~> 0.8)
67
+ slop (~> 3.3.1)
57
68
  spoon (~> 0.0)
58
69
  rack (1.4.1)
59
70
  rack-cache (1.1)
@@ -69,7 +80,10 @@ GEM
69
80
  rake (>= 0.8.7)
70
81
  rdoc (~> 3.4)
71
82
  thor (~> 0.14.6)
72
- rake (0.9.2.2)
83
+ rake (10.0.2)
84
+ rb-fsevent (0.9.2)
85
+ rb-inotify (0.8.8)
86
+ ffi (>= 0.5.0)
73
87
  rdoc (3.12)
74
88
  json (~> 1.4)
75
89
  rspec (2.8.0)
@@ -93,7 +107,7 @@ GEM
93
107
  nokogiri (>= 1.4.0)
94
108
  nori (~> 1.1)
95
109
  wasabi (~> 2.1)
96
- slop (2.4.4)
110
+ slop (3.3.3)
97
111
  spoon (0.0.1)
98
112
  sprockets (2.1.2)
99
113
  hike (~> 1.2)
@@ -111,7 +125,11 @@ PLATFORMS
111
125
 
112
126
  DEPENDENCIES
113
127
  appraisal
128
+ guard
129
+ guard-rspec
114
130
  pry
131
+ rb-fsevent
132
+ rb-inotify
115
133
  rspec-rails
116
134
  savon
117
135
  tzinfo
data/Guardfile ADDED
@@ -0,0 +1,12 @@
1
+ # More info at https://github.com/guard/guard#readme
2
+
3
+ # Could be changed to whatever you want.
4
+ # See: https://github.com/guard/guard#notification
5
+ notification :off
6
+
7
+ guard 'rspec' do
8
+ watch %r{^spec/.+_spec\.rb$}
9
+ watch %r{lib/} do 'spec' end
10
+ end
11
+
12
+ # vim:ft=ruby
data/README.md CHANGED
@@ -6,19 +6,12 @@ But if you have a chance, please [http://stopsoap.com/](http://stopsoap.com/).
6
6
 
7
7
  ## Compatibility
8
8
 
9
- Rails >3.0 only.
9
+ Rails >3.0 only. MRI 1.9, JRuby (--1.9), Rubinius (--1.9).
10
10
 
11
- WashOut should work like a charm on CRuby 1.9.x.
11
+ 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.
12
12
 
13
13
  ![Travis CI](https://secure.travis-ci.org/roundlake/wash_out.png)
14
14
 
15
- We do support CRuby 1.8.7. However it is not a goal and it is not well supported by our specs. According to
16
- this fact it maybe sometimes broken from the start on major releases. You are welcome to hold on an old
17
- version and give us enough issues and pull-requests to make it work.
18
-
19
- All dependencies are JRuby-compatible so again it will work well in --1.9 mode but it can fail with
20
- fresh releases if you go --1.8.
21
-
22
15
  ## Installation
23
16
 
24
17
  In your Gemfile, add this line:
@@ -151,7 +144,7 @@ Available properties are:
151
144
  * **namespace**: SOAP namespace to use. Default is `urn:WashOut`.
152
145
  * **snakecase**: *(DEPRECATED SINCE 0.4.0)* Determines if WashOut should modify parameters keys to snakecase. Default is `false`.
153
146
  * **snakecase_input**: Determines if WashOut should modify parameters keys to snakecase. Default is `false`.
154
- * **camelize_wsdl**: Determinse if WashOut should camelize types within WSDL and responses. Default is `false`.
147
+ * **camelize_wsdl**: Determines if WashOut should camelize types within WSDL and responses. Default is `false`.
155
148
 
156
149
  ### Camelization
157
150
 
@@ -8,6 +8,7 @@ module WashOut
8
8
  # A SOAPError exception can be raised to return a correct SOAP error
9
9
  # response.
10
10
  class SOAPError < Exception; end
11
+ class ProgrammerError < Exception; end
11
12
 
12
13
  # This filter parses the SOAP request and puts it into +params+ array.
13
14
  def _parse_soap_parameters
@@ -122,12 +123,26 @@ module WashOut
122
123
 
123
124
  # Inline array of complex structures
124
125
  elsif param.struct? && param.multiplied
125
- data ||= {} #fallback in case no data is given
126
+ if data.nil?
127
+ data = {} # when no data is given
128
+ elsif data.is_a?(Array)
129
+ raise ProgrammerError,
130
+ "SOAP response used #{data.inspect} (which is an Array), " +
131
+ "in the context where a Hash with key of '#{param.raw_name}' " +
132
+ "was expected."
133
+ end
126
134
  data[param.raw_name] = [] unless data[param.raw_name].is_a?(Array)
127
135
  result_spec[i].map = data[param.raw_name].map{|e| inject.call(e, param.map)}
128
136
 
129
137
  else
130
- result_spec[i].value = data[param.raw_name]
138
+ val = data[param.raw_name]
139
+ if param.multiplied and val and not val.is_a?(Array)
140
+ raise ProgrammerError,
141
+ "SOAP response tried to use '#{val.inspect}' " +
142
+ "(which is of type #{val.class}), as the value for " +
143
+ "'#{param.raw_name}' (which expects an Array)."
144
+ end
145
+ result_spec[i].value = val
131
146
  end
132
147
  end
133
148
 
@@ -70,7 +70,7 @@ module WashOut
70
70
  else raise RuntimeError, "Invalid WashOut simple type: #{type}"
71
71
  end
72
72
 
73
- if operation.nil?
73
+ if operation.nil? || data.nil?
74
74
  data
75
75
  elsif @multiplied
76
76
  data.map{|x| x.send(operation)}
@@ -156,6 +156,10 @@ module WashOut
156
156
 
157
157
  # Used to load an entire structure.
158
158
  def map_struct(data)
159
+ unless data.is_a?(Hash)
160
+ raise WashOut::Dispatcher::SOAPError, "SOAP message structure is broken"
161
+ end
162
+
159
163
  data = data.with_indifferent_access
160
164
  struct = {}.with_indifferent_access
161
165
 
@@ -13,7 +13,8 @@ module WashOut
13
13
  # RUBY18 1.8 does not have force_encoding.
14
14
  soap_action.force_encoding('UTF-8') if soap_action.respond_to? :force_encoding
15
15
 
16
- soap_action.gsub!(/^\"(.*)\"$/, '\1')
16
+ namespace = Regexp.escape WashOut::Engine.namespace.to_s
17
+ soap_action.gsub!(/^\"(namespace\/?)?(.*)\"$/, '\2')
17
18
 
18
19
  env['wash_out.soap_action'] = soap_action
19
20
  end
data/lib/wash_out/type.rb CHANGED
@@ -15,13 +15,14 @@ module WashOut
15
15
 
16
16
  def self.wash_out_param_name
17
17
  @param_type_name ||= name.underscore
18
- @param_type_name
19
18
 
20
19
  if WashOut::Engine.camelize_wsdl.to_s == 'lower'
21
20
  @param_type_name = @param_type_name.camelize(:lower)
22
21
  elsif WashOut::Engine.camelize_wsdl
23
22
  @param_type_name = @param_type_name.camelize
24
23
  end
24
+
25
+ @param_type_name
25
26
  end
26
27
  end
27
28
  end
@@ -1,3 +1,3 @@
1
1
  module WashOut
2
- VERSION = "0.5.2"
2
+ VERSION = "0.5.3"
3
3
  end
@@ -62,4 +62,4 @@ describe WashOut::Dispatcher do
62
62
  dispatcher.params[:request][:entities].should == {:foo=>{:bar=>"1"}, :sub=>{:foo=>"1", :@id=>"id2"}, :@id=>"id1"}
63
63
  end
64
64
 
65
- end
65
+ end
@@ -0,0 +1,37 @@
1
+ #encoding:utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe WashOut::Param do
6
+
7
+ class Abraka1 < WashOut::Type
8
+ map(
9
+ :test => :string
10
+ )
11
+ 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
+
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'
24
+ end
25
+
26
+ it "respects camelization setting" do
27
+ WashOut::Engine.camelize_wsdl = true
28
+
29
+ map = WashOut::Param.parse_def Abraka2
30
+
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'
35
+ end
36
+
37
+ end
@@ -13,10 +13,10 @@ describe WashOut::Type do
13
13
  map :foo => Abraka1
14
14
  end
15
15
 
16
- Abraka1.wash_out_param_name.should == 'Abraka1'
16
+ Abraka1.wash_out_param_name.should == 'abraka1'
17
17
  Abraka1.wash_out_param_map.should == {:test => :string}
18
18
 
19
- Abraka2.wash_out_param_name.should == 'Test'
19
+ Abraka2.wash_out_param_name.should == 'test'
20
20
  Abraka2.wash_out_param_map.should == {:foo => Abraka1}
21
21
  end
22
22
 
@@ -6,7 +6,7 @@ describe WashOut do
6
6
  before(:each) do
7
7
  WashOut::Engine.snakecase_input = true
8
8
  WashOut::Engine.camelize_wsdl = true
9
- WashOut::Engine.namespace = false
9
+ WashOut::Engine.namespace = false
10
10
  end
11
11
 
12
12
  it "should be valid" do
@@ -49,13 +49,13 @@ describe WashOut do
49
49
 
50
50
  # Savon underscores method names so we
51
51
  # get back just what we have at controller
52
- client.wsdl.soap_actions.should == [:result, :get_area, :rocky]
52
+ client.wsdl.soap_actions.map{|x| x.to_s}.sort.should == [:result, :get_area, :rocky].map{|x| x.to_s}.sort
53
53
 
54
54
  x = xml[:definitions][:types][:schema][:complex_type].find{|x| x[:'@name'] == 'Center'}[:sequence][:element].find{|x| x[:'@name'] == 'X'}
55
55
  x[:'@min_occurs'].should == "0"
56
56
  x[:'@max_occurs'].should == "unbounded"
57
57
 
58
- xml[:definitions][:binding][:operation].map{|e| e[:'@name']}.should == ['Result', 'getArea', 'rocky']
58
+ xml[:definitions][:binding][:operation].map{|e| e[:'@name']}.sort.should == ['Result', 'getArea', 'rocky'].sort
59
59
 
60
60
  client.wsdl.xml.include?('<xsd:complexType name="Circle1">').should == true
61
61
  end
@@ -119,6 +119,23 @@ describe WashOut do
119
119
  end.to_hash[:check_answer_response][:value].should == false
120
120
  end
121
121
 
122
+ it "handles incorrect requests" do
123
+ mock_controller do
124
+ soap_action "duty",
125
+ :args => {:bad => {:a => :string, :b => :string}, :good => {:a => :string, :b => :string}},
126
+ :return => nil
127
+ def duty
128
+ render :soap => nil
129
+ end
130
+ end
131
+
132
+ lambda {
133
+ client.request(:duty) do
134
+ soap.body = { :bad => 42, :good => nil }
135
+ end
136
+ }.should raise_exception(Savon::SOAP::Fault)
137
+ end
138
+
122
139
  it "should handle snakecase option properly" do
123
140
  WashOut::Engine.snakecase_input = false
124
141
  WashOut::Engine.camelize_wsdl = false
@@ -496,7 +513,7 @@ describe WashOut do
496
513
  :args => :date,
497
514
  :return => :nil
498
515
  def date
499
- params[:value].should == Date.parse('2000-12-30')
516
+ params[:value].should == Date.parse('2000-12-30') unless params[:value].blank?
500
517
  render :soap => nil
501
518
  end
502
519
  end
@@ -506,6 +523,14 @@ describe WashOut do
506
523
  :value => '2000-12-30'
507
524
  }
508
525
  end
526
+
527
+ lambda {
528
+ client.request(:date) do
529
+ soap.body = {
530
+ :value => nil
531
+ }
532
+ end
533
+ }.should_not raise_exception
509
534
  end
510
535
 
511
536
  describe "ws-security" do
@@ -609,4 +634,53 @@ describe WashOut do
609
634
 
610
635
  end
611
636
 
637
+ it 'will not let you pass an Array in the place of a Hash' do
638
+ mock_controller do
639
+ soap_action 'bad', :args => :integer, :return => {
640
+ :basic => :string,
641
+ :stallions => {
642
+ :stallion => [
643
+ :name => :string,
644
+ :wyldness => :integer,
645
+ ]
646
+ },
647
+ }
648
+ def bad
649
+ render :soap => {
650
+ :basic => 'hi',
651
+ :stallions => [{:name => 'ted', :wyldness => 11}]
652
+ }
653
+ end
654
+ end
655
+
656
+ lambda {
657
+ client.request(:bad).to_hash(:bad_response)
658
+ }.should raise_exception(
659
+ WashOut::Dispatcher::ProgrammerError,
660
+ /SOAP response .*wyldness.*Array.*Hash.*stallion/
661
+ )
662
+ end
663
+
664
+ it 'loudly fails if you return a string in place of an Array' do
665
+ mock_controller do
666
+ soap_action 'bad2', :args => :integer, :return => {
667
+ :basic => :string,
668
+ :telephone_booths => [:string]
669
+ }
670
+ def bad2
671
+ render :soap => {
672
+ :basic => 'hihi',
673
+ :telephone_booths => 'oops'
674
+ }
675
+ end
676
+ end
677
+
678
+ lambda {
679
+ client.request(:bad2).to_hash[:bad_response]
680
+ }.should raise_exception(
681
+ WashOut::Dispatcher::ProgrammerError,
682
+ /SOAP response .*oops.*String.*telephone_booths.*Array/
683
+ )
684
+ end
685
+
612
686
  end
data/spec/spec_helper.rb CHANGED
@@ -18,6 +18,12 @@ RSpec.configure do |config|
18
18
 
19
19
  # == Mock Framework
20
20
  config.mock_with :rspec
21
+
22
+ config.before(:all) do
23
+ WashOut::Engine.snakecase_input = false
24
+ WashOut::Engine.camelize_wsdl = false
25
+ WashOut::Engine.namespace = false
26
+ end
21
27
  end
22
28
 
23
29
  require 'savon'
data/wash_out.gemspec CHANGED
@@ -14,8 +14,13 @@ Gem::Specification.new do |s|
14
14
  s.require_paths = ["lib"]
15
15
 
16
16
  s.add_dependency("nori")
17
- s.add_development_dependency("rspec-rails")
18
- s.add_development_dependency("appraisal")
19
- s.add_development_dependency("tzinfo")
20
- s.add_development_dependency("savon")
17
+ %w(
18
+ savon
19
+ rspec-rails guard guard-rspec rb-inotify rb-fsevent
20
+ appraisal
21
+ tzinfo
22
+ pry
23
+ ).each do |dep|
24
+ s.add_development_dependency(dep)
25
+ end
21
26
  end
metadata CHANGED
@@ -1,84 +1,180 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: wash_out
3
- version: !ruby/object:Gem::Version
4
- version: 0.5.2
3
+ version: !ruby/object:Gem::Version
4
+ hash: 1063984129097862891
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 5
9
+ - 3
10
+ version: 0.5.3
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Boris Staal
9
14
  - Peter Zotov
10
15
  autorequire:
11
16
  bindir: bin
12
17
  cert_chain: []
13
- date: 2012-08-21 00:00:00.000000000 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
18
+
19
+ date: 2012-12-01 00:00:00 Z
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
16
22
  name: nori
17
- requirement: &70188738989080 !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
18
25
  none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '0'
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 2002549777813010636
30
+ segments:
31
+ - 0
32
+ version: "0"
23
33
  type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: savon
24
37
  prerelease: false
25
- version_requirements: *70188738989080
26
- - !ruby/object:Gem::Dependency
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 2002549777813010636
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ type: :development
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
27
50
  name: rspec-rails
28
- requirement: &70188738988660 !ruby/object:Gem::Requirement
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
29
53
  none: false
30
- requirements:
31
- - - ! '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 2002549777813010636
58
+ segments:
59
+ - 0
60
+ version: "0"
34
61
  type: :development
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: guard
35
65
  prerelease: false
36
- version_requirements: *70188738988660
37
- - !ruby/object:Gem::Dependency
38
- name: appraisal
39
- requirement: &70188738988240 !ruby/object:Gem::Requirement
66
+ requirement: &id004 !ruby/object:Gem::Requirement
40
67
  none: false
41
- requirements:
42
- - - ! '>='
43
- - !ruby/object:Gem::Version
44
- version: '0'
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ hash: 2002549777813010636
72
+ segments:
73
+ - 0
74
+ version: "0"
45
75
  type: :development
76
+ version_requirements: *id004
77
+ - !ruby/object:Gem::Dependency
78
+ name: guard-rspec
46
79
  prerelease: false
47
- version_requirements: *70188738988240
48
- - !ruby/object:Gem::Dependency
49
- name: tzinfo
50
- requirement: &70188738987780 !ruby/object:Gem::Requirement
80
+ requirement: &id005 !ruby/object:Gem::Requirement
51
81
  none: false
52
- requirements:
53
- - - ! '>='
54
- - !ruby/object:Gem::Version
55
- version: '0'
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ hash: 2002549777813010636
86
+ segments:
87
+ - 0
88
+ version: "0"
56
89
  type: :development
90
+ version_requirements: *id005
91
+ - !ruby/object:Gem::Dependency
92
+ name: rb-inotify
57
93
  prerelease: false
58
- version_requirements: *70188738987780
59
- - !ruby/object:Gem::Dependency
60
- name: savon
61
- requirement: &70188738987360 !ruby/object:Gem::Requirement
94
+ requirement: &id006 !ruby/object:Gem::Requirement
62
95
  none: false
63
- requirements:
64
- - - ! '>='
65
- - !ruby/object:Gem::Version
66
- version: '0'
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ hash: 2002549777813010636
100
+ segments:
101
+ - 0
102
+ version: "0"
67
103
  type: :development
104
+ version_requirements: *id006
105
+ - !ruby/object:Gem::Dependency
106
+ name: rb-fsevent
68
107
  prerelease: false
69
- version_requirements: *70188738987360
108
+ requirement: &id007 !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ hash: 2002549777813010636
114
+ segments:
115
+ - 0
116
+ version: "0"
117
+ type: :development
118
+ version_requirements: *id007
119
+ - !ruby/object:Gem::Dependency
120
+ name: appraisal
121
+ prerelease: false
122
+ requirement: &id008 !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ hash: 2002549777813010636
128
+ segments:
129
+ - 0
130
+ version: "0"
131
+ type: :development
132
+ version_requirements: *id008
133
+ - !ruby/object:Gem::Dependency
134
+ name: tzinfo
135
+ prerelease: false
136
+ requirement: &id009 !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ hash: 2002549777813010636
142
+ segments:
143
+ - 0
144
+ version: "0"
145
+ type: :development
146
+ version_requirements: *id009
147
+ - !ruby/object:Gem::Dependency
148
+ name: pry
149
+ prerelease: false
150
+ requirement: &id010 !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ hash: 2002549777813010636
156
+ segments:
157
+ - 0
158
+ version: "0"
159
+ type: :development
160
+ version_requirements: *id010
70
161
  description: Dead simple Rails 3 SOAP server library
71
162
  email: boris@roundlake.ru
72
163
  executables: []
164
+
73
165
  extensions: []
166
+
74
167
  extra_rdoc_files: []
75
- files:
168
+
169
+ files:
76
170
  - .gitignore
171
+ - .rspec
77
172
  - .travis.yml
78
173
  - Appraisals
79
174
  - CHANGELOG.md
80
175
  - Gemfile
81
176
  - Gemfile.lock
177
+ - Guardfile
82
178
  - LICENSE
83
179
  - README.md
84
180
  - Rakefile
@@ -124,35 +220,45 @@ files:
124
220
  - spec/dummy/public/favicon.ico
125
221
  - spec/dummy/public/stylesheets/.gitkeep
126
222
  - spec/dummy/script/rails
223
+ - spec/lib/wash_out/dispatcher_spec.rb
224
+ - spec/lib/wash_out/param_spec.rb
225
+ - spec/lib/wash_out/type_spec.rb
226
+ - spec/lib/wash_out_spec.rb
127
227
  - spec/spec_helper.rb
128
228
  - spec/support/httpi-rack.rb
129
- - spec/wash_out/dispatcher_spec.rb
130
- - spec/wash_out/param_spec.rb
131
- - spec/wash_out/type_spec.rb
132
- - spec/wash_out_spec.rb
133
229
  - wash_out.gemspec
134
230
  homepage: http://roundlake.github.com/wash_out/
135
231
  licenses: []
232
+
136
233
  post_install_message:
137
234
  rdoc_options: []
138
- require_paths:
235
+
236
+ require_paths:
139
237
  - lib
140
- required_ruby_version: !ruby/object:Gem::Requirement
238
+ required_ruby_version: !ruby/object:Gem::Requirement
141
239
  none: false
142
- requirements:
143
- - - ! '>='
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- required_rubygems_version: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ hash: 2002549777813010636
244
+ segments:
245
+ - 0
246
+ version: "0"
247
+ required_rubygems_version: !ruby/object:Gem::Requirement
147
248
  none: false
148
- requirements:
149
- - - ! '>='
150
- - !ruby/object:Gem::Version
151
- version: '0'
249
+ requirements:
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ hash: 2002549777813010636
253
+ segments:
254
+ - 0
255
+ version: "0"
152
256
  requirements: []
257
+
153
258
  rubyforge_project:
154
- rubygems_version: 1.8.15
259
+ rubygems_version: 1.8.24
155
260
  signing_key:
156
261
  specification_version: 3
157
262
  summary: Dead simple Rails 3 SOAP server library
158
263
  test_files: []
264
+
@@ -1,26 +0,0 @@
1
- #encoding:utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe WashOut::Param do
6
-
7
- it "loads 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
- map = WashOut::Param.parse_def Abraka2
19
-
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'
24
- end
25
-
26
- end