routengn 0.2.10 → 0.3.1

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.
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: