twilio-rails 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +20 -14
  3. data/app/controllers/twilio/rails/phone_controller.rb +6 -2
  4. data/app/controllers/twilio/rails/sms_controller.rb +6 -5
  5. data/app/jobs/twilio/rails/phone/attach_recording_job.rb +1 -0
  6. data/app/jobs/twilio/rails/phone/finished_call_job.rb +1 -0
  7. data/app/jobs/twilio/rails/phone/unanswered_call_job.rb +1 -0
  8. data/app/operations/twilio/rails/application_operation.rb +2 -1
  9. data/app/operations/twilio/rails/find_or_create_phone_caller_operation.rb +2 -1
  10. data/app/operations/twilio/rails/phone/attach_recording_operation.rb +3 -2
  11. data/app/operations/twilio/rails/phone/base_operation.rb +1 -0
  12. data/app/operations/twilio/rails/phone/create_operation.rb +11 -8
  13. data/app/operations/twilio/rails/phone/find_operation.rb +1 -0
  14. data/app/operations/twilio/rails/phone/finished_call_operation.rb +2 -1
  15. data/app/operations/twilio/rails/phone/receive_recording_operation.rb +3 -2
  16. data/app/operations/twilio/rails/phone/start_call_operation.rb +15 -13
  17. data/app/operations/twilio/rails/phone/twiml/after_operation.rb +2 -1
  18. data/app/operations/twilio/rails/phone/twiml/base_operation.rb +11 -5
  19. data/app/operations/twilio/rails/phone/twiml/error_operation.rb +2 -1
  20. data/app/operations/twilio/rails/phone/twiml/greeting_operation.rb +3 -2
  21. data/app/operations/twilio/rails/phone/twiml/invalid_phone_number_operation.rb +25 -0
  22. data/app/operations/twilio/rails/phone/twiml/prompt_operation.rb +6 -5
  23. data/app/operations/twilio/rails/phone/twiml/prompt_response_operation.rb +2 -1
  24. data/app/operations/twilio/rails/phone/twiml/request_validation_failure_operation.rb +1 -0
  25. data/app/operations/twilio/rails/phone/twiml/timeout_operation.rb +5 -4
  26. data/app/operations/twilio/rails/phone/unanswered_call_operation.rb +2 -1
  27. data/app/operations/twilio/rails/phone/update_operation.rb +1 -0
  28. data/app/operations/twilio/rails/phone/update_response_operation.rb +1 -0
  29. data/app/operations/twilio/rails/sms/base_operation.rb +1 -0
  30. data/app/operations/twilio/rails/sms/create_operation.rb +2 -1
  31. data/app/operations/twilio/rails/sms/find_message_operation.rb +1 -0
  32. data/app/operations/twilio/rails/sms/find_operation.rb +1 -0
  33. data/app/operations/twilio/rails/sms/send_operation.rb +12 -12
  34. data/app/operations/twilio/rails/sms/twiml/base_operation.rb +1 -0
  35. data/app/operations/twilio/rails/sms/twiml/error_operation.rb +1 -0
  36. data/app/operations/twilio/rails/sms/twiml/message_operation.rb +4 -3
  37. data/app/operations/twilio/rails/sms/update_message_operation.rb +1 -0
  38. data/lib/generators/twilio/rails/install/install_generator.rb +1 -0
  39. data/lib/generators/twilio/rails/install/templates/initializer.rb +5 -8
  40. data/lib/generators/twilio/rails/install/templates/message.rb +1 -0
  41. data/lib/generators/twilio/rails/install/templates/phone_call.rb +1 -0
  42. data/lib/generators/twilio/rails/install/templates/phone_caller.rb +1 -0
  43. data/lib/generators/twilio/rails/install/templates/recording.rb +1 -0
  44. data/lib/generators/twilio/rails/install/templates/response.rb +1 -0
  45. data/lib/generators/twilio/rails/install/templates/sms_conversation.rb +1 -0
  46. data/lib/generators/twilio/rails/phone_tree/phone_tree_generator.rb +1 -0
  47. data/lib/generators/twilio/rails/sms_responder/sms_responder_generator.rb +1 -0
  48. data/lib/generators/twilio/rails/sms_responder/templates/responder.rb.erb +2 -2
  49. data/lib/tasks/rails_tasks.rake +6 -5
  50. data/lib/twilio/rails/client.rb +9 -8
  51. data/lib/twilio/rails/concerns/has_direction.rb +2 -1
  52. data/lib/twilio/rails/concerns/has_phone_number.rb +13 -4
  53. data/lib/twilio/rails/concerns/has_time_scopes.rb +1 -0
  54. data/lib/twilio/rails/configuration.rb +42 -40
  55. data/lib/twilio/rails/formatter.rb +35 -29
  56. data/lib/twilio/rails/models/message.rb +1 -0
  57. data/lib/twilio/rails/models/phone_call.rb +1 -0
  58. data/lib/twilio/rails/models/phone_caller.rb +4 -3
  59. data/lib/twilio/rails/models/recording.rb +1 -0
  60. data/lib/twilio/rails/models/response.rb +7 -6
  61. data/lib/twilio/rails/models/sms_conversation.rb +1 -0
  62. data/lib/twilio/rails/phone/base_tree.rb +8 -7
  63. data/lib/twilio/rails/phone/tree.rb +8 -7
  64. data/lib/twilio/rails/phone/tree_macros.rb +9 -9
  65. data/lib/twilio/rails/phone.rb +3 -2
  66. data/lib/twilio/rails/phone_number.rb +6 -5
  67. data/lib/twilio/rails/phone_number_formatter/north_america.rb +52 -0
  68. data/lib/twilio/rails/phone_number_formatter.rb +20 -0
  69. data/lib/twilio/rails/railtie.rb +6 -1
  70. data/lib/twilio/rails/sms/delegated_responder.rb +6 -5
  71. data/lib/twilio/rails/sms/responder.rb +3 -2
  72. data/lib/twilio/rails/sms.rb +3 -2
  73. data/lib/twilio/rails/version.rb +1 -1
  74. data/lib/twilio/rails.rb +12 -26
  75. metadata +20 -6
