lita-campfire 0.2.1 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c211f86c982dcebd59e43f4d0b60f8f1582069ad
4
- data.tar.gz: 939f1560531422690bac92a37c4331c18811d00c
3
+ metadata.gz: 0f48672b5bfe54bea05b3c96fca48d4766d80c72
4
+ data.tar.gz: 7312e56bbcd14406afb6f929f805d735c79a2019
5
5
  SHA512:
6
- metadata.gz: c62eefacfbcb724757faa05f3322861086355048f88ad532b6525b33c94659ed9a1fd7c64ac23706337e7638a9f15ba5963f81f1d63776ab267e72178043e6b6
7
- data.tar.gz: 06bb18566587a2c6b51daaa738205446735abf52c175165634f3b3f79f88dee4d89cacc208839e629df003c2fc771d97a0a2737e16c56a43d58c56a3dec6d593
6
+ metadata.gz: ac6aa09ea87963f92d5eb22e6edc968f7c5ff4a3bfbad1e2e142cb24f27b5d5794fa3dad5054093c1d38a663a98b7180a222cd316703f66e33e9e82e9e858850
7
+ data.tar.gz: 2366dea862aea4d8dcf3b367a6f33110a2934820bab30d6088aff5211e1ea03e306d99d3be8f1611fd507c3c8dddea9c95de204a5e652c51937575ece051e0c9
@@ -1,8 +1,14 @@
1
1
  module Lita
2
2
  module Adapters
3
3
  class Campfire < Adapter
4
- require_configs :subdomain, :apikey, :rooms
5
- OPTIONAL_CONFIG_OPTIONS = %i(debug tinder_options)
4
+ namespace 'campfire'
5
+
6
+ config :subdomain, type: String, required: true
7
+ config :apikey, type: String, required: true
8
+ config :rooms, type: Array, required: true
9
+
10
+ config :debug, type: [TrueClass, FalseClass], default: false
11
+ config :tinder_options, type: Hash, default: {}
6
12
 
7
13
  attr_reader :connector
8
14
 
@@ -13,10 +19,10 @@ module Lita
13
19
  subdomain: config.subdomain,
14
20
  apikey: config.apikey,
15
21
  rooms: rooms,
22
+ debug: config.debug,
23
+ tinder_options: config.tinder_options
16
24
  }
17
25
 
