routengn 0.2.10 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/routengn.rb +21 -8
  2. data/routengn.gemspec +5 -2
  3. metadata +12 -2
data/lib/routengn.rb CHANGED
@@ -67,15 +67,10 @@ module RouteNGN
67
67
  uri, params = args
68
68
  params ||= {}
69
69
  #TODO remove the trailing '&' from url
70
- url = params.inject("#{uri}?") do |_, (k, v)|
71
- if v.is_a? Hash # Handle nesting of depth 1
72
- _ << v.collect { |nested_k, nested_v| "#{k}[#{nested_k}]=#{nested_v}&" }.join
73
- else
74
- _ << "#{k}=#{v}&"
75
- end
76
- end
70
+ url_pieces = ["#{uri}?"]
71
+ params.each {|k,v| url_pieces += nested_hash_url_builder(k, v, 0)}
77
72
  check_connection!
78
- raw = @connection.access_token.send http_method, url
73
+ raw = @connection.access_token.send http_method, url_pieces.join
79
74
  Response.new raw
80
75
  end
81
76
  end
@@ -110,6 +105,24 @@ module RouteNGN
110
105
  raise ConnectionException.new unless @connection
111
106
  raise OAuthException.new unless @connection.access_token
112
107
  end
108
+
109
+ def nested_hash_url_builder(k, v, depth = 0)
110
+ if depth == 0 and !v.is_a? Hash
111
+ ["#{k}=#{v}&"]
112
+ elsif depth != 0 and !v.is_a? Hash
113
+ ["=#{v}&"]
114
+ elsif depth == 0
115
+ v.collect do |nk, nv|
116
+ "#{k}[#{nk}]#{nested_hash_url_builder(nk,nv,depth+1)}"
117
+ end
118
+ else
119
+ v.collect do |nk, nv|
120
+ "[#{nk}]#{nested_hash_url_builder(nk,nv,depth+1)}"
121
+ end
122
+ end
123
+ end
124
+
125
+
113
126
  end
114
127
 
115
128
  # TODO: validation errors are now stored in failure message's data... we should figure out what to do with it
data/routengn.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{routengn}
8
- s.version = "0.2.10"
8
+ s.version = "0.3.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Keith Larrimore", "Quin Hoxie"]
12
- s.date = %q{2009-11-17}
12
+ s.date = %q{2010-02-02}
13
13
  s.default_executable = %q{ngncmd}
14
14
  s.description = %q{RouteNGN is an Advanced SIP Redirect Routing Platform.}
15
15
  s.email = %q{keithlarrimore+github@gmail.com}
@@ -59,16 +59,19 @@ Gem::Specification.new do |s|
59
59
  s.add_runtime_dependency(%q<mime-types>, [">= 0"])
60
60
  s.add_runtime_dependency(%q<json>, [">= 0"])
61
61
  s.add_runtime_dependency(%q<oauth>, [">= 0"])
62
+ s.add_runtime_dependency(%q<thor>, [">= 0"])
62
63
  else
63
64
  s.add_dependency(%q<activesupport>, [">= 0"])
64
65
  s.add_dependency(%q<mime-types>, [">= 0"])
65
66
  s.add_dependency(%q<json>, [">= 0"])
66
67
  s.add_dependency(%q<oauth>, [">= 0"])
68
+ s.add_dependency(%q<thor>, [">= 0"])
67
69
  end
68
70
  else
69
71
  s.add_dependency(%q<activesupport>, [">= 0"])
70
72
  s.add_dependency(%q<mime-types>, [">= 0"])
71
73
  s.add_dependency(%q<json>, [">= 0"])
72
74
  s.add_dependency(%q<oauth>, [">= 0"])
75
+ s.add_dependency(%q<thor>, [">= 0"])
73
76
  end
74
77
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: routengn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.10
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keith Larrimore
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-11-17 00:00:00 -05:00
13
+ date: 2010-02-02 00:00:00 -05:00
14
14
  default_executable: ngncmd
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -53,6 +53,16 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: "0"
55
55
  version:
56
+ - !ruby/object:Gem::Dependency
57
+ name: thor
58
+ type: :runtime
59
+ version_requirement:
60
+ version_requirements: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: "0"
65
+ version:
56
66
  description: RouteNGN is an Advanced SIP Redirect Routing Platform.
57
67
  email: keithlarrimore+github@gmail.com
58
68
  executables: