twilio-rb 1.0beta → 1.0beta2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -9,9 +9,11 @@ It offers an ActiveRecord style API, i.e. one that most Ruby developers are fami
9
9
 
10
10
  ## Installation
11
11
 
12
- The library has been packaged as a gem and is available from rubygems.org
12
+ The library has been packaged as a gem and is available from rubygems.org. The version that this readme pertains to is 1.0beta. To install use the `--pre` flag
13
13
 
14
- <pre>gem install twilio-rb</pre>
14
+ <pre>gem install twilio-rb --pre</pre>
15
+
16
+ Please use the Github issue tracker to report any issues or bugs you uncover.
15
17
 
16
18
  ## Usage
17
19
 
@@ -21,7 +23,7 @@ Require the library in your script as
21
23
 
22
24
  or using bundler:
23
25
 
24
- <pre>gem 'twilio-rb', '1.0pre', :require => 'twilio'</pre>
26
+ <pre>gem 'twilio-rb', '1.0beta', :require => 'twilio'</pre>
25
27
 
26
28
  ## Configuration
27
29
 
data/lib/railtie.rb CHANGED
@@ -5,10 +5,14 @@ module Twilio
5
5
  class Template
6
6
  module Handlers
7
7
  class TwiML < ::ActionView::Template::Handler
8
+ self.default_format = 'text/xml'
8
9
  include ::ActionView::Template::Handlers::Compilable
9
10
 
10
11
  def compile(template)