18
- options.merge!(optional_config_options)
19
-
20
26
  @connector = Connector.new(
21
27
  robot,
22
28
  options
@@ -46,7 +52,7 @@ module Lita
46
52
  private
47
53
 
48
54
  def config
49
- Lita.config.adapter
55
+ Lita.config.adapters.campfire
50
56
  end
51
57
 
52
58
  def rooms
@@ -56,15 +62,8 @@ module Lita
56
62
  def disconnect
57
63
  connector.disconnect
58
64
  end
59
-
60
- def optional_config_options
61
- OPTIONAL_CONFIG_OPTIONS.each_with_object({}) do |config_option, options|
62
- config_option_value = config.public_send(config_option)
63
- options[config_option] = config_option_value if config_option_value
64
- end
65
- end
66
65
  end
67
66
 
68
67
  Lita.register_adapter(:campfire, Campfire)
69
68
  end
70
- end
69
+ end
@@ -38,6 +38,8 @@ module Lita
38
38
  messages.each do |message|
39
39
  if message.include?("\n")
40
40
  my_room.paste message
41
+ elsif message.start_with?("/play ")
42
+ my_room.play message.sub("/play ", "")
41
43
  else
42
44
  my_room.speak message
43
45
  end
@@ -69,4 +71,4 @@ module Lita
69
71
  end
70
72
  end
71
73
  end
72
- end
74
+ end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'lita-campfire'
3
- spec.version = '0.2.1'
3
+ spec.version = '0.3.0'
4
4
  spec.authors = ['Jose Luis Salas', 'Zac Stewart']
5
5
  spec.email = ['josacar@gmail.com', 'zgstewart@gmail.com']
6
6
  spec.description = %q{A Campfire adapter for Lita.}
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.require_paths = ['lib']
15
15
  spec.metadata = { 'lita_plugin_type' => 'adapter' }
16
16
 
17
- spec.add_runtime_dependency 'lita', '>= 2.7.0', '< 4.0.0'
17
+ spec.add_runtime_dependency 'lita', '>= 4.0.0'
18
18
  spec.add_runtime_dependency 'tinder', '~> 1.10.0'
19
19
 
20
20
  spec.add_development_dependency 'bundler', '~> 1.6'
@@ -106,6 +106,15 @@ describe Campfire::Connector, lita: true do
106
106
  subject.send_messages room, [ message ]
107
107
  end
108
108
  end
109
+
110
+ context 'with a sound' do
111
+ let(:message) { "/play yeah" }
112
+
113
+ it 'plays a sound into room' do
114
+ expect(room).to receive(:play).with(message.sub("/play ",""))
115
+ subject.send_messages room, [ message ]
116
+ end
117
+ end
109
118
  end
110
119
 
111
120
  describe '#set_topic' do
@@ -2,10 +2,12 @@ require 'spec_helper'
2
2
 
3
3
  describe Lita::Adapters::Campfire, lita: true do
4
4
  before do
5
- Lita.configure do |config|
6
- config.adapter.subdomain = 'foodomain'
7
- config.adapter.apikey = 'fooapikey'
8
- config.adapter.rooms = ['fooroom']
5
+ registry.register_adapter(:campfire, described_class)
6
+
7
+ registry.configure do |config|
8
+ config.adapters.campfire.subdomain = 'foodomain'
9
+ config.adapters.campfire.apikey = 'fooapikey'
10
+ config.adapters.campfire.rooms = ['fooroom']
9
11
  end
10
12
 
11
13
  allow(described_class::Connector).to receive(:new).and_return(connector)
@@ -13,37 +15,21 @@ describe Lita::Adapters::Campfire, lita: true do
13
15
 
14
16
  subject { described_class.new(robot) }
15
17
 
16
- let(:robot) { instance_double(Lita::Robot) }
18
+ let(:robot) { Lita::Robot.new(registry) }
17
19
  let(:connector) { instance_double(Lita::Adapters::Campfire::Connector) }
18
20
 
19
21
  it "registers with Lita" do
20
22
  expect(Lita.adapters[:campfire]).to eql(described_class)
21
23
  end
22
24
 
23
- it "requires config.subdomain, config.apikey and config.rooms" do
24
- Lita.clear_config
25
- expect(Lita.logger).to receive(:fatal).with(/subdomain, apikey, rooms/)
26
- expect { subject }.to raise_error(SystemExit)
27
- end
28
-
29
- context 'passing optional variables' do
30
- optional_config = described_class::OPTIONAL_CONFIG_OPTIONS
31
- optional_config.each do |option|
32
- it "does not set #{option} hash value if option is not set" do
33
- expect(described_class::Connector).not_to receive(:new).with(robot, hash_including(option.to_sym))
34
- subject
35
- end
25
+ it 'can receive hash with tinder options' do
26
+ tinder_options = { timeout: 30, auto_reconnect: false }
27
+ Lita.configure do |config|
28
+ config.adapters.campfire.tinder_options = tinder_options
36
29
  end
37
30
 
38
- it 'can receive hash with tinder options' do
39
- tinder_options = { timeout: 30, auto_reconnect: false }
40
- Lita.configure do |config|
41
- config.adapter.tinder_options = tinder_options
42
- end
43
-
44
- expect(described_class::Connector).to receive(:new).with(robot, hash_including(:tinder_options => tinder_options))
45
- subject
46
- end
31
+ expect(described_class::Connector).to receive(:new).with(robot, hash_including(:tinder_options => tinder_options))
32
+ subject
47
33
  end
48
34
 
49
35
  describe '#run' do
@@ -105,4 +91,4 @@ describe Lita::Adapters::Campfire, lita: true do
105
91
  subject.shut_down
106
92
  end
107
93
  end
108
- end
94
+ end
@@ -11,5 +11,6 @@ end
11
11
 
12
12
  require "lita-campfire"
13
13
  require "lita/rspec"
14
+ Lita.version_3_compatibility_mode = false
14
15
 
15
16
  include Lita::Adapters
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-campfire
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jose Luis Salas
@@ -9,16 +9,13 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-08-09 00:00:00.000000000 Z
12
+ date: 2014-12-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: lita
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - ">="
19
- - !ruby/object:Gem::Version
20
- version: 2.7.0
21
- - - "<"
22
19
  - !ruby/object:Gem::Version
23
20
  version: 4.0.0
24
21
  type: :runtime
@@ -26,9 +23,6 @@ dependencies:
26
23
  version_requirements: !ruby/object:Gem::Requirement
27
24
  requirements:
28
25
  - - ">="
29
- - !ruby/object:Gem::Version
30
- version: 2.7.0
31
- - - "<"
32
26
  - !ruby/object:Gem::Version
33
27
  version: 4.0.0
34
28
  - !ruby/object:Gem::Dependency
@@ -126,7 +120,6 @@ files:
126
120
  - ".gitignore"
127
121
  - ".travis.yml"
128
122
  - Gemfile
129
- - Gemfile.lock
130
123
  - README.md
131
124
  - Rakefile
132
125
  - lib/lita-campfire.rb
@@ -160,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
153
  version: '0'
161
154
  requirements: []
162
155
  rubyforge_project:
163
- rubygems_version: 2.2.0
156
+ rubygems_version: 2.2.2
164
157
  signing_key:
165
158
  specification_version: 4
166
159
  summary: A Campfire adapter for the Lita chat robot.
@@ -1,106 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- lita-campfire (0.2.1)
5
- lita (>= 2.7.0, < 4.0.0)
6
- tinder (~> 1.10.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- coveralls (0.7.0)
12
- multi_json (~> 1.3)
13
- rest-client
14
- simplecov (>= 0.7)
15
- term-ansicolor
16
- thor
17
- diff-lcs (1.2.5)
18
- docile (1.1.5)
19
- eventmachine (1.0.3)
20
- faraday (0.9.0)
21
- multipart-post (>= 1.2, < 3)
22
- faraday_middleware (0.9.1)
23
- faraday (>= 0.7.4, < 0.10)
24
- hashie (2.1.2)
25
- http_parser.rb (0.5.3)
26
- http_router (0.11.1)
27
- rack (>= 1.0.0)
28
- url_mount (~> 0.2.1)
29
- i18n (0.6.11)
30
- ice_nine (0.11.0)
31
- json (1.8.1)
32
- lita (3.3.1)
33
- bundler (>= 1.3)
34
- faraday (>= 0.8.7)
35
- http_router (>= 0.11.1)
36
- i18n (>= 0.6.9)
37
- ice_nine (>= 0.11.0)
38
- multi_json (>= 1.7.7)
39
- puma (>= 2.7.1)
40
- rack (>= 1.5.2)
41
- rb-readline (>= 0.5.1)
42
- redis-namespace (>= 1.3.0)
43
- thor (>= 0.18.1)
44
- mime-types (2.3)
45
- multi_json (1.10.1)
46
- multipart-post (2.0.0)
47
- netrc (0.7.7)
48
- puma (2.9.0)
49
- rack (>= 1.1, < 2.0)
50
- rack (1.5.2)
51
- rake (10.3.2)
52
- rb-readline (0.5.1)
53
- redis (3.1.0)
54
- redis-namespace (1.5.1)
55
- redis (~> 3.0, >= 3.0.4)
56
- rest-client (1.7.2)
57
- mime-types (>= 1.16, < 3.0)
58
- netrc (~> 0.7)
59
- rspec (3.0.0)
60
- rspec-core (~> 3.0.0)
61
- rspec-expectations (~> 3.0.0)
62
- rspec-mocks (~> 3.0.0)
63
- rspec-core (3.0.3)
64
- rspec-support (~> 3.0.0)
65
- rspec-expectations (3.0.3)
66
- diff-lcs (>= 1.2.0, < 2.0)
67
- rspec-support (~> 3.0.0)
68
- rspec-mocks (3.0.3)
69
- rspec-support (~> 3.0.0)
70
- rspec-support (3.0.3)
71
- simple_oauth (0.1.9)
72
- simplecov (0.9.0)
73
- docile (~> 1.1.0)
74
- multi_json
75
- simplecov-html (~> 0.8.0)
76
- simplecov-html (0.8.0)
77
- term-ansicolor (1.3.0)
78
- tins (~> 1.0)
79
- thor (0.19.1)
80
- tinder (1.10.0)
81
- eventmachine (~> 1.0)
82
- faraday (~> 0.9.0)
83
- faraday_middleware (~> 0.9)
84
- hashie (>= 1.0, < 3)
85
- json (~> 1.8.0)
86
- mime-types
87
- multi_json (~> 1.7)
88
- twitter-stream (~> 0.1)
89
- tins (1.3.0)
90
- twitter-stream (0.1.16)
91
- eventmachine (>= 0.12.8)
92
- http_parser.rb (~> 0.5.1)
93
- simple_oauth (~> 0.1.4)
94
- url_mount (0.2.1)
95
- rack
96
-
97
- PLATFORMS
98
- ruby
99
-
100
- DEPENDENCIES
101
- bundler (~> 1.6)
102
- coveralls
103
- lita-campfire!
104
- rake
105
- rspec (~> 3.0)
106
- simplecov