playerconnect-wsdsl 0.2.8 → 0.2.9

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/README.md CHANGED
@@ -92,9 +92,3 @@ Or a more complex example:
92
92
  This library comes with a test suite requiring Ruby 1.9.2.
93
93
  The following gems need to be available:
94
94
  Rspec, Rack, Sinatra
95
-
96
-
97
- ## Copyright
98
-
99
- Copyright (c) 2011 Matt Aimonetti. See LICENSE for
100
- further details.
data/Rakefile CHANGED
@@ -11,7 +11,7 @@ Jeweler::Tasks.new do |gem|
11
11
  gem.description = %Q{A Ruby DSL describing Web Services without implementation details.}
12
12
  gem.email = "sdod"
13
13
  gem.authors = ["Team SDOD"]
14
- gem.version = "0.2.8"
14
+ gem.version = "0.2.9"
15
15
  # Include your dependencies below. Runtime dependencies are required when using your gem,
16
16
  # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
17
17
  # gem.add_runtime_dependency 'jabber4r', '> 0.1'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.8
1
+ 0.2.9
@@ -49,9 +49,11 @@ module ParamsVerification
49
49
  unless ignore_unexpected
50
50
  unexpected_params?(params, service_params.param_names)
51
51
  end
52
+
53
+ # Create a duplicate of the params hash that uses symbols as keys,
54
+ # while preserving the original hash
55
+ updated_params = symbolify_keys(params)
52
56
 
53
- # dupe the params so we don't modify the passed value
54
- updated_params = params.dup
55
57
  # Required param verification
56
58
  service_params.list_required.each do |rule|
57
59
  updated_params = validate_required_rule(rule, updated_params)
@@ -84,13 +86,34 @@ module ParamsVerification
84
86
  unexpected_params?(params[key], namespaced.param_names)
85
87
  end
86
88
  end
87
-
89
+
88
90
  updated_params
89
91
  end
90
-
91
-
92
+
93
+
92
94
  private
93
-
95
+
96
+ # Create a copy of hash that enforces the usage of symbols as keys
97
+ #
98
+ #
99
+ # @params [Hash] The hash to copy
100
+ #
101
+ # @return [Hash] A copy of the given hash, but with all keys forced to be symbols
102
+ #
103
+ # @api private
104
+ def self.symbolify_keys(a_hash={})
105
+ new_hash = {}
106
+ a_hash.each do |k,v|
107
+ if v.class.to_s =~ /^Hash/
108
+ new_hash[k.to_sym] = symbolify_keys(v)
109
+ else
110
+ new_hash[k.to_sym] = v
111
+ end
112
+ end
113
+ new_hash
114
+ end
115
+
116
+
94
117
  # Validate a required rule against a list of params passed.
95
118
  #
96
119
  #
@@ -103,7 +126,8 @@ module ParamsVerification
103
126
  #
104
127
  # @api private
105
128
  def self.validate_required_rule(rule, params, namespace=nil)
106
- param_name = rule.name.to_s
129
+ param_name = rule.name.to_sym
130
+ namespace = namespace.to_sym if namespace
107
131
 
108
132
  param_value, namespaced_params = extract_param_values(params, param_name, namespace)
109
133
  # puts "verify #{param_name} params, current value: #{param_value}"
@@ -175,7 +199,8 @@ module ParamsVerification
175
199
  #
176
200
  # @api private
177
201
  def self.run_optional_rule(rule, params, namespace=nil)
178
- param_name = rule.name.to_s
202
+ param_name = rule.name.to_sym
203
+ namespace = namespace.to_sym if namespace
179
204
 
180
205
  param_value, namespaced_params = extract_param_values(params, param_name, namespace)
181
206
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{playerconnect-wsdsl}
8
- s.version = "0.2.8"
8
+ s.version = "0.2.9"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = [%q{Team SDOD}]
12
- s.date = %q{2011-07-22}
12
+ s.date = %q{2011-08-04}
13
13
  s.description = %q{A Ruby DSL describing Web Services without implementation details.}
14
14
  s.email = %q{sdod}
15
15
  s.extra_rdoc_files = [
@@ -22,16 +22,16 @@ describe ParamsVerification do
22
22
 
23
23
  it "should set the default value for an optional param" do
24
24
  params = @valid_params.dup
25
- params['timestamp'].should be_nil
25
+ params[:timestamp].should be_nil
26
26
  returned_params = ParamsVerification.validate!(params, @service.defined_params)
27
- returned_params['timestamp'].should_not be_nil
27
+ returned_params[:timestamp].should_not be_nil
28
28
  end
29
29
 
30
30
  it "should set the default value for a namespace optional param" do
31
31
  params = {'framework' => 'RSpec', 'version' => '1.02', 'user' => {'id' => '123'}}
32
- params['user']['mailing_list'].should be_nil
32
+ params[:user].should be_nil
33
33
  returned_params = ParamsVerification.validate!(params, @service.defined_params)
34
- returned_params['user']['mailing_list'].should be_true
34
+ returned_params[:user][:mailing_list].should be_true
35
35
  end
36
36
 
37
37
  it "should raise an exception when a required param is missing" do
@@ -45,7 +45,7 @@ describe ParamsVerification do
45
45
  service.should_not be_nil
46
46
  params = {'seq' => "a,b,c,d,e,g"}
47
47
  validated = ParamsVerification.validate!(params, service.defined_params)
48
- validated['seq'].should == %W{a b c d e g}
48
+ validated[:seq].should == %W{a b c d e g}
49
49
  end
50
50
 
51
51
  it "should not raise an exception if a req array param doesn't contain a comma" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playerconnect-wsdsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.2.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-07-22 00:00:00.000000000Z
12
+ date: 2011-08-04 00:00:00.000000000Z
13
13
  dependencies: []
14
14
  description: A Ruby DSL describing Web Services without implementation details.
15
15
  email: sdod