bvr 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/.gitignore +17 -0
- data/Gemfile +12 -0
- data/Guardfile +14 -0
- data/LICENSE.txt +22 -0
- data/README.md +39 -0
- data/Rakefile +1 -0
- data/bvr.gemspec +26 -0
- data/lib/bvr.rb +16 -0
- data/lib/bvr/call.rb +18 -0
- data/lib/bvr/call_overview.rb +46 -0
- data/lib/bvr/configuration.rb +3 -0
- data/lib/bvr/connection.rb +36 -0
- data/lib/bvr/phone.rb +13 -0
- data/lib/bvr/version.rb +3 -0
- data/spec/fixtures/CallOverview.xml +12 -0
- data/spec/lib/bvr/call_overview_spec.rb +94 -0
- data/spec/lib/bvr/configuration_spec.rb +15 -0
- data/spec/lib/bvr/connection_spec.rb +95 -0
- data/spec/lib/bvr_spec.rb +22 -0
- data/spec/spec_helper.rb +20 -0
- metadata +153 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
guard :minitest do
|
5
|
+
## with Minitest::Unit
|
6
|
+
#watch(%r{^test/(.*)\/?test_(.*)\.rb})
|
7
|
+
#watch(%r{^lib/(.*/)?([^/]+)\.rb}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
|
8
|
+
#watch(%r{^test/test_helper\.rb}) { 'test' }
|
9
|
+
|
10
|
+
# with Minitest::Spec
|
11
|
+
watch(%r{^spec/(.*)_spec\.rb})
|
12
|
+
watch(%r{^lib/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
|
13
|
+
watch(%r{^spec/spec_helper\.rb}) { 'spec' }
|
14
|
+
end
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 gregory
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# Bvr
|
2
|
+
|
3
|
+
The BestVoipReselling Ruby Gem
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'bvr'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install bvr
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
|
21
|
+
### Configuration
|
22
|
+
`
|
23
|
+
Bvr.configure do |config|
|
24
|
+
config.username, config.password = ['username', 'password']
|
25
|
+
end
|
26
|
+
`
|
27
|
+
### Retreiving Call Overview
|
28
|
+
`
|
29
|
+
Bvr::CallOverview.find('a customer id')
|
30
|
+
`
|
31
|
+
|
32
|
+
|
33
|
+
## Contributing
|
34
|
+
|
35
|
+
1. Fork it
|
36
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
37
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
38
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
39
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/bvr.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'bvr/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "bvr"
|
8
|
+
spec.version = Bvr::VERSION
|
9
|
+
spec.authors = ["gregory"]
|
10
|
+
spec.email = ["greg2502@gmail.com"]
|
11
|
+
spec.description = %q{A ruby interface to Bestvoipreselling API}
|
12
|
+
spec.summary = spec.description
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
spec.add_development_dependency 'rack'
|
24
|
+
spec.add_development_dependency "faraday"
|
25
|
+
spec.add_development_dependency "happymapper"
|
26
|
+
end
|
data/lib/bvr.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'happymapper'
|
2
|
+
Dir[File.dirname(__FILE__) + '/bvr/*.rb'].each{ |file| require file }
|
3
|
+
|
4
|
+
module Bvr
|
5
|
+
extend self
|
6
|
+
|
7
|
+
attr_accessor :config, :connection
|
8
|
+
|
9
|
+
def configure
|
10
|
+
@config = Bvr::Configuration.new.tap{ |configuration| yield(configuration) }
|
11
|
+
end
|
12
|
+
|
13
|
+
def connection
|
14
|
+
@connection ||= Bvr::Connection.new
|
15
|
+
end
|
16
|
+
end
|
data/lib/bvr/call.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'phone'
|
2
|
+
module Bvr
|
3
|
+
class Call
|
4
|
+
include HappyMapper
|
5
|
+
|
6
|
+
tag 'Call'
|
7
|
+
attribute :id, String, tag: 'CallId'
|
8
|
+
attribute :calltype, String, tag: 'CallType'
|
9
|
+
attribute :start_time, Time, tag: 'StartTime'
|
10
|
+
attribute :dest, Phone, tag: 'Destination', parser: :phone_number_parser
|
11
|
+
attribute :duration, String, tag: 'Duration'
|
12
|
+
attribute :charge, String, tag: 'Charge' #? currency
|
13
|
+
|
14
|
+
def relative_duration
|
15
|
+
Time.parse(self.duration, start_time)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require_relative 'call'
|
2
|
+
module Bvr
|
3
|
+
class CallOverview
|
4
|
+
API_COMMAND = 'CallOverview'
|
5
|
+
# Valid Options:
|
6
|
+
# Variable Value Option Description
|
7
|
+
# command calloverview Mandatory
|
8
|
+
# username X..140 Mandatory the username of the reseller
|
9
|
+
# password X..100 Mandatory the password of the reseller
|
10
|
+
# customer X..140 Mandatory the username of the customer
|
11
|
+
# date YYYY-MM-DD hh:nn:ss Optional the datetime from which to start retrieving the history, current datetime is default
|
12
|
+
# callid N..1000000 Optional the callid from which to start retrieving the history, 0 is default
|
13
|
+
# recordcount 1 - 500 Optional the maximum number of records returned, 10 is default, 500 is maximum
|
14
|
+
# direction forward / backward Optional the direction to search, backward is default
|
15
|
+
VALID_OPTIONS = [:date, :callid, :recordcount, :direction]
|
16
|
+
|
17
|
+
include ::HappyMapper
|
18
|
+
|
19
|
+
tag 'Calls'
|
20
|
+
has_many :calls, Bvr::Call
|
21
|
+
attribute :count, Integer, tag: 'Count'
|
22
|
+
|
23
|
+
|
24
|
+
def self.find(customer_id, options={})
|
25
|
+
raise ArgumentError.new('Unknown Argument') unless self.valid_options?(options)
|
26
|
+
|
27
|
+
params = {
|
28
|
+
command: API_COMMAND,
|
29
|
+
customer: customer_id
|
30
|
+
}
|
31
|
+
|
32
|
+
options.merge! params
|
33
|
+
self.parse(self.result(options)).first #only one <Calls> tag
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def self.result(options)
|
39
|
+
Bvr.connection.get(options)
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.valid_options?(options)
|
43
|
+
options.empty? ? true : options.keys.all? { |option| VALID_OPTIONS.include? option}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'rack'
|
3
|
+
|
4
|
+
module Bvr
|
5
|
+
class Connection
|
6
|
+
BASE_URI = 'https://www.voipinfocenter.com'
|
7
|
+
API_PATH = '/API/Request.ashx?'
|
8
|
+
|
9
|
+
attr_accessor :faraday_connection
|
10
|
+
|
11
|
+
def initialize(faraday_adapter=Faraday.default_adapter)
|
12
|
+
@faraday_connection = Faraday.new(url: self.base_uri) do |faraday|
|
13
|
+
faraday.response :logger
|
14
|
+
faraday.adapter faraday_adapter
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def base_uri
|
19
|
+
BASE_URI
|
20
|
+
end
|
21
|
+
|
22
|
+
def get(params)
|
23
|
+
#TODO: prase body for 500
|
24
|
+
self.faraday_connection.get(uri(params)).body
|
25
|
+
end
|
26
|
+
|
27
|
+
def uri(queryH)
|
28
|
+
params = {
|
29
|
+
username: Bvr.config.username,
|
30
|
+
password: Bvr.config.password
|
31
|
+
}
|
32
|
+
queryH.merge! params
|
33
|
+
"#{API_PATH}#{::Rack::Utils.build_query queryH}"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/bvr/phone.rb
ADDED
data/lib/bvr/version.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<!DOCTYPE CallOverview>
|
3
|
+
<CallOverview>
|
4
|
+
<Calls Count="10">
|
5
|
+
<Call CallType="PSTNOutSip" Customer="this account" StartTime="2013-12-24 18:05:26 (UTC)" Destination="+32123456788" Duration="00:02:21" Charge="0.0705" CallId="1234567890" />
|
6
|
+
<Call CallType="PSTNOutSip" Customer="this account" StartTime="2013-12-24 18:05:14 (UTC)" Destination="+49123456789" Duration="00:02:41" Charge="0.10734" CallId="1234567891" />
|
7
|
+
<Call CallType="PSTNOutSip" Customer="this account" StartTime="2013-12-01 23:02:38 (UTC)" Destination="+49123456790" Duration="00:00:20" Charge="0.01334" CallId="1234567892" />
|
8
|
+
<Call CallType="PSTNOutSip" Customer="this account" StartTime="2013-12-01 22:59:01 (UTC)" Destination="+49123456791" Duration="00:00:15" Charge="0.01" CallId="1234567893" />
|
9
|
+
<Call CallType="PSTNOutSip" Customer="this account" StartTime="2013-10-29 11:30:18 (UTC)" Destination="+49123456792" Duration="00:00:15" Charge="0.01" CallId="1234567894" />
|
10
|
+
</Calls>
|
11
|
+
<MoreData>False</MoreData>
|
12
|
+
</CallOverview>
|
@@ -0,0 +1,94 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
|
3
|
+
describe Bvr::CallOverview do
|
4
|
+
describe '.find(customer_id, options)' do
|
5
|
+
let(:customer_id) { 'john' }
|
6
|
+
let(:connection) { Minitest::Mock.new }
|
7
|
+
let(:body) { 'response' }
|
8
|
+
|
9
|
+
def stub_connection
|
10
|
+
Bvr.stub(:connection, connection) { yield }
|
11
|
+
end
|
12
|
+
|
13
|
+
def stub_result(res)
|
14
|
+
Bvr::CallOverview.stub(:result, res) { yield }
|
15
|
+
end
|
16
|
+
|
17
|
+
def stub_parse(result)
|
18
|
+
Bvr::CallOverview.stub(:parse, result) { yield }
|
19
|
+
end
|
20
|
+
|
21
|
+
describe 'when options are omitted' do
|
22
|
+
subject{ Bvr::CallOverview.find(customer_id) }
|
23
|
+
|
24
|
+
it 'sets the right command and the customer_id' do
|
25
|
+
stub_connection do
|
26
|
+
stub_parse([]) do
|
27
|
+
connection.expect :get, [], [{command: Bvr::CallOverview::API_COMMAND, customer: customer_id}]
|
28
|
+
subject
|
29
|
+
connection.verify
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe 'when options are provided, it merges the options with the command and customer_id' do
|
36
|
+
let(:options) { { recordcount: 'bar', callid: 'foo' } }
|
37
|
+
|
38
|
+
subject{ Bvr::CallOverview.find(customer_id, options) }
|
39
|
+
|
40
|
+
it 'merges the CallOverview command and the customer_id with options' do
|
41
|
+
stub_connection do
|
42
|
+
stub_parse([]) do
|
43
|
+
expected_options = options.merge({command: Bvr::CallOverview::API_COMMAND, customer: customer_id})
|
44
|
+
connection.expect :get, [], [expected_options]
|
45
|
+
subject
|
46
|
+
connection.verify
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe 'when wrong options are provided, raise an argument error' do
|
53
|
+
let(:options) { { foo: 'bar', john: 'Doe' } }
|
54
|
+
|
55
|
+
subject{ Bvr::CallOverview.find(customer_id, options) }
|
56
|
+
|
57
|
+
it 'merges the CallOverview command and the customer_id with options' do
|
58
|
+
expected_options = options.merge({command: Bvr::CallOverview::API_COMMAND, customer: customer_id})
|
59
|
+
proc {subject}.must_raise ArgumentError
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
describe 'when there is a response' do
|
65
|
+
let(:response) do
|
66
|
+
File.read(File.join(File.dirname(__FILE__), '/..', '/..', '/fixtures/CallOverview.xml'))
|
67
|
+
end
|
68
|
+
|
69
|
+
subject{ Bvr::CallOverview.find(customer_id) }
|
70
|
+
|
71
|
+
it 'parse the response to objects' do
|
72
|
+
stub_result(response) do |connection|
|
73
|
+
subject.must_be_instance_of Bvr::CallOverview
|
74
|
+
subject.calls.size.must_equal 5
|
75
|
+
subject.count.must_equal 10
|
76
|
+
|
77
|
+
subject.calls[0].tap do |call|
|
78
|
+
start_time = Time.parse("2013-12-24 18:05:26 (UTC)")
|
79
|
+
call.id.must_equal "1234567890"
|
80
|
+
call.calltype.must_equal "PSTNOutSip"
|
81
|
+
call.start_time.must_equal start_time
|
82
|
+
call.dest.must_be_instance_of Bvr::Phone
|
83
|
+
call.dest.number.must_equal "+32123456788"
|
84
|
+
call.duration.must_equal "00:02:21"
|
85
|
+
call.relative_duration.must_equal Time.parse("00:02:21", start_time)
|
86
|
+
call.charge.must_equal "0.0705"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
|
3
|
+
describe Bvr::Configuration do
|
4
|
+
describe '.new' do
|
5
|
+
subject{ Bvr::Configuration.new(username, password) }
|
6
|
+
|
7
|
+
let(:username) { 'foo' }
|
8
|
+
let(:password) { 'bar' }
|
9
|
+
|
10
|
+
it 'has username and password accessor' do
|
11
|
+
subject.username.must_equal username
|
12
|
+
subject.password.must_equal password
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
|
3
|
+
describe Bvr::Connection do
|
4
|
+
describe '.new(faraday_adapter)' do
|
5
|
+
let(:default_faraday_adapter) { Faraday::Adapter::NetHttp }
|
6
|
+
subject{ Bvr::Connection.new }
|
7
|
+
|
8
|
+
it 'returns a Faraday::Connection with the nethttp adapter' do
|
9
|
+
subject.faraday_connection.must_be_instance_of Faraday::Connection
|
10
|
+
subject.faraday_connection.builder.handlers.must_include default_faraday_adapter
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe 'base_uri' do
|
15
|
+
subject{ Bvr::Connection.new.base_uri }
|
16
|
+
let(:base_uri) { 'https://www.voipinfocenter.com' }
|
17
|
+
|
18
|
+
it "returns the base_uri of the api" do
|
19
|
+
subject.must_equal base_uri
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
describe 'get(params)' do
|
25
|
+
let(:params) { {foo: 'bar'} }
|
26
|
+
let(:faraday_connection) { Minitest::Mock.new }
|
27
|
+
let(:username) { 'username' }
|
28
|
+
let(:password) { 'password' }
|
29
|
+
let(:connection) do
|
30
|
+
Bvr::Connection.new.tap do |connection|
|
31
|
+
connection.faraday_connection = faraday_connection
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
before do
|
36
|
+
Bvr.configure do |config|
|
37
|
+
config.username = username
|
38
|
+
config.password = password
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
subject { connection.get(params) }
|
43
|
+
|
44
|
+
it 'calls connection.get with the right uri' do
|
45
|
+
response = Minitest::Mock.new
|
46
|
+
faraday_connection.expect :get, response, [connection.uri(params)]
|
47
|
+
response.expect :body, nil
|
48
|
+
subject
|
49
|
+
faraday_connection.verify
|
50
|
+
response.verify
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
describe 'uri(queryH)' do
|
56
|
+
let(:queryH) { { foo: 'bar', bar: 'foo'} }
|
57
|
+
let(:username) { 'username' }
|
58
|
+
let(:faraday_connection) { Minitest::Mock.new }
|
59
|
+
let(:password) { 'password' }
|
60
|
+
let(:connection) do
|
61
|
+
Bvr::Connection.new.tap do |connection|
|
62
|
+
connection.faraday_connection = faraday_connection
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
before do
|
67
|
+
Bvr.configure do |config|
|
68
|
+
config.username = username
|
69
|
+
config.password = password
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
subject { connection.uri(queryH) }
|
74
|
+
|
75
|
+
it 'match the api path' do
|
76
|
+
subject.must_match Regexp.new(Bvr::Connection::API_PATH)
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'transform queryH to valid GET params' do
|
80
|
+
subject.must_match Regexp.new("foo=#{queryH[:foo]}&bar=#{queryH[:bar]}")
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'contain username and password from the config' do #This is pretty bad :(
|
84
|
+
subject.must_match Regexp.new("username=#{username}&password=#{password}")
|
85
|
+
end
|
86
|
+
|
87
|
+
describe 'when username and password are passed in the H' do
|
88
|
+
let(:queryH) { {username: 'foo', password: 'bar'} }
|
89
|
+
|
90
|
+
it 'overwrite username and password params' do
|
91
|
+
subject.must_match Regexp.new("username=#{username}&password=#{password}")
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
describe Bvr do
|
4
|
+
subject { Bvr }
|
5
|
+
|
6
|
+
describe '.configure' do
|
7
|
+
let(:username) { 'foo' }
|
8
|
+
let(:password) { 'bar' }
|
9
|
+
|
10
|
+
before do
|
11
|
+
subject.configure do |config|
|
12
|
+
config.username = username
|
13
|
+
config.password = password
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'has a username and password' do
|
18
|
+
subject.config.username.must_equal username
|
19
|
+
subject.config.password.must_equal password
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
Bundler.require(:test)
|
4
|
+
|
5
|
+
require_relative '../lib/bvr'
|
6
|
+
|
7
|
+
require 'minitest/autorun'
|
8
|
+
require 'minitest/pride'
|
9
|
+
|
10
|
+
Turn.config do |c|
|
11
|
+
c.format = :outline
|
12
|
+
c.natural = true
|
13
|
+
end
|
14
|
+
|
15
|
+
MiniTest::Spec.before :each do
|
16
|
+
Bvr.configure do |config|
|
17
|
+
config.username = 'default_username'
|
18
|
+
config.password = 'default_password'
|
19
|
+
end
|
20
|
+
end
|
metadata
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bvr
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- gregory
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-12-27 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
none: false
|
21
|
+
name: bundler
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
requirement: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '1.3'
|
29
|
+
none: false
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
version_requirements: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ! '>='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
none: false
|
37
|
+
name: rake
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
requirement: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
45
|
+
none: false
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ! '>='
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0'
|
52
|
+
none: false
|
53
|
+
name: rack
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ! '>='
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
none: false
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
none: false
|
69
|
+
name: faraday
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
none: false
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ! '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
none: false
|
85
|
+
name: happymapper
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
requirement: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ! '>='
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
none: false
|
94
|
+
description: A ruby interface to Bestvoipreselling API
|
95
|
+
email:
|
96
|
+
- greg2502@gmail.com
|
97
|
+
executables: []
|
98
|
+
extensions: []
|
99
|
+
extra_rdoc_files: []
|
100
|
+
files:
|
101
|
+
- .gitignore
|
102
|
+
- Gemfile
|
103
|
+
- Guardfile
|
104
|
+
- LICENSE.txt
|
105
|
+
- README.md
|
106
|
+
- Rakefile
|
107
|
+
- bvr.gemspec
|
108
|
+
- lib/bvr.rb
|
109
|
+
- lib/bvr/call.rb
|
110
|
+
- lib/bvr/call_overview.rb
|
111
|
+
- lib/bvr/configuration.rb
|
112
|
+
- lib/bvr/connection.rb
|
113
|
+
- lib/bvr/phone.rb
|
114
|
+
- lib/bvr/version.rb
|
115
|
+
- spec/fixtures/CallOverview.xml
|
116
|
+
- spec/lib/bvr/call_overview_spec.rb
|
117
|
+
- spec/lib/bvr/configuration_spec.rb
|
118
|
+
- spec/lib/bvr/connection_spec.rb
|
119
|
+
- spec/lib/bvr_spec.rb
|
120
|
+
- spec/spec_helper.rb
|
121
|
+
homepage: ''
|
122
|
+
licenses:
|
123
|
+
- MIT
|
124
|
+
post_install_message:
|
125
|
+
rdoc_options: []
|
126
|
+
require_paths:
|
127
|
+
- lib
|
128
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ! '>='
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
none: false
|
134
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ! '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
none: false
|
140
|
+
requirements: []
|
141
|
+
rubyforge_project:
|
142
|
+
rubygems_version: 1.8.23
|
143
|
+
signing_key:
|
144
|
+
specification_version: 3
|
145
|
+
summary: A ruby interface to Bestvoipreselling API
|
146
|
+
test_files:
|
147
|
+
- spec/fixtures/CallOverview.xml
|
148
|
+
- spec/lib/bvr/call_overview_spec.rb
|
149
|
+
- spec/lib/bvr/configuration_spec.rb
|
150
|
+
- spec/lib/bvr/connection_spec.rb
|
151
|
+
- spec/lib/bvr_spec.rb
|
152
|
+
- spec/spec_helper.rb
|
153
|
+
has_rdoc:
|