data/lib/twilio/rails.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require "forwardable"
1
2
  require "active_operation"
2
3
  require "twilio-ruby"
3
4
  require "faraday"
@@ -8,13 +9,15 @@ require "twilio/rails/engine"
8
9
  module Twilio
9
10
  module Rails
10
11
  # Base error class for all errors raised by the Twilio::Rails gem. Every error is a subclass of this one.
11
- class Error < StandardError ; end
12
+ class Error < StandardError; end
12
13
  end
13
14
  end
14
15
 
15
16
  require "twilio/rails/railtie"
16
17
  require "twilio/rails/configuration"
17
18
  require "twilio/rails/formatter"
19
+ require "twilio/rails/phone_number_formatter"
20
+ require "twilio/rails/phone_number_formatter/north_america"
18
21
  require "twilio/rails/phone_number"
19
22
  require "twilio/rails/client"
20
23
 
@@ -40,7 +43,6 @@ require "twilio/rails/models/message"
40
43
  module Twilio
41
44
  module Rails
42
45
  class << self
43
-
44
46
  # Read and write accessible configuration object. In most cases this should only be read after the app has been
45
47
  # initialized. See {Twilio::Rails::Configuration} for more information.
46
48
  #
@@ -49,6 +51,14 @@ module Twilio
49
51
  @config ||= ::Twilio::Rails::Configuration.new
50
52
  end
51
53
 
54
+ # See the ActiveSupport::Deprecation documentation:
55
+ # https://api.rubyonrails.org/classes/ActiveSupport/Deprecation.html
56
+ #
57
+ # @return [ActiveSupport::Deprecation] the deprecator for the engine.
58
+ def deprecator
59
+ @deprecator ||= ActiveSupport::Deprecation.new("2.0", "Twilio::Rails")
60
+ end
61
+
52
62
  # Called in the `config/initializers/twilio_rails.rb` file to configure the engine. This yields the {.config}