11
- %<Twilio::TwiML.build { |res| #{template.source} }>
12
+ <<-EOS
13
+ controller.content_type = 'text/xml'
14
+ Twilio::TwiML.build {|res| #{template.source} }
15
+ EOS
12
16
  end
13
17
  end
14
18
  end
@@ -19,4 +23,4 @@ module Twilio
19
23
  ::Mime::Type.register_alias 'text/xml', :voice
20
24
  end
21
25
  end
22
- end
26
+ end
data/lib/twilio/call.rb CHANGED
@@ -15,18 +15,19 @@ module Twilio
15
15
  end
16
16
 
17
17
  private
18
- def prepare_dates(opts)
19
- opts.map do |k,v|
18
+ def prepare_params(opts) # :nodoc:
19
+ pairs = opts.map do |k,v|
20
20
  if [:started_before, :started_after, :ended_before, :ended_after].include? k
21
21
  k = k.to_s
22
22
  # Fancy schmancy-ness to handle Twilio <= URI operator for dates
23
23
  comparator = k =~ /before$/ ? '<=' : '>='
24
24
  delineator = k =~ /started/ ? 'Start' : 'End'
25
- delineator << "Time" << comparator << v.to_s
25
+ CGI.escape(delineator << "Time" << comparator << v.to_s)
26
26
  else
27
- "#{k.to_s.camelize}=#{v}"
27
+ "#{k.to_s.camelize}=#{CGI.escape v.to_s}"
28
28
  end
29
29
  end
30
+ "?#{pairs.join('&')}"
30
31
  end
31
32
  end
32
33
 
data/lib/twilio/finder.rb CHANGED
@@ -5,21 +5,17 @@ module Twilio
5
5
  hash = res.parsed_response
6
6
  if (200..299).include? res.code
7
7
  hash['api_version'] = hash['api_version'].to_s # api_version parsed as a date by http_party
8
- new hash
8
+ new hash
9
9
  end
10
10
  end
11
11
 
12
12
  def count(opts={})
13
- opts = prepare_dates opts
14
- params = "?#{URI.encode(opts.join '&')}" unless opts.empty?
15
-
13
+ params = prepare_params opts if opts.any?
16
14
  get("/Accounts/#{Twilio::ACCOUNT_SID}/#{resource_fragment}.json#{params}").parsed_response['total']
17
15
  end
18
16
 
19
17
  def all(opts={})
20
- opts = prepare_dates opts
21
- params = "?#{URI.encode(opts.join '&')}" unless opts.empty?
22
-
18
+ params = prepare_params opts if opts.any?
23
19
  handle_response get "/Accounts/#{Twilio::ACCOUNT_SID}/#{resource_fragment}.json#{params}"
24
20
  end
25
21
 
@@ -31,17 +27,18 @@ module Twilio
31
27
  resource = klass_name == 'SMS' ? "#{klass_name}/Messages" : klass_name.pluralize
32
28
  end
33
29
 
34
- def prepare_dates(opts) # :nodoc:
35
- opts.map do |k,v|
30
+ def prepare_params(opts) # :nodoc:
31
+ pairs = opts.map do |k,v|
36
32
  if [:updated_before, :created_before, :updated_after, :created_after].include? k
37
33
  k = k.to_s
38
34
  # Fancy schmancy-ness to handle Twilio <= URI operator for dates
39
35
  comparator = k =~ /before$/ ? '<=' : '>='
40
- "Date" << k.gsub(/\_\w+$/, '').capitalize << comparator << v.to_s
36
+ CGI.escape("Date" << k.gsub(/\_\w+$/, '').capitalize << comparator << v.to_s)
41
37
  else
42
- "#{k.to_s.camelize}=#{v}"
38
+ "#{k.to_s.camelize}=#{CGI.escape v.to_s}"
43
39
  end
44
40
  end
41
+ "?#{pairs.join('&')}"
45
42
  end
46
43
 
47
44
  def handle_response(res) # :nodoc:
@@ -6,17 +6,18 @@ module Twilio
6
6
 
7
7
  class << self
8
8
  private
9
- def prepare_dates(opts)
10
- opts.map do |k,v|
9
+ def prepare_params(opts) # :nodoc:
10
+ pairs = opts.map do |k,v|
11
11
  if [:created_before, :created_after].include? k
12
12
  k = k.to_s
13
13
  # Fancy schmancy-ness to handle Twilio <= URI operator for dates
14
14
  comparator = k =~ /before$/ ? '<=' : '>='
15
- "MessageDate" << comparator << v.to_s
15
+ CGI.escape("MessageDate" << comparator << v.to_s)
16
16
  else
17
- "#{k.to_s.camelize}=#{v}"
17
+ "#{k.to_s.camelize}=#{CGI.escape v.to_s}"
18
18
  end
19
19
  end
20
+ "?#{pairs.join('&')}"
20
21
  end
21
22
  end
22
23
  end
data/lib/twilio/sms.rb CHANGED
@@ -6,17 +6,18 @@ module Twilio
6
6
 
7
7
  class << self
8
8
  private
9
- def prepare_dates(opts)
10
- opts.map do |k,v|
9
+ def prepare_params(opts) # :nodoc:
10
+ pairs = opts.map do |k,v|
11
11
  if [:created_before, :created_after, :sent_before, :sent_after].include? k
12
12
  k = k.to_s
13
13
  # Fancy schmancy-ness to handle Twilio <= URI operator for dates
14
- comparator = k =~ /before$/ ? '<=' : '>='
15
- "DateSent" << comparator << v.to_s
14
+ comparator = k =~ /before$/ ? '<=' : '>='
15
+ URI.encode("DateSent" << comparator << v.to_s)
16
16
  else
17
- "#{k.to_s.camelize}=#{v}"
17
+ "#{k.to_s.camelize}=#{CGI.escape v.to_s}"
18
18
  end
19
19
  end
20
+ "?#{pairs.join('&')}"
20
21
  end
21
22
  end
22
23
  end
data/lib/twilio.rb CHANGED
@@ -1,4 +1,4 @@
1
- %w<rubygems active_support cgi yajl yajl/json_gem httparty builder>.each { |lib| require lib }
1
+ %w<rubygems active_support active_support/inflector cgi yajl yajl/json_gem httparty builder>.each { |lib| require lib }
2
2
  %w<resource finder persistable deletable>.each { |lib| require File.join(File.dirname(__FILE__), 'twilio', "#{lib}.rb") }
3
3
 
4
4
  module Twilio
metadata CHANGED
@@ -1,11 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twilio-rb
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: true
5
- segments:
6
- - 1
7
- - 0beta
8
- version: 1.0beta
4
+ prerelease: 3
5
+ version: 1.0beta2
9
6
  platform: ruby
10
7
  authors:
11
8
  - Stevie Graham
@@ -13,7 +10,7 @@ autorequire:
13
10
  bindir: bin
14
11
  cert_chain: []
15
12
 
16
- date: 2010-12-26 00:00:00 +00:00
13
+ date: 2011-06-08 00:00:00 +01:00
17
14
  default_executable:
18
15
  dependencies:
19
16
  - !ruby/object:Gem::Dependency
@@ -24,103 +21,86 @@ dependencies:
24
21
  requirements:
25
22
  - - ">="
26
23
  - !ruby/object:Gem::Version
27
- segments:
28
- - 3
29
- - 0
30
- - 0
31
24
  version: 3.0.0
32
25
  type: :runtime
33
26
  version_requirements: *id001
34
27
  - !ruby/object:Gem::Dependency
35
- name: yajl-ruby
28
+ name: i18n
36
29
  prerelease: false
37
30
  requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ~>
34
+ - !ruby/object:Gem::Version
35
+ version: 0.5.0
36
+ type: :runtime
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: yajl-ruby
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
38
42
  none: false
39
43
  requirements:
40
44
  - - ">="
41
45
  - !ruby/object:Gem::Version
42
- segments:
43
- - 0
44
- - 7
45
- - 7
46
46
  version: 0.7.7
47
47
  type: :runtime
48
- version_requirements: *id002
48
+ version_requirements: *id003
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: httparty
51
51
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
55
  - - ">="
56
56
  - !ruby/object:Gem::Version
57
- segments:
58
- - 0
59
- - 6
60
- - 1
61
57
  version: 0.6.1
62
58
  type: :runtime
63
- version_requirements: *id003
59
+ version_requirements: *id004
64
60
  - !ruby/object:Gem::Dependency
65
61
  name: builder
66
62
  prerelease: false
67
- requirement: &id004 !ruby/object:Gem::Requirement
63
+ requirement: &id005 !ruby/object:Gem::Requirement
68
64
  none: false
69
65
  requirements:
70
66
  - - ">="
71
67
  - !ruby/object:Gem::Version
72
- segments:
73
- - 2
74
- - 1
75
- - 2
76
68
  version: 2.1.2
77
69
  type: :runtime
78
- version_requirements: *id004
70
+ version_requirements: *id005
79
71
  - !ruby/object:Gem::Dependency
80
72
  name: webmock
81
73
  prerelease: false
82
- requirement: &id005 !ruby/object:Gem::Requirement
74
+ requirement: &id006 !ruby/object:Gem::Requirement
83
75
  none: false
84
76
  requirements:
85
77
  - - ">="
86
78
  - !ruby/object:Gem::Version
87
- segments:
88
- - 1
89
- - 6
90
- - 1
91
79
  version: 1.6.1
92
80
  type: :development
93
- version_requirements: *id005
81
+ version_requirements: *id006
94
82
  - !ruby/object:Gem::Dependency
95
83
  name: rspec
96
84
  prerelease: false
97
- requirement: &id006 !ruby/object:Gem::Requirement
85
+ requirement: &id007 !ruby/object:Gem::Requirement
98
86
  none: false
99
87
  requirements:
100
88
  - - ">="
101
89
  - !ruby/object:Gem::Version
102
- segments:
103
- - 2
104
- - 2
105
- - 0
106
90
  version: 2.2.0
107
91
  type: :development
108
- version_requirements: *id006
92
+ version_requirements: *id007
109
93
  - !ruby/object:Gem::Dependency
110
94
  name: mocha
111
95
  prerelease: false
112
- requirement: &id007 !ruby/object:Gem::Requirement
96
+ requirement: &id008 !ruby/object:Gem::Requirement
113
97
  none: false
114
98
  requirements:
115
99
  - - ">="
116
100
  - !ruby/object:Gem::Version
117
- segments:
118
- - 0
119
- - 9
120
- - 10
121
101
  version: 0.9.10
122
102
  type: :development
123
- version_requirements: *id007
103
+ version_requirements: *id008
124
104
  description: A nice Ruby wrapper for the Twilio REST API
125
105
  email: sjtgraham@mac.com
126
106
  executables: []
@@ -151,7 +131,7 @@ files:
151
131
  - lib/twilio/transcription.rb
152
132
  - lib/twilio/twiml.rb
153
133
  - lib/twilio.rb
154
- has_rdoc: false
134
+ has_rdoc: true
155
135
  homepage: http://github.com/stevegraham/twilio-rb
156
136
  licenses: []
157
137
 
@@ -165,25 +145,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
165
145
  requirements:
166
146
  - - ">="
167
147
  - !ruby/object:Gem::Version
168
- segments:
169
- - 1
170
- - 8
171
- - 7
172
148
  version: 1.8.7
173
149
  required_rubygems_version: !ruby/object:Gem::Requirement
174
150
  none: false
175
151
  requirements:
176
152
  - - ">"
177
153
  - !ruby/object:Gem::Version
178
- segments:
179
- - 1
180
- - 3
181
- - 1
182
154
  version: 1.3.1
183
155
  requirements: []
184
156
 
185
157
  rubyforge_project:
186
- rubygems_version: 1.3.7
158
+ rubygems_version: 1.5.2
187
159
  signing_key:
188
160
  specification_version: 3
189
161
  summary: Interact with the Twilio API in a nice Ruby way.