lita-ship-to-pastebin 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.rspec +1 -0
- data/lib/lita/handlers/bigtext.rb +32 -0
- data/lib/lita-bigtext.rb +12 -0
- data/lita-ship-to-pastebin.gemspec +17 -16
- data/spec/lita/extensions/ship_to_pastebin_spec.rb +5 -2
- data/spec/lita/handlers/bigtext_spec.rb +26 -0
- data/spec/spec_helper.rb +20 -2
- metadata +21 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c47e3044d282045679ec73fc387bfdb8794faf1a
|
4
|
+
data.tar.gz: 439b816a12a815f98ffb007465f48247c98fdef0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af83e2c38fbbc7f7500f5c6ba47465395be4319cbe113eefe4ae8af2db881e028855617f8b4a22d05f293eecd97919be616e84721bc49fe25bcba823345c39a9
|
7
|
+
data.tar.gz: 64e75e91ec78f44951c61da576a141bc102fd80d1b72753ce6e771bac818e3c39bbbc2f36bc2b4cbd2d598b742b973e10747c1c2e78c8f0e9de0d141b540aabb
|
data/.gitignore
CHANGED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--format=doc
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'lita-ship-to-pastebin'
|
2
|
+
|
3
|
+
module Lita
|
4
|
+
module Handlers
|
5
|
+
class Bigtext < Handler
|
6
|
+
Lita.register_handler(self)
|
7
|
+
|
8
|
+
# START:snip
|
9
|
+
route(/^bigtext/i,
|
10
|
+
:hide_bigtext,
|
11
|
+
command: true,
|
12
|
+
help: {
|
13
|
+
'bigtext' => 'gimme a wall of text hidden behind a pastebin URL'
|
14
|
+
})
|
15
|
+
|
16
|
+
def hide_bigtext(message)
|
17
|
+
message.reply longtext
|
18
|
+
end
|
19
|
+
|
20
|
+
def snip_text(text)
|
21
|
+
Lita::Extensions::ShipToPastebin.new.save_to_pastebin(text)
|
22
|
+
end
|
23
|
+
|
24
|
+
def longtext
|
25
|
+
(1..100).each.map do
|
26
|
+
%w[able baker charlie delta echo alpha bravo hawaii].sample
|
27
|
+
end.join(' ')
|
28
|
+
end
|
29
|
+
# END:snip
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/lita-bigtext.rb
ADDED
@@ -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/bigtext"
|
8
|
+
|
9
|
+
Lita::Handlers::Bigtext.template_root File.expand_path(
|
10
|
+
File.join("..", "..", "templates"),
|
11
|
+
__FILE__
|
12
|
+
)
|
@@ -1,24 +1,25 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
|
-
spec.name =
|
3
|
-
spec.version =
|
4
|
-
spec.authors = [
|
5
|
-
spec.email = [
|
6
|
-
spec.description =
|
7
|
-
spec.summary =
|
8
|
-
spec.homepage =
|
9
|
-
spec.license =
|
10
|
-
spec.metadata = {
|
2
|
+
spec.name = 'lita-ship-to-pastebin'
|
3
|
+
spec.version = '0.1.4'
|
4
|
+
spec.authors = ['Daniel J. Pritchett']
|
5
|
+
spec.email = ['dpritchett@gmail.com']
|
6
|
+
spec.description = 'Expose helper method to pastebin-ify any input text'
|
7
|
+
spec.summary = 'Expose helper method to pastebin-ify any input text'
|
8
|
+
spec.homepage = 'https://github.com/dpritchett/lita-ship-to-pastebin'
|
9
|
+
spec.license = 'MIT'
|
10
|
+
spec.metadata = { 'lita_plugin_type' => 'extension' }
|
11
11
|
|
12
12
|
spec.files = `git ls-files`.split($/)
|
13
13
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
14
14
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
15
|
-
spec.require_paths = [
|
15
|
+
spec.require_paths = ['lib']
|
16
16
|
|
17
|
-
spec.add_runtime_dependency
|
17
|
+
spec.add_runtime_dependency 'lita', '>= 4.7'
|
18
18
|
|
19
|
-
spec.add_development_dependency
|
20
|
-
spec.add_development_dependency
|
21
|
-
spec.add_development_dependency
|
22
|
-
spec.add_development_dependency
|
23
|
-
spec.add_development_dependency
|
19
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
20
|
+
spec.add_development_dependency 'pry-byebug'
|
21
|
+
spec.add_development_dependency 'rake'
|
22
|
+
spec.add_development_dependency 'rack-test'
|
23
|
+
spec.add_development_dependency 'rspec', '>= 3.0.0'
|
24
|
+
spec.add_development_dependency 'webmock', '~> 3.3'
|
24
25
|
end
|
@@ -1,10 +1,13 @@
|
|
1
|
-
require
|
1
|
+
require 'webmock/rspec'
|
2
|
+
require 'spec_helper'
|
2
3
|
|
3
4
|
describe Lita::Extensions::ShipToPastebin, lita: true do
|
4
5
|
subject { Lita::Extensions::ShipToPastebin.new }
|
5
6
|
|
7
|
+
before { stub_pastebin_calls! }
|
8
|
+
|
6
9
|
it 'saves text to pastebin' do
|
7
10
|
actual = subject.save_to_pastebin 'hey john', title: 'hey there john'
|
8
|
-
expect(actual).to
|
11
|
+
expect(actual).to include('https://pastebin.com/')
|
9
12
|
end
|
10
13
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Lita::Handlers::Bigtext, lita_handler: true do
|
4
|
+
let(:robot) { Lita::Robot.new(registry) }
|
5
|
+
let(:response) { double('response') }
|
6
|
+
|
7
|
+
before { stub_pastebin_calls! }
|
8
|
+
|
9
|
+
context 'managing walls of text' do
|
10
|
+
let(:longtext) { subject.longtext }
|
11
|
+
|
12
|
+
it 'should generate a lot of words on demand' do
|
13
|
+
expect(longtext.length > 512).to be_truthy
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should leverage the pastebin extension' do
|
17
|
+
result = subject.snip_text(longtext)
|
18
|
+
|
19
|
+
# only one phrase, not 100 words
|
20
|
+
expect(result.split.length > 10).to be_falsey
|
21
|
+
|
22
|
+
# stubbing out Faraday calls to hide from Pastebin API limits
|
23
|
+
expect(result).to include('https://pastebin.com/')
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,24 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'lita-bigtext'
|
2
|
+
require 'lita/rspec'
|
3
3
|
|
4
4
|
# A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
|
5
5
|
# was generated with Lita 4, the compatibility mode should be left disabled.
|
6
6
|
Lita.version_3_compatibility_mode = false
|
7
|
+
|
8
|
+
# call me in a before block anywhere you're calling pastebin!
|
9
|
+
# This will save you from fairly low-overhead API limits.
|
10
|
+
def stub_pastebin_calls!
|
11
|
+
stub_request(:post, 'https://pastebin.com/api/api_post.php')
|
12
|
+
.with(body: {
|
13
|
+
'api_dev_key' => /[a-f0-9]+/,
|
14
|
+
'api_option' => 'paste',
|
15
|
+
'api_paste_code' => /\W+/,
|
16
|
+
'api_paste_name' => /\W+/ },
|
17
|
+
headers: {
|
18
|
+
'Accept' => '*/*',
|
19
|
+
'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
20
|
+
'Content-Type' => 'application/x-www-form-urlencoded',
|
21
|
+
'User-Agent' => 'Faraday v0.15.0'
|
22
|
+
})
|
23
|
+
.to_return(status: 200, body: 'https://pastebin.com/6ig4DLUQ', headers: {})
|
24
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-ship-to-pastebin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Pritchett
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-04-
|
11
|
+
date: 2018-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 3.0.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: webmock
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.3'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '3.3'
|
97
111
|
description: Expose helper method to pastebin-ify any input text
|
98
112
|
email:
|
99
113
|
- dpritchett@gmail.com
|
@@ -102,16 +116,20 @@ extensions: []
|
|
102
116
|
extra_rdoc_files: []
|
103
117
|
files:
|
104
118
|
- ".gitignore"
|
119
|
+
- ".rspec"
|
105
120
|
- ".travis.yml"
|
106
121
|
- Gemfile
|
107
122
|
- LICENSE
|
108
123
|
- README.md
|
109
124
|
- Rakefile
|
125
|
+
- lib/lita-bigtext.rb
|
110
126
|
- lib/lita-ship-to-pastebin.rb
|
111
127
|
- lib/lita/extensions/ship_to_pastebin.rb
|
128
|
+
- lib/lita/handlers/bigtext.rb
|
112
129
|
- lita-ship-to-pastebin.gemspec
|
113
130
|
- locales/en.yml
|
114
131
|
- spec/lita/extensions/ship_to_pastebin_spec.rb
|
132
|
+
- spec/lita/handlers/bigtext_spec.rb
|
115
133
|
- spec/spec_helper.rb
|
116
134
|
homepage: https://github.com/dpritchett/lita-ship-to-pastebin
|
117
135
|
licenses:
|
@@ -140,4 +158,5 @@ specification_version: 4
|
|
140
158
|
summary: Expose helper method to pastebin-ify any input text
|
141
159
|
test_files:
|
142
160
|
- spec/lita/extensions/ship_to_pastebin_spec.rb
|
161
|
+
- spec/lita/handlers/bigtext_spec.rb
|
143
162
|
- spec/spec_helper.rb
|