bandwidth 0.0.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.
- data/.document +5 -0
- data/.rspec +1 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +47 -0
- data/LICENSE.txt +20 -0
- data/README.md +96 -0
- data/Rakefile +38 -0
- data/VERSION +1 -0
- data/examples/example.rb +7 -0
- data/lib/bandwidth.rb +2 -0
- data/lib/bandwidth/bandwidth.rb +127 -0
- data/spec/bandwidth_spec.rb +63 -0
- data/spec/spec_helper.rb +12 -0
- metadata +187 -0
data/.document
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
gem "savon"
|
3
|
+
gem "hashie"
|
4
|
+
|
5
|
+
# Add dependencies to develop your gem here.
|
6
|
+
# Include everything needed to run rake, tests, features, etc.
|
7
|
+
group :development do
|
8
|
+
gem "rspec", "~> 2.3.0"
|
9
|
+
gem "yard", "~> 0.6.0"
|
10
|
+
gem "bundler", "~> 1.0.0"
|
11
|
+
gem "jeweler", "~> 1.5.2"
|
12
|
+
gem "rcov", ">= 0"
|
13
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
builder (3.0.0)
|
5
|
+
crack (0.1.8)
|
6
|
+
diff-lcs (1.1.2)
|
7
|
+
git (1.2.5)
|
8
|
+
gyoku (0.3.1)
|
9
|
+
builder (>= 2.1.2)
|
10
|
+
hashie (1.0.0)
|
11
|
+
httpi (0.9.0)
|
12
|
+
ntlm-http (>= 0.1.1)
|
13
|
+
rack
|
14
|
+
jeweler (1.5.2)
|
15
|
+
bundler (~> 1.0.0)
|
16
|
+
git (>= 1.2.5)
|
17
|
+
rake
|
18
|
+
ntlm-http (0.1.1)
|
19
|
+
rack (1.2.1)
|
20
|
+
rake (0.8.7)
|
21
|
+
rcov (0.9.9)
|
22
|
+
rspec (2.3.0)
|
23
|
+
rspec-core (~> 2.3.0)
|
24
|
+
rspec-expectations (~> 2.3.0)
|
25
|
+
rspec-mocks (~> 2.3.0)
|
26
|
+
rspec-core (2.3.1)
|
27
|
+
rspec-expectations (2.3.0)
|
28
|
+
diff-lcs (~> 1.1.2)
|
29
|
+
rspec-mocks (2.3.0)
|
30
|
+
savon (0.8.6)
|
31
|
+
builder (>= 2.1.2)
|
32
|
+
crack (~> 0.1.8)
|
33
|
+
gyoku (>= 0.3.0)
|
34
|
+
httpi (>= 0.7.8)
|
35
|
+
yard (0.6.4)
|
36
|
+
|
37
|
+
PLATFORMS
|
38
|
+
ruby
|
39
|
+
|
40
|
+
DEPENDENCIES
|
41
|
+
bundler (~> 1.0.0)
|
42
|
+
hashie
|
43
|
+
jeweler (~> 1.5.2)
|
44
|
+
rcov
|
45
|
+
rspec (~> 2.3.0)
|
46
|
+
savon
|
47
|
+
yard (~> 0.6.0)
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 Jason Goecke
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
Bandwidth
|
2
|
+
=========
|
3
|
+
|
4
|
+
Ruby gem for consuming the [Bandwidth REST API](https://my.bandwidth.com/portal/apidoc/welcome.htm).
|
5
|
+
|
6
|
+
Installation
|
7
|
+
------------
|
8
|
+
|
9
|
+
gem install bandwidth
|
10
|
+
|
11
|
+
Example
|
12
|
+
-------
|
13
|
+
|
14
|
+
[API Docs](http://jsgoecke.github.com/bandwdith)
|
15
|
+
|
16
|
+
require 'rubygems'
|
17
|
+
require 'bandwidth'
|
18
|
+
bandwidth = Bandwidth.new(:developer_key => 'your developer key')
|
19
|
+
bandwidth.area_code_number_search :area_code => '720', :max_quantity => 1
|
20
|
+
|
21
|
+
Returns (using awesome_print gem):
|
22
|
+
|
23
|
+
{
|
24
|
+
"body" => {
|
25
|
+
"numberSearchResponse" => {
|
26
|
+
"xmlns:xsd" => "http://www.w3.org/2001/XMLSchema",
|
27
|
+
"quantity" => "1",
|
28
|
+
"requestID" => "463f5cd2-e75d-4cc2-9ab1-1235a3dd283c",
|
29
|
+
"dateTimeSent" => "2011-03-18 19:48:04Z",
|
30
|
+
"warnings" => nil,
|
31
|
+
"errors" => nil,
|
32
|
+
"xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
|
33
|
+
"telephoneNumbers" => {
|
34
|
+
"telephoneNumber" => {
|
35
|
+
"e164" => "+17205551212",
|
36
|
+
"npaNxx" => "720555",
|
37
|
+
"tenDigit" => "7205551212",
|
38
|
+
"formattedNumber" => "1-720-555-1212",
|
39
|
+
"numberID" => "6f37a640-0d9d-45cc-b97b-d6ad77f220b2",
|
40
|
+
"status" => "Available",
|
41
|
+
"rateCenter" => {
|
42
|
+
"name" => "DENVERSLVN",
|
43
|
+
"lata" => "656",
|
44
|
+
"state" => "CO"
|
45
|
+
}
|
46
|
+
}
|
47
|
+
},
|
48
|
+
"message" => "Successfully executed specified number search.",
|
49
|
+
"status" => "success",
|
50
|
+
"xmlns" => "http://www.bandwidth.com/api/"
|
51
|
+
}
|
52
|
+
},
|
53
|
+
"code" => 200,
|
54
|
+
"headers" => {
|
55
|
+
"X-Powered-By" => "Bandwidth.com",
|
56
|
+
"X-API-SupportEmail" => "apifeedback@bandwidth.com",
|
57
|
+
"Content-Type" => "text/xml; charset=utf-8",
|
58
|
+
"Date" => "Fri, 18 Mar 2011 19:48:04 GMT",
|
59
|
+
"Content-Length" => "825",
|
60
|
+
"Server" => "Microsoft-IIS/7.0",
|
61
|
+
"Cache-Control" => "private",
|
62
|
+
"X-AspNet-Version" => "2.0.50727"
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
Available Methods
|
67
|
+
-----------------
|
68
|
+
|
69
|
+
Full details of available methods [here](https://my.bandwidth.com/portal/apidoc/2-x-supported-operations.htm).
|
70
|
+
|
71
|
+
[2.x] Supported Operations, Numbers - getTelephoneNumber
|
72
|
+
[2.x] Supported Operations, Numbers - getNumberOrder
|
73
|
+
[2.x] Supported Operations, Numbers - getNumberOrders (developer, account)
|
74
|
+
[2.x] Supported Operations, Numbers - areaCodeNumberSearch
|
75
|
+
[2.x] Supported Operations, Numbers - npaNxxNumberSearch
|
76
|
+
[2.x] Supported Operations, Numbers - rateCenterNumberSearch
|
77
|
+
[2.x] Supported Operations, Numbers - rateCenterNumberOrder
|
78
|
+
[2.x] Supported Operations, Numbers - tollfreeNumberSearch
|
79
|
+
[2.x] Supported Operations, Numbers - tollfreeNumberOrder
|
80
|
+
[2.x] Supported Operations, Numbers - basicNumberOrder
|
81
|
+
[2.x] Supported Operations, Numbers - changeNumber
|
82
|
+
[2.x] Supported Operations, Numbers - sipTrunkOrder
|
83
|
+
[2.x] Supported Operations, Cdr - getCdrArchive
|
84
|
+
(restricted use)
|
85
|
+
[2.x] Restricted Operations, Numbers - consumedNumbers
|
86
|
+
[2.x] Restricted Operations, Numbers - reserveNumbers
|
87
|
+
[2.x] Restricted Operations, Numbers - pbod
|
88
|
+
[2.x] Restricted Operations, Numbers - rateCenterBlockOrder
|
89
|
+
[2.x] Restricted Operations, Numbers - getRateCenterBlockOrder
|
90
|
+
[2.x] Restricted Operations, Numbers - getRateCenterBlockOrders
|
91
|
+
|
92
|
+
Copyright
|
93
|
+
---------
|
94
|
+
|
95
|
+
Copyright (c) 2011 Jason Goecke. See LICENSE.txt for
|
96
|
+
further details.
|
data/Rakefile
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'rake'
|
11
|
+
|
12
|
+
require 'jeweler'
|
13
|
+
Jeweler::Tasks.new do |gem|
|
14
|
+
gem.name = "bandwidth"
|
15
|
+
gem.homepage = "http://github.com/jsgoecke/bandwidth"
|
16
|
+
gem.license = "MIT"
|
17
|
+
gem.summary = 'Ruby gem for consuming the Bandwidth REST API.'
|
18
|
+
gem.description = 'More detail here: https://my.bandwidth.com/portal/apidoc/welcome.htm'
|
19
|
+
gem.email = "jason@goecke.net"
|
20
|
+
gem.authors = ["Jason Goecke"]
|
21
|
+
end
|
22
|
+
Jeweler::RubygemsDotOrgTasks.new
|
23
|
+
|
24
|
+
require 'rspec/core'
|
25
|
+
require 'rspec/core/rake_task'
|
26
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
27
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
28
|
+
end
|
29
|
+
|
30
|
+
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
31
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
32
|
+
spec.rcov = true
|
33
|
+
end
|
34
|
+
|
35
|
+
task :default => :spec
|
36
|
+
|
37
|
+
require 'yard'
|
38
|
+
YARD::Rake::YardocTask.new
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.1
|
data/examples/example.rb
ADDED
data/lib/bandwidth.rb
ADDED
@@ -0,0 +1,127 @@
|
|
1
|
+
class Bandwidth
|
2
|
+
# Available REST API methods
|
3
|
+
API_METHODS = [ :get_telephone_number,
|
4
|
+
:get_number_order,
|
5
|
+
:get_number_orders,
|
6
|
+
:area_code_number_search,
|
7
|
+
:npa_nxx_number_search,
|
8
|
+
:rate_center_number_search,
|
9
|
+
:rate_center_number_order,
|
10
|
+
:tollfree_number_search,
|
11
|
+
:basic_number_order,
|
12
|
+
:change_number,
|
13
|
+
:sip_trunk_order,
|
14
|
+
:consumed_numbers,
|
15
|
+
:reserve_numbers,
|
16
|
+
:pbod,
|
17
|
+
:rate_center_block_order,
|
18
|
+
:get_rate_center_block_order,
|
19
|
+
:get_rate_center_block_orders,
|
20
|
+
:get_cdr_archive ]
|
21
|
+
|
22
|
+
##
|
23
|
+
# Instantiate a Bandwdith object
|
24
|
+
#
|
25
|
+
# @param [required, Hash] params
|
26
|
+
# @option params [required, String] :developer_key assigned to you by Bandwidth
|
27
|
+
# @option params [optional, Boolean] :processing_type whether to 'process' the request or only 'validate', default is 'process'
|
28
|
+
# @option params [optional, Symbol] :log_level which level to set the logging at, off by default
|
29
|
+
# @option params [optional, Boolean] :use_lab_uris if true, will use the Bandwidth Lab URIs rather than production
|
30
|
+
# @return [Object] the instantiated Bandwdith object
|
31
|
+
# @raise ArgumentError when the :developer_key is not present
|
32
|
+
# @example Instantiate a Bandwdith object
|
33
|
+
# require 'rubygems'
|
34
|
+
# require 'bandwidth'
|
35
|
+
# bandwdith = Bandwidth.new(:developer_key => 'test')
|
36
|
+
def initialize(params)
|
37
|
+
raise ArgumentError, ":developer_key required" if params[:developer_key].nil?
|
38
|
+
|
39
|
+
if params[:log_level]
|
40
|
+
HTTPI.log_level = params[:log_level]
|
41
|
+
else
|
42
|
+
HTTPI.log = false
|
43
|
+
end
|
44
|
+
|
45
|
+
@use_labs_uris = params[:use_lab_uris] || false
|
46
|
+
@developer_key = params[:developer_key]
|
47
|
+
@numbers_request = create_request(:numbers, params)
|
48
|
+
@cdrs_request = create_request(:cdrs, params)
|
49
|
+
end
|
50
|
+
|
51
|
+
##
|
52
|
+
# Provides the dispatcher to the available REST methods on the Bandwidth API
|
53
|
+
#
|
54
|
+
# @param [required, Symbol] the method name to invoke on the REST API
|
55
|
+
# @param [optional, Hash] the parameters to pass to the method, should be symbols and may be all lowercase with underscores or camelCase
|
56
|
+
# @return [Hashie::Mash Object] containing the results of the REST call
|
57
|
+
# @raise NoMethodError if the method requested is not defined in the API_METHODS constant
|
58
|
+
# @example Retrieve numbers available in an area code
|
59
|
+
# bandwidth.area_code_number_search :area_code => '720', :max_quantity => 10
|
60
|
+
def method_missing(method_name, params={})
|
61
|
+
raise NoMethodError, "The method #{method_name.to_s} does not exist." if API_METHODS.include?(method_name) == false
|
62
|
+
|
63
|
+
if method_name == :get_cdr_archive
|
64
|
+
@cdrs_request.body = Gyoku.xml({ method_name => params.merge({ :developer_key => @developer_key }),
|
65
|
+
:attributes! => xml_namespaces(method_name) })
|
66
|
+
|
67
|
+
response = HTTPI.post @cdrs_request
|
68
|
+
else
|
69
|
+
@numbers_request.body = Gyoku.xml({ method_name => params.merge({ :developer_key => @developer_key }),
|
70
|
+
:attributes! => xml_namespaces(method_name) })
|
71
|
+
|
72
|
+
response = HTTPI.post @numbers_request
|
73
|
+
end
|
74
|
+
|
75
|
+
Hashie::Mash.new({ :code => response.code,
|
76
|
+
:body => Crack::XML.parse(response.raw_body),
|
77
|
+
:headers => response.headers })
|
78
|
+
end
|
79
|
+
|
80
|
+
private
|
81
|
+
|
82
|
+
##
|
83
|
+
# Creates the request
|
84
|
+
#
|
85
|
+
# @param [required, Symbol] type indicates if it is to create a :numbers request or a :cdrs request
|
86
|
+
# @param [required, Hash] params to build the request with
|
87
|
+
# @return [Object] the resulting request object
|
88
|
+
def create_request(type, params)
|
89
|
+
request = HTTPI::Request.new
|
90
|
+
|
91
|
+
# Right now Bandwidth's Lab does not support SSL, but their production does
|
92
|
+
if @use_labs_uris != true
|
93
|
+
request.ssl = true
|
94
|
+
request.auth.ssl.verify_mode = :none
|
95
|
+
end
|
96
|
+
|
97
|
+
request.headers = { 'Content-Type' => 'text/xml',
|
98
|
+
'X-BWC-IN-Control-Processing-Type' => params[:processing_type] || 'process' }
|
99
|
+
|
100
|
+
if type == :numbers
|
101
|
+
if @use_labs_uris == true
|
102
|
+
request.url = 'http://labs.bandwidth.com/api/public/v2/numbers.api'
|
103
|
+
else
|
104
|
+
request.url = 'https://api.bandwidth.com/public/v2/numbers.api'
|
105
|
+
end
|
106
|
+
elsif type == :cdrs
|
107
|
+
if @use_labs_uris == true
|
108
|
+
request.url = 'http://labs.bandwidth.com/api/public/v2/cdrs.api'
|
109
|
+
else
|
110
|
+
request.url = 'https://api.bandwidth.com/public/v2/cdrs.api'
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
request
|
115
|
+
end
|
116
|
+
|
117
|
+
##
|
118
|
+
# Provides the required XML namespace details for the Bandwidth API
|
119
|
+
#
|
120
|
+
# @param [required, Symbol] method_name to add the XML namespace details to
|
121
|
+
# @return [Hash] the resulting XML namespace attributes
|
122
|
+
def xml_namespaces(method_name)
|
123
|
+
{ method_name => { 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
|
124
|
+
'xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema',
|
125
|
+
'xmlns' => 'http://www.bandwidth.com/api/' } }
|
126
|
+
end
|
127
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe "Bandwidth" do
|
4
|
+
before(:each) do
|
5
|
+
# You will need to set the developer_key to a valid one from Bandwidth in order to run a test
|
6
|
+
@bandwidth = Bandwidth.new({ :developer_key => 'your developer key',
|
7
|
+
:use_lab_uris => true,
|
8
|
+
:log_level => :debug })
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "numbers" do
|
12
|
+
it "should instantiate a Bandwidth::Numbers class" do
|
13
|
+
@bandwidth.instance_of?(Bandwidth).should == true
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should raise a no method error if an unknown method is called" do
|
17
|
+
begin
|
18
|
+
@bandwidth.foobar
|
19
|
+
rescue => error
|
20
|
+
error.class.should == NoMethodError
|
21
|
+
error.to_s.should == "The method foobar does not exist."
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should get a response when searching for area codes" do
|
26
|
+
result = @bandwidth.area_code_number_search :area_code => '720', :max_quantity => 10
|
27
|
+
result[:body]['numberSearchResponse'].nil?.should == false
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should get a response when searching for area codes when params passed as camelCase too" do
|
31
|
+
result = @bandwidth.area_code_number_search :areaCode => '720', :maxQuantity => 10
|
32
|
+
result[:body]['numberSearchResponse'].nil?.should == false
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should return the result body as a Hashie::Mash class" do
|
36
|
+
result = @bandwidth.area_code_number_search :area_code => '720', :max_quantity => 10
|
37
|
+
result[:body].instance_of?(Hashie::Mash).should == true
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should get a response when searching by area code and prefix (aka - NPA and NXX)" do
|
41
|
+
result = @bandwidth.npa_nxx_number_search(:npa_nxx => '720263')
|
42
|
+
result[:body][:numberSearchResponse].nil? == false
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should get a response when searching for a toll free number" do
|
46
|
+
result = @bandwidth.tollfree_number_search :max_quantity => 10
|
47
|
+
result.body.numberSearchResponse.nil?.should == false
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should get a response when retrieving for a number order" do
|
51
|
+
result = @bandwidth.get_number_order(:get_type => 'orderID', :get_value => 'C2594E54-015A-4D4E-81A8-F05B76610877')
|
52
|
+
result.body.getResponse.nil?.should == false
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "cdrs" do
|
57
|
+
it "should get a resopnse when retrieving cdrs" do
|
58
|
+
pending('It appears Bandwidth has not provided access to this just yet.')
|
59
|
+
result = @bandwidth.get_cdr_archive(:get_type => 'Daily', :get_value => '20110221')
|
60
|
+
result.should == nil
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
+
require 'rspec'
|
4
|
+
require 'bandwidth'
|
5
|
+
|
6
|
+
# Requires supporting files with custom matchers and macros, etc,
|
7
|
+
# in ./support/ and its subdirectories.
|
8
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
9
|
+
|
10
|
+
RSpec.configure do |config|
|
11
|
+
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,187 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bandwidth
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Jason Goecke
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-03-18 00:00:00 -07:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
type: :runtime
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
name: savon
|
33
|
+
version_requirements: *id001
|
34
|
+
prerelease: false
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
type: :runtime
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
name: hashie
|
47
|
+
version_requirements: *id002
|
48
|
+
prerelease: false
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
type: :development
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 2
|
59
|
+
- 3
|
60
|
+
- 0
|
61
|
+
version: 2.3.0
|
62
|
+
name: rspec
|
63
|
+
version_requirements: *id003
|
64
|
+
prerelease: false
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
type: :development
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ~>
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 7
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
- 6
|
76
|
+
- 0
|
77
|
+
version: 0.6.0
|
78
|
+
name: yard
|
79
|
+
version_requirements: *id004
|
80
|
+
prerelease: false
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
type: :development
|
83
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ~>
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
hash: 23
|
89
|
+
segments:
|
90
|
+
- 1
|
91
|
+
- 0
|
92
|
+
- 0
|
93
|
+
version: 1.0.0
|
94
|
+
name: bundler
|
95
|
+
version_requirements: *id005
|
96
|
+
prerelease: false
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
type: :development
|
99
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
100
|
+
none: false
|
101
|
+
requirements:
|
102
|
+
- - ~>
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
hash: 7
|
105
|
+
segments:
|
106
|
+
- 1
|
107
|
+
- 5
|
108
|
+
- 2
|
109
|
+
version: 1.5.2
|
110
|
+
name: jeweler
|
111
|
+
version_requirements: *id006
|
112
|
+
prerelease: false
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
type: :development
|
115
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
hash: 3
|
121
|
+
segments:
|
122
|
+
- 0
|
123
|
+
version: "0"
|
124
|
+
name: rcov
|
125
|
+
version_requirements: *id007
|
126
|
+
prerelease: false
|
127
|
+
description: "More detail here: https://my.bandwidth.com/portal/apidoc/welcome.htm"
|
128
|
+
email: jason@goecke.net
|
129
|
+
executables: []
|
130
|
+
|
131
|
+
extensions: []
|
132
|
+
|
133
|
+
extra_rdoc_files:
|
134
|
+
- LICENSE.txt
|
135
|
+
- README.md
|
136
|
+
files:
|
137
|
+
- .document
|
138
|
+
- .rspec
|
139
|
+
- Gemfile
|
140
|
+
- Gemfile.lock
|
141
|
+
- LICENSE.txt
|
142
|
+
- README.md
|
143
|
+
- Rakefile
|
144
|
+
- VERSION
|
145
|
+
- examples/example.rb
|
146
|
+
- lib/bandwidth.rb
|
147
|
+
- lib/bandwidth/bandwidth.rb
|
148
|
+
- spec/bandwidth_spec.rb
|
149
|
+
- spec/spec_helper.rb
|
150
|
+
has_rdoc: true
|
151
|
+
homepage: http://github.com/jsgoecke/bandwidth
|
152
|
+
licenses:
|
153
|
+
- MIT
|
154
|
+
post_install_message:
|
155
|
+
rdoc_options: []
|
156
|
+
|
157
|
+
require_paths:
|
158
|
+
- lib
|
159
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
160
|
+
none: false
|
161
|
+
requirements:
|
162
|
+
- - ">="
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
hash: 3
|
165
|
+
segments:
|
166
|
+
- 0
|
167
|
+
version: "0"
|
168
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
hash: 3
|
174
|
+
segments:
|
175
|
+
- 0
|
176
|
+
version: "0"
|
177
|
+
requirements: []
|
178
|
+
|
179
|
+
rubyforge_project:
|
180
|
+
rubygems_version: 1.5.0
|
181
|
+
signing_key:
|
182
|
+
specification_version: 3
|
183
|
+
summary: Ruby gem for consuming the Bandwidth REST API.
|
184
|
+
test_files:
|
185
|
+
- examples/example.rb
|
186
|
+
- spec/bandwidth_spec.rb
|
187
|
+
- spec/spec_helper.rb
|