boundio 0.0.4 → 0.0.5

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
@@ -1,5 +1,5 @@
1
1
  # boundio
2
2
 
3
- [![Build Status](https://secure.travis-ci.org/[YOUR_GITHUB_USERNAME]/[YOUR_PROJECT_NAME].png)](http://travis-ci.org/pwim/boundio)
3
+ [![Build Status](https://secure.travis-ci.org/pwim/boundio.png?branch=master)](http://travis-ci.org/pwim/boundio)
4
4
 
5
5
  Alpha-version of the beta-api for Boundio. See [the documentation](http://www.doorkeeperhq.com/developer/boundio-ruby-gem) for details.
@@ -5,7 +5,7 @@ require "thor"
5
5
  require "active_support/core_ext/string/inflections"
6
6
 
7
7
  module Boundio
8
- %w[audio_file application call exception resource tel_status version].each do |s|
8
+ %w[audio_file application call cast exception resource tel_status version].each do |s|
9
9
  autoload s.camelize.to_sym, "boundio/#{s}"
10
10
  end
11
11
  end
@@ -3,8 +3,7 @@ module Boundio
3
3
  desc "call", "Call the specified number with the specified cast"
4
4
  method_options :tel_to => :string, :cast => :string
5
5
  def call
6
- call = Call.new(options)
7
- call.save
6
+ call = Call.create(options)
8
7
  puts call.id
9
8
  end
10
9
 
@@ -21,8 +20,7 @@ module Boundio
21
20
  desc "file", "Create a file for use with boundio"
22
21
  method_options :convtext => :string, :file => :string
23
22
  def file
24
- file = AudioFile.new(options[:file] ? {:file => File.new(options[:file], "rb")} : options)
25
- file.save
23
+ file = AudioFile.create(options[:file] ? {:file => File.new(options[:file], "rb")} : options)
26
24
  puts file.id
27
25
  end
28
26
 
@@ -7,7 +7,7 @@ module Boundio
7
7
  end
8
8
 
9
9
  def self.exceptions
10
- super.merge(2 => ArgumentError.new("insufficient parameters or file to big"))
10
+ super.merge(2 => InsufficientParametersOrTooBigFile, 6 => VoiceConversionError)
11
11
  end
12
12
 
13
13
  def save
@@ -20,5 +20,12 @@ module Boundio
20
20
  self.id = res["fileid"]
21
21
  true
22
22
  end
23
+
24
+ def +(file)
25
+ Boundio::Cast.new(self, file)
26
+ end
27
+
28
+ class InsufficientParametersOrTooBigFile < Boundio::Exception; end
29
+ class VoiceConversionError < Boundio::Exception; end
23
30
  end
24
31
  end
@@ -11,6 +11,10 @@ module Boundio
11
11
  true
12
12
  end
13
13
 
14
+ def status
15
+ TelStatus.find(id)
16
+ end
17
+
14
18
  class NotEnoughPoints < Boundio::Exception; end
15
19
  class NoVoiceFile < Boundio::Exception; end
16
20
  end
@@ -0,0 +1,21 @@
1
+ module Boundio
2
+ class Cast
3
+ attr_reader :files
4
+
5
+ def initialize(*files)
6
+ @files = files
7
+ end
8
+
9
+ def +(file)
10
+ self.class.new(*(files + [file]))
11
+ end
12
+
13
+ def to_s
14
+ files.map {|f| "file(#{f.id})" }.join("%%")
15
+ end
16
+
17
+ def ==(other)
18
+ other.is_a?(self.class) ? files == other.files : super
19
+ end
20
+ end
21
+ end
@@ -1,6 +1,12 @@
1
1
  module Boundio
2
2
  class Resource
3
3
  class << self
4
+ def create(args)
5
+ o = new(args)
6
+ o.save
7
+ o
8
+ end
9
+
4
10
  def api_version
5
11
  "vd1"
6
12
  end
@@ -30,7 +36,7 @@ module Boundio
30
36
  end
31
37
  end
32
38
 
33
- def initialize(args)
39
+ def initialize(args = {})
34
40
  args.each {|k,v| send("#{k}=", v) }
35
41
  end
36
42
 
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  module Boundio
2
3
  class TelStatus < Resource
3
4
  attr_accessor :id, :from, :to, :start, :end, :duration, :status
@@ -19,6 +20,10 @@ module Boundio
19
20
  end
20
21
  end
21
22
 
23
+ def processing?
24
+ status == "架電待機"
25
+ end
26
+
22
27
  def to_s
23
28
  "TelStatus (#{id}): #{from} -> #{to}, #{start} - #{self.end}, #{status}"
24
29
  end
@@ -1,3 +1,3 @@
1
1
  module Boundio
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -8,4 +8,12 @@ class TestAudioFile < BoundioTest
8
8
  file.save
9
9
  assert_equal 5, file.id
10
10
  end
11
+
12
+ def test_combining_files
13
+ f1 = Boundio::AudioFile.new
14
+ f2 = Boundio::AudioFile.new
15
+ cast = f1 + f2
16
+ assert_instance_of Boundio::Cast, cast
17
+ assert_equal [f1, f2], cast.instance_variable_get(:@files)
18
+ end
11
19
  end
@@ -0,0 +1,16 @@
1
+ require "test_helper"
2
+
3
+ class TestCast < BoundioTest
4
+ def test_combining
5
+ f1 = Boundio::AudioFile.new(:id => '000001')
6
+ f2 = Boundio::AudioFile.new(:id => '000002')
7
+ cast = Boundio::Cast.new(f1)
8
+ assert_equal Boundio::Cast.new(f1,f2), cast + f2
9
+ end
10
+ def test_to_s
11
+ f1 = Boundio::AudioFile.new(:id => '000001')
12
+ f2 = Boundio::AudioFile.new(:id => '000002')
13
+ cast = Boundio::Cast.new(f1, f2)
14
+ assert_equal 'file(000001)%%file(000002)', cast.to_s
15
+ end
16
+ end
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  require "test_helper"
2
3
 
3
4
  class TestTelStatus < BoundioTest
@@ -6,4 +7,9 @@ class TestTelStatus < BoundioTest
6
7
  call_status = Boundio::TelStatus.find(5)
7
8
  assert_equal 5, call_status.id
8
9
  end
10
+
11
+ def test_status
12
+ assert Boundio::TelStatus.new(:status => "架電待機").processing?
13
+ assert !Boundio::TelStatus.new(:status => "不在").processing?
14
+ end
9
15
  end
metadata CHANGED
@@ -1,130 +1,101 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: boundio
3
- version: !ruby/object:Gem::Version
4
- hash: 23
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 4
10
- version: 0.0.4
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Paul McMahon
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-03-15 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-03-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: minitest
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2157474300 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :development
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: rake
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2157474300
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &2157473880 !ruby/object:Gem::Requirement
38
28
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
46
33
  type: :development
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: webmock
50
34
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *2157473880
36
+ - !ruby/object:Gem::Dependency
37
+ name: webmock
38
+ requirement: &2157473460 !ruby/object:Gem::Requirement
52
39
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
60
44
  type: :development
61
- version_requirements: *id003
62
- - !ruby/object:Gem::Dependency
63
- name: activesupport
64
45
  prerelease: false
65
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *2157473460
47
+ - !ruby/object:Gem::Dependency
48
+ name: activesupport
49
+ requirement: &2157473040 !ruby/object:Gem::Requirement
66
50
  none: false
67
- requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- hash: 3
71
- segments:
72
- - 0
73
- version: "0"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
74
55
  type: :runtime
75
- version_requirements: *id004
76
- - !ruby/object:Gem::Dependency
77
- name: json
78
56
  prerelease: false
79
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *2157473040
58
+ - !ruby/object:Gem::Dependency
59
+ name: json
60
+ requirement: &2157472620 !ruby/object:Gem::Requirement
80
61
  none: false
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- hash: 3
85
- segments:
86
- - 0
87
- version: "0"
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
88
66
  type: :runtime
89
- version_requirements: *id005
90
- - !ruby/object:Gem::Dependency
91
- name: rest-client
92
67
  prerelease: false
93
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *2157472620
69
+ - !ruby/object:Gem::Dependency
70
+ name: rest-client
71
+ requirement: &2157472200 !ruby/object:Gem::Requirement
94
72
  none: false
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- hash: 3
99
- segments:
100
- - 0
101
- version: "0"
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
102
77
  type: :runtime
103
- version_requirements: *id006
104
- - !ruby/object:Gem::Dependency
105
- name: thor
106
78
  prerelease: false
107
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *2157472200
80
+ - !ruby/object:Gem::Dependency
81
+ name: thor
82
+ requirement: &2157471780 !ruby/object:Gem::Requirement
108
83
  none: false
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- hash: 3
113
- segments:
114
- - 0
115
- version: "0"
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
116
88
  type: :runtime
117
- version_requirements: *id007
89
+ prerelease: false
90
+ version_requirements: *2157471780
118
91
  description: Boundio is KDDI's telephony API. This is a simple wrapper for it.
119
- email:
92
+ email:
120
93
  - paul@mobalean.com
121
- executables:
94
+ executables:
122
95
  - boundio
123
96
  extensions: []
124
-
125
97
  extra_rdoc_files: []
126
-
127
- files:
98
+ files:
128
99
  - .gitignore
129
100
  - .travis.yml
130
101
  - Gemfile
@@ -137,6 +108,7 @@ files:
137
108
  - lib/boundio/application.rb
138
109
  - lib/boundio/audio_file.rb
139
110
  - lib/boundio/call.rb
111
+ - lib/boundio/cast.rb
140
112
  - lib/boundio/exception.rb
141
113
  - lib/boundio/resource.rb
142
114
  - lib/boundio/tel_status.rb
@@ -144,40 +116,37 @@ files:
144
116
  - test/test_application.rb
145
117
  - test/test_audio_file.rb
146
118
  - test/test_call.rb
119
+ - test/test_cast.rb
147
120
  - test/test_helper.rb
148
121
  - test/test_tel_status.rb
149
122
  homepage: http://boundio.jp
150
123
  licenses: []
151
-
152
124
  post_install_message:
153
125
  rdoc_options: []
154
-
155
- require_paths:
126
+ require_paths:
156
127
  - lib
157
- required_ruby_version: !ruby/object:Gem::Requirement
128
+ required_ruby_version: !ruby/object:Gem::Requirement
158
129
  none: false
159
- requirements:
160
- - - ">="
161
- - !ruby/object:Gem::Version
162
- hash: 3
163
- segments:
164
- - 0
165
- version: "0"
166
- required_rubygems_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ required_rubygems_version: !ruby/object:Gem::Requirement
167
135
  none: false
168
- requirements:
169
- - - ">="
170
- - !ruby/object:Gem::Version
171
- hash: 3
172
- segments:
173
- - 0
174
- version: "0"
136
+ requirements:
137
+ - - ! '>='
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
175
140
  requirements: []
176
-
177
141
  rubyforge_project: boundio
178
- rubygems_version: 1.8.17
142
+ rubygems_version: 1.8.15
179
143
  signing_key:
180
144
  specification_version: 3
181
145
  summary: Wrapper for Boundio API
182
- test_files: []
183
-
146
+ test_files:
147
+ - test/test_application.rb
148
+ - test/test_audio_file.rb
149
+ - test/test_call.rb
150
+ - test/test_cast.rb
151
+ - test/test_helper.rb
152
+ - test/test_tel_status.rb