lita-twilio-texter 0.1.0
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.
- checksums.yaml +7 -0
- data/.DS_Store +0 -0
- data/.gitignore +21 -0
- data/.tool-versions +1 -0
- data/.travis.yml +8 -0
- data/Gemfile +3 -0
- data/README.md +22 -0
- data/Rakefile +6 -0
- data/lib/.DS_Store +0 -0
- data/lib/lita-twilio-texter.rb +12 -0
- data/lib/lita/.DS_Store +0 -0
- data/lib/lita/handlers/twilio_texter.rb +42 -0
- data/lita-twilio-texter.gemspec +27 -0
- data/locales/en.yml +4 -0
- data/spec/lita/handlers/twilio_texter_spec.rb +35 -0
- data/spec/spec_helper.rb +14 -0
- data/templates/.gitkeep +0 -0
- metadata +193 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 501824c17b08845e7d08d883d36e776efbbe81d4
|
4
|
+
data.tar.gz: 2521a26adffdc9b25e03a13ee99c5d9d2044e2a0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3e2c05f893273c0e171d0f2fa654bce9c4efdebf716e1d46a8ca4ac6e5182b43ad947aca62e00a74dfb453b69f76ab49c91e5f28280c3c860828018caa8c188e
|
7
|
+
data.tar.gz: 0035fbd78531c7943452bca13a04eb6765939439838757ae81f7ea2cab564080be4642c46614ca1ccce800ad1523a61a82c94e1c6fad95f012511595e3d2586b
|
data/.DS_Store
ADDED
Binary file
|
data/.gitignore
ADDED
data/.tool-versions
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby 2.3.1
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# lita-twilio-texter
|
2
|
+
|
3
|
+
[](https://travis-ci.org/dpritchett/lita-twilio-texter)
|
4
|
+
[](https://coveralls.io/r/dpritchett/lita-twilio-texter)
|
5
|
+
|
6
|
+
TODO: Add a description of the plugin.
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
Add lita-twilio-texter to your Lita instance's Gemfile:
|
11
|
+
|
12
|
+
``` ruby
|
13
|
+
gem "lita-twilio-texter"
|
14
|
+
```
|
15
|
+
|
16
|
+
## Configuration
|
17
|
+
|
18
|
+
TODO: Describe any configuration attributes the plugin exposes.
|
19
|
+
|
20
|
+
## Usage
|
21
|
+
|
22
|
+
TODO: Describe the plugin's features and how to use them.
|
data/Rakefile
ADDED
data/lib/.DS_Store
ADDED
Binary file
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require "lita"
|
2
|
+
|
3
|
+
Lita.load_locales Dir[File.expand_path(
|
4
|
+
File.join("..", "..", "locales", "*.yml"), __FILE__
|
5
|
+
)]
|
6
|
+
|
7
|
+
require "lita/handlers/twilio_texter"
|
8
|
+
|
9
|
+
Lita::Handlers::TwilioTexter.template_root File.expand_path(
|
10
|
+
File.join("..", "..", "templates"),
|
11
|
+
__FILE__
|
12
|
+
)
|
data/lib/lita/.DS_Store
ADDED
Binary file
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'twilio-ruby'
|
2
|
+
require 'pry'
|
3
|
+
|
4
|
+
module Lita
|
5
|
+
module Handlers
|
6
|
+
class TwilioTexter < Handler
|
7
|
+
Lita.register_handler(self)
|
8
|
+
|
9
|
+
route /^text\s+(\d+)\s+(.+)$/i,
|
10
|
+
:send_text,
|
11
|
+
command: true,
|
12
|
+
help: { 'text 12135551234 hi mom' => 'texts "hi mom" to a fake number in California' }
|
13
|
+
|
14
|
+
def client
|
15
|
+
@_client ||= Twilio::REST::Client.new(
|
16
|
+
ENV.fetch('TWILIO_ACCOUNT_SID'),
|
17
|
+
ENV.fetch('TWILIO_AUTH_TOKEN')
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
def send_from_number
|
22
|
+
client.incoming_phone_numbers.page.first.phone_number
|
23
|
+
end
|
24
|
+
|
25
|
+
def send_text(message)
|
26
|
+
_, to, body = message.match_data.to_a
|
27
|
+
results = send_twilio_sms(to: to, body: body)
|
28
|
+
|
29
|
+
message.reply "Sent message to #{to}"
|
30
|
+
end
|
31
|
+
|
32
|
+
def send_twilio_sms(to:, body:)
|
33
|
+
response = client.api.account.messages.create(
|
34
|
+
from: send_from_number,
|
35
|
+
to: to,
|
36
|
+
body: body
|
37
|
+
)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = "lita-twilio-texter"
|
3
|
+
spec.version = "0.1.0"
|
4
|
+
spec.authors = ["Daniel J. Pritchett"]
|
5
|
+
spec.email = ["dpritchett@gmail.com"]
|
6
|
+
spec.description = "Lita skill for sending SMSes via Twilio API"
|
7
|
+
spec.summary = "Lita skill for sending SMSes via Twilio API"
|
8
|
+
spec.homepage = "https://github.com/spritchett/lita-twilio-texter"
|
9
|
+
spec.license = "MIT"
|
10
|
+
spec.metadata = { "lita_plugin_type" => "handler" }
|
11
|
+
|
12
|
+
spec.files = `git ls-files`.split($/)
|
13
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
14
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
15
|
+
spec.require_paths = ["lib"]
|
16
|
+
|
17
|
+
spec.add_runtime_dependency "lita", ">= 4.7"
|
18
|
+
spec.add_runtime_dependency 'twilio-ruby', '~> 5.5'
|
19
|
+
|
20
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
21
|
+
spec.add_development_dependency "pry-byebug"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
spec.add_development_dependency "rack-test"
|
24
|
+
spec.add_development_dependency "rspec", ">= 3.0.0"
|
25
|
+
spec.add_development_dependency "simplecov"
|
26
|
+
spec.add_development_dependency "coveralls"
|
27
|
+
end
|
data/locales/en.yml
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Lita::Handlers::TwilioTexter, lita_handler: true do
|
4
|
+
let(:robot) { Lita::Robot.new(registry) }
|
5
|
+
|
6
|
+
subject { described_class.new(robot) }
|
7
|
+
|
8
|
+
describe ':text' do
|
9
|
+
it { is_expected.to route("Lita text 12134441234 hi mom") }
|
10
|
+
it { is_expected.to_not route("Lita text hi mom") }
|
11
|
+
|
12
|
+
it 'sends texts' do
|
13
|
+
send_message 'Lita text 19016052970 hey daniel'
|
14
|
+
expect(replies.last).to eq('Sent message to 19016052970')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe ':client' do
|
19
|
+
it 'should return a logged-in Twilio client' do
|
20
|
+
clt = subject.client
|
21
|
+
expect(clt.account_sid.empty?).to be_falsey
|
22
|
+
expect(clt.auth_token.empty?).to be_falsey
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# dependent on my area code, naturally
|
27
|
+
describe ':send_from_number' do
|
28
|
+
it 'should return a Memphis-area phone number' do
|
29
|
+
number = subject.send_from_number
|
30
|
+
expect(number.start_with?('+1901')).to be_truthy
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require "simplecov"
|
2
|
+
require "coveralls"
|
3
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
4
|
+
SimpleCov::Formatter::HTMLFormatter,
|
5
|
+
Coveralls::SimpleCov::Formatter
|
6
|
+
]
|
7
|
+
SimpleCov.start { add_filter "/spec/" }
|
8
|
+
|
9
|
+
require "lita-twilio-texter"
|
10
|
+
require "lita/rspec"
|
11
|
+
|
12
|
+
# A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
|
13
|
+
# was generated with Lita 4, the compatibility mode should be left disabled.
|
14
|
+
Lita.version_3_compatibility_mode = false
|
data/templates/.gitkeep
ADDED
File without changes
|
metadata
ADDED
@@ -0,0 +1,193 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lita-twilio-texter
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Daniel J. Pritchett
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-11-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: lita
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.7'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: twilio-ruby
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '5.5'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '5.5'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.3'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry-byebug
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rack-test
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 3.0.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 3.0.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: simplecov
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: coveralls
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
description: Lita skill for sending SMSes via Twilio API
|
140
|
+
email:
|
141
|
+
- dpritchett@gmail.com
|
142
|
+
executables: []
|
143
|
+
extensions: []
|
144
|
+
extra_rdoc_files: []
|
145
|
+
files:
|
146
|
+
- ".DS_Store"
|
147
|
+
- ".gitignore"
|
148
|
+
- ".tool-versions"
|
149
|
+
- ".travis.yml"
|
150
|
+
- Gemfile
|
151
|
+
- README.md
|
152
|
+
- Rakefile
|
153
|
+
- lib/.DS_Store
|
154
|
+
- lib/lita-twilio-texter.rb
|
155
|
+
- lib/lita/.DS_Store
|
156
|
+
- lib/lita/handlers/twilio_texter.rb
|
157
|
+
- lita-twilio-texter.gemspec
|
158
|
+
- locales/en.yml
|
159
|
+
- spec/.spec_helper.rb.swp
|
160
|
+
- spec/lita/handlers/.twilio_texter_spec.rb.swp
|
161
|
+
- spec/lita/handlers/twilio_texter_spec.rb
|
162
|
+
- spec/spec_helper.rb
|
163
|
+
- templates/.gitkeep
|
164
|
+
homepage: https://github.com/spritchett/lita-twilio-texter
|
165
|
+
licenses:
|
166
|
+
- MIT
|
167
|
+
metadata:
|
168
|
+
lita_plugin_type: handler
|
169
|
+
post_install_message:
|
170
|
+
rdoc_options: []
|
171
|
+
require_paths:
|
172
|
+
- lib
|
173
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
174
|
+
requirements:
|
175
|
+
- - ">="
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '0'
|
178
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
|
+
requirements:
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0'
|
183
|
+
requirements: []
|
184
|
+
rubyforge_project:
|
185
|
+
rubygems_version: 2.5.1
|
186
|
+
signing_key:
|
187
|
+
specification_version: 4
|
188
|
+
summary: Lita skill for sending SMSes via Twilio API
|
189
|
+
test_files:
|
190
|
+
- spec/.spec_helper.rb.swp
|
191
|
+
- spec/lita/handlers/.twilio_texter_spec.rb.swp
|
192
|
+
- spec/lita/handlers/twilio_texter_spec.rb
|
193
|
+
- spec/spec_helper.rb
|