53
63
  # object above and then calls {Twilio::Rails::Configuration#validate!} to ensure the configuration is valid.
54
64
  #
@@ -60,30 +70,6 @@ module Twilio
60
70
  config.validate!
61
71
  nil
62
72
  end
63
-
64
- # Abstraction for the framework to notify of an important exception that has occurred. This safely calls the
65
- # configured `config.exception_notifier` or does nothing if it is set to `nil`. This does not catch, handle, or
66
- # prevent the exception from raising.
67
- #
68
- # @param exception [Exception] the exception that has occurred.
69
- # @param message [String] a description of the exception, defaults to `exception.message` if blank.
70
- # @param context [Hash] a hash of arbitrary additional context to include in the notification.
71
- # @param exception_binding [Binding] the binding of where the exception is being notified.
72
- # @return [true, false] if an exception has been successfully notified.
73
- def notify_exception(exception, message: nil, context: {}, exception_binding: nil)
74
- if config.exception_notifier
75
- begin
76
- message = message.presence || exception.message
77
- config.exception_notifier.call(exception, message, context, exception_binding)
78
- true
79
- rescue => e
80
- config.logger.tagged(self.class) { |l| l.error("ExceptionNotifier failed to notify of exception=#{ exception.inspect } message=#{ message.inspect } context=#{ context.inspect }") }
81
- false
82
- end
83
- else
84
- false
85
- end
86
- end
87
73
  end
88
74
  end
89
75
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twilio-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin McPhillips
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2023-09-04 00:00:00.000000000 Z
10
+ date: 2025-02-21 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rails
@@ -164,6 +163,20 @@ dependencies:
164
163
  - - ">="
165
164
  - !ruby/object:Gem::Version
166
165
  version: '0'
166
+ - !ruby/object:Gem::Dependency
167
+ name: standardrb
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ type: :development
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
167
180
  description: A Rails engine that provides the framework to build complex phone interactions
168
181
  using the Twilio API.
169
182
  email:
@@ -201,6 +214,7 @@ files:
201
214
  - app/operations/twilio/rails/phone/twiml/base_operation.rb
202
215
  - app/operations/twilio/rails/phone/twiml/error_operation.rb
203
216
  - app/operations/twilio/rails/phone/twiml/greeting_operation.rb
217
+ - app/operations/twilio/rails/phone/twiml/invalid_phone_number_operation.rb
204
218
  - app/operations/twilio/rails/phone/twiml/prompt_operation.rb
205
219
  - app/operations/twilio/rails/phone/twiml/prompt_response_operation.rb
206
220
  - app/operations/twilio/rails/phone/twiml/request_validation_failure_operation.rb
@@ -255,6 +269,8 @@ files:
255
269
  - lib/twilio/rails/phone/tree.rb
256
270
  - lib/twilio/rails/phone/tree_macros.rb
257
271
  - lib/twilio/rails/phone_number.rb
272
+ - lib/twilio/rails/phone_number_formatter.rb
273
+ - lib/twilio/rails/phone_number_formatter/north_america.rb
258
274
  - lib/twilio/rails/railtie.rb
259
275
  - lib/twilio/rails/sms.rb
260
276
  - lib/twilio/rails/sms/delegated_responder.rb
@@ -269,7 +285,6 @@ metadata:
269
285
  changelog_uri: https://github.com/kmcphillips/twilio-rails/blob/main/CHANGELOG.md
270
286
  documentation_uri: https://rubydoc.info/gems/twilio-rails
271
287
  rubygems_mfa_required: 'true'
272
- post_install_message:
273
288
  rdoc_options: []
274
289
  require_paths:
275
290
  - lib
@@ -284,8 +299,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
284
299
  - !ruby/object:Gem::Version
285
300
  version: '0'
286
301
  requirements: []
287
- rubygems_version: 3.4.12
288
- signing_key:
302
+ rubygems_version: 3.6.2
289
303
  specification_version: 4
290
304
  summary: A framework for building rich phone interactions in Rails using Twilio.
291
305
  test_files: []