lita-gitter 0.1.2

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 66f3aa4caa6c09f2a1dc6a7063228b2b4c0b96ba
4
+ data.tar.gz: abf0bd06003286fd922c5b8d9aff6ef65b2dc0cd
5
+ SHA512:
6
+ metadata.gz: f0e23aeb356b9d214c021965a7e1918b814bb93eca30a9e05e70dc8760a37e18e7953f81f2b45349104e5708744fffa5940b214b28f31d32ef0a7f99cad6bfed
7
+ data.tar.gz: a8a05a3e59dc007c03d2540d56a2cbdb012e0c58a0b1cd88e18ae5ea94e621353002d00b4cda656a63c823b32441f2a66d2fb483ee588b85e938f0d69f586256
@@ -0,0 +1,35 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /test/tmp/
9
+ /test/version_tmp/
10
+ /tmp/
11
+
12
+ ## Specific to RubyMotion:
13
+ .dat*
14
+ .repl_history
15
+ build/
16
+
17
+ ## Documentation cache and generated files:
18
+ /.yardoc/
19
+ /_yardoc/
20
+ /doc/
21
+ /rdoc/
22
+
23
+ ## Environment normalisation:
24
+ /.bundle/
25
+ /vendor/bundle
26
+ /lib/bundler/man/
27
+
28
+ # for a library or gem, you might want to ignore these files since the code is
29
+ # intended to run in multiple environments; otherwise, check them in:
30
+ /Gemfile.lock
31
+ /.ruby-version
32
+ /.ruby-gemset
33
+
34
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
35
+ .rvmrc
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
@@ -0,0 +1,15 @@
1
+ AllCops:
2
+ Exclude:
3
+ - vendor/**/*
4
+
5
+ Style/AndOr:
6
+ Enabled: false
7
+
8
+ Style/TrailingComma:
9
+ Enabled: false
10
+
11
+ Metrics/LineLength:
12
+ Max: 120
13
+
14
+ AbcSize/MethodLength:
15
+ Enabled: false
@@ -0,0 +1,10 @@
1
+ require 'coveralls'
2
+
3
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
4
+ SimpleCov::Formatter::HTMLFormatter,
5
+ Coveralls::SimpleCov::Formatter,
6
+ ]
7
+
8
+ SimpleCov.start do
9
+ add_filter '/spec/'
10
+ end
@@ -0,0 +1,14 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 2.0.0
5
+ - 2.1
6
+ - 2.2
7
+
8
+ script: bundle exec rake
9
+
10
+ before_install:
11
+ - gem update --system
12
+
13
+ services:
14
+ - redis-server
@@ -0,0 +1,5 @@
1
+ --protected
2
+ --private
3
+ --markup markdown
4
+ -
5
+ LICENSE
@@ -0,0 +1,44 @@
1
+ # Change Log
2
+
3
+ ## [v0.1.2](https://github.com/braiden-vasco/lita-gitter/tree/v0.1.2) (2015-10-23)
4
+ [Full Changelog](https://github.com/braiden-vasco/lita-gitter/compare/v0.1.1...v0.1.2)
5
+
6
+ **Merged pull requests:**
7
+
8
+ - Fix gem [\#24](https://github.com/braiden-vasco/lita-gitter/pull/24) ([braiden-vasco](https://github.com/braiden-vasco))
9
+ - Don't use version label [\#23](https://github.com/braiden-vasco/lita-gitter/pull/23) ([braiden-vasco](https://github.com/braiden-vasco))
10
+
11
+ ## [v0.1.1](https://github.com/braiden-vasco/lita-gitter/tree/v0.1.1) (2015-09-09)
12
+ [Full Changelog](https://github.com/braiden-vasco/lita-gitter/compare/v0.1.0...v0.1.1)
13
+
14
+ **Closed issues:**
15
+
16
+ - Change handler of chunks [\#19](https://github.com/braiden-vasco/lita-gitter/issues/19)
17
+
18
+ **Merged pull requests:**
19
+
20
+ - Improved parser and added some specs [\#20](https://github.com/braiden-vasco/lita-gitter/pull/20) ([brodock](https://github.com/brodock))
21
+ - Use YARD again [\#17](https://github.com/braiden-vasco/lita-gitter/pull/17) ([braiden-vasco](https://github.com/braiden-vasco))
22
+ - Remove open-ended dependencies [\#16](https://github.com/braiden-vasco/lita-gitter/pull/16) ([braiden-vasco](https://github.com/braiden-vasco))
23
+ - Move development dependencies to gemspec [\#15](https://github.com/braiden-vasco/lita-gitter/pull/15) ([braiden-vasco](https://github.com/braiden-vasco))
24
+ - Remove unnecessary dependencies [\#14](https://github.com/braiden-vasco/lita-gitter/pull/14) ([braiden-vasco](https://github.com/braiden-vasco))
25
+ - Test with multiple versions of Ruby [\#13](https://github.com/braiden-vasco/lita-gitter/pull/13) ([braiden-vasco](https://github.com/braiden-vasco))
26
+
27
+ ## [v0.1.0](https://github.com/braiden-vasco/lita-gitter/tree/v0.1.0) (2015-06-20)
28
+ **Merged pull requests:**
29
+
30
+ - Add instructions [\#11](https://github.com/braiden-vasco/lita-gitter/pull/11) ([braiden-vasco](https://github.com/braiden-vasco))
31
+ - Basic implementation [\#10](https://github.com/braiden-vasco/lita-gitter/pull/10) ([braiden-vasco](https://github.com/braiden-vasco))
32
+ - Add changelog generator [\#9](https://github.com/braiden-vasco/lita-gitter/pull/9) ([braiden-vasco](https://github.com/braiden-vasco))
33
+ - Initialize Lita adapter [\#8](https://github.com/braiden-vasco/lita-gitter/pull/8) ([braiden-vasco](https://github.com/braiden-vasco))
34
+ - Use YARD [\#7](https://github.com/braiden-vasco/lita-gitter/pull/7) ([braiden-vasco](https://github.com/braiden-vasco))
35
+ - Configure Coveralls [\#6](https://github.com/braiden-vasco/lita-gitter/pull/6) ([braiden-vasco](https://github.com/braiden-vasco))
36
+ - Configure Travis CI [\#5](https://github.com/braiden-vasco/lita-gitter/pull/5) ([braiden-vasco](https://github.com/braiden-vasco))
37
+ - Add README [\#4](https://github.com/braiden-vasco/lita-gitter/pull/4) ([braiden-vasco](https://github.com/braiden-vasco))
38
+ - Configure testing [\#3](https://github.com/braiden-vasco/lita-gitter/pull/3) ([braiden-vasco](https://github.com/braiden-vasco))
39
+ - Configure linting [\#2](https://github.com/braiden-vasco/lita-gitter/pull/2) ([braiden-vasco](https://github.com/braiden-vasco))
40
+ - Initialize gem [\#1](https://github.com/braiden-vasco/lita-gitter/pull/1) ([braiden-vasco](https://github.com/braiden-vasco))
41
+
42
+
43
+
44
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in lita-gitter.gemspec
4
+ gemspec
5
+
6
+ gem 'coveralls', require: false
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Braiden Vasco
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
@@ -0,0 +1,59 @@
1
+ Lita::Adapters::Gitter
2
+ ======================
3
+
4
+ [![Gem Version](https://badge.fury.io/rb/lita-gitter.svg)](http://badge.fury.io/rb/lita-gitter)
5
+ [![Build Status](https://travis-ci.org/braiden-vasco/lita-gitter.svg)](https://travis-ci.org/braiden-vasco/lita-gitter)
6
+ [![Coverage Status](https://coveralls.io/repos/braiden-vasco/lita-gitter/badge.svg)](https://coveralls.io/r/braiden-vasco/lita-gitter)
7
+
8
+ [Gitter](https://gitter.im) adapter for the [Lita](http://lita.io) chat bot.
9
+
10
+ Usage
11
+ -----
12
+
13
+ At first, see the documentation for Lita: http://docs.lita.io/
14
+
15
+ ### Installation
16
+
17
+ Add **lita-gitter** to your Lita instance's Gemfile:
18
+
19
+ ```ruby
20
+ gem 'lita-gitter', '~> 0.1.2'
21
+ ```
22
+
23
+ ### Preparation
24
+
25
+ Go to https://developer.gitter.im/apps, sign in if you are not already
26
+ signed in, and remember your token.
27
+
28
+ Then type in terminal (replace `$LITA_GITTER_TOKEN` with your token):
29
+
30
+ ```
31
+ $ curl https://gitter.im/api/v1/rooms \
32
+ -H "Accept: application/json" \
33
+ -H "Authorization: Bearer $LITA_GITTER_TOKEN"
34
+ ```
35
+
36
+ Find needed room by it's name and remember room ID which precedes room name.
37
+
38
+ ### Configuration
39
+
40
+ #### Required attributes
41
+
42
+ - `token` (String) - Secret token of Gitter user
43
+ - `room_id` (String) - Room ID
44
+
45
+ #### Example
46
+
47
+ This is an example `lita_config.rb` file:
48
+
49
+ ```ruby
50
+ Lita.configure do |config|
51
+ config.robot.name = 'Lita'
52
+ config.robot.mention_name = 'lita'
53
+
54
+ config.robot.adapter = :gitter
55
+
56
+ config.adapters.gitter.token = 'LpMMyGbceCbUNl4ldRHfzjzb9a48F5WZYbgtBWoi'
57
+ config.adapters.gitter.room_id = 'Q5cjBQ9BwrNdK0JcicI9AYbL'
58
+ end
59
+ ```
@@ -0,0 +1,31 @@
1
+ require 'rubygems'
2
+
3
+ gemspec = Gem::Specification.load('lita-gitter.gemspec')
4
+
5
+ github_user, github_project =
6
+ gemspec.homepage.scan(%r{^https://github\.com/([^/]+)/([^/]+)/?$})[0]
7
+
8
+ require 'bundler/gem_tasks'
9
+
10
+ task default: [:spec, :lint]
11
+
12
+ require 'rspec/core/rake_task'
13
+ RSpec::Core::RakeTask.new
14
+
15
+ task lint: [:rubocop]
16
+
17
+ require 'rubocop/rake_task'
18
+ RuboCop::RakeTask.new
19
+
20
+ require 'yard'
21
+ YARD::Rake::YardocTask.new
22
+
23
+ desc 'Generate changelog'
24
+ task :changelog, [:token] do |_t, args|
25
+ cmd = 'github_changelog_generator'
26
+ cmd << " -u #{github_user}"
27
+ cmd << " -p #{github_project}"
28
+ cmd << " -t #{args[:token]}" if args[:token]
29
+
30
+ sh cmd
31
+ end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'lita/gitter'
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require 'irb'
14
+ IRB.start
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,10 @@
1
+ # rubocop:disable Style/FileName
2
+
3
+ require 'lita'
4
+
5
+ Lita.load_locales Dir[File.expand_path(
6
+ File.join('..', '..', 'locales', '*.yml'), __FILE__
7
+ )]
8
+
9
+ require 'lita/adapters/gitter'
10
+ require 'lita/adapters/gitter/connection'
@@ -0,0 +1,48 @@
1
+ ##
2
+ # Lita module.
3
+ #
4
+ module Lita
5
+ ##
6
+ # Lita adapters module.
7
+ #
8
+ module Adapters
9
+ ##
10
+ # Gitter adapter for the Lita chat bot.
11
+ #
12
+ class Gitter < Adapter
13
+ config :token, type: String, required: true
14
+ config :room_id, type: String, required: true
15
+
16
+ attr_reader :connection
17
+
18
+ # Delegates main loop execution to Connection Adapter
19
+ #
20
+ def run
21
+ return if connection
22
+
23
+ @connection = Connection.new(robot, config)
24
+ connection.run
25
+ end
26
+
27
+ # Sends one or more messages to a user or room.
28
+ #
29
+ # @param target [Lita::Source] The user or room to send messages to.
30
+ # @param messages [Array<String>] An array of messages to send.
31
+ #
32
+ def send_messages(target, messages)
33
+ messages.reject(&:empty?).each do |message|
34
+ connection.send_message(target, message)
35
+ end
36
+ end
37
+
38
+ def shut_down
39
+ return unless connection
40
+
41
+ connection.shut_down
42
+ robot.trigger(:disconnected)
43
+ end
44
+ end
45
+
46
+ Lita.register_adapter(:gitter, Gitter)
47
+ end
48
+ end
@@ -0,0 +1,155 @@
1
+ require 'em-http'
2
+ require 'json'
3
+ require 'net/http'
4
+
5
+ module Lita
6
+ module Adapters
7
+ class Gitter < Adapter
8
+ ##
9
+ # Connection adapter to RestAPI and Stream API
10
+ #
11
+ class Connection
12
+ attr_reader :robot
13
+ attr_reader :config
14
+
15
+ def initialize(robot, config)
16
+ @robot = robot
17
+ @config = config
18
+ end
19
+
20
+ # The main loop. Listens for incoming messages,
21
+ # creates {Lita::Message} objects from them,
22
+ # and dispatches them to the robot.
23
+ #
24
+ def run
25
+ EventMachine.run do
26
+ log.debug("Connecting to Gitter Stream API (room: #{config.room_id}).")
27
+
28
+ buffer = ''
29
+ start_request.stream do |chunk|
30
+ body = buffer + chunk
31
+
32
+ # Keep alive packet, ignore!
33
+ next if body.strip.empty?
34
+
35
+ if body.end_with?("}\n")
36
+ # End of chunk, let's process it!
37
+ received = body.dup
38
+ buffer = ''
39
+
40
+ EM.defer { parse(received) }
41
+ else
42
+ # Chunk too big, buffering!
43
+ buffer = body
44
+ end
45
+ end
46
+ end
47
+ end
48
+
49
+ # Sends one message to a user or room.
50
+ #
51
+ # @param target [Lita::Source] The user or room to send message to.
52
+ # @param text [String] Messages to send.
53
+ #
54
+ def send_message(_target, text) # rubocop:disable Metrics/AbcSize
55
+ url = "https://api.gitter.im/v1/rooms/#{config.room_id}/chatMessages"
56
+ uri = URI.parse(url)
57
+
58
+ Net::HTTP.start(
59
+ uri.host,
60
+ uri.port,
61
+ use_ssl: true,
62
+ verify_mode: OpenSSL::SSL::VERIFY_NONE,
63
+ ) do |http|
64
+ request = Net::HTTP::Post.new(uri.path)
65
+ request.add_field('Content-Type', 'application/json')
66
+ request.add_field('Accept', 'application/json')
67
+ request.add_field('Authorization', "Bearer #{config.token}")
68
+ request.body = { 'text' => text }.to_json
69
+ response = http.request(request)
70
+
71
+ @user_id = MultiJson.load(response.body)['fromUser']['id']
72
+ end
73
+ end
74
+
75
+ # Shutdown connection
76
+ #
77
+ def shut_down
78
+ log.debug('Closing connection to Gitter Stream API.') if http
79
+
80
+ EM.stop if EM.reactor_running?
81
+ end
82
+
83
+ private
84
+
85
+ # Parse received message
86
+ #
87
+ # @param text [String] Received body content.
88
+ #
89
+ def parse(body)
90
+ response = MultiJson.load(body)
91
+
92
+ text = response['text']
93
+ from_id = response['fromUser']['id']
94
+ room_id = config.room_id
95
+
96
+ get_message(text, from_id, room_id)
97
+
98
+ rescue MultiJson::ParseError => e
99
+ log.error "Failed to decode: #{body.inspect} - #{e}"
100
+ end
101
+
102
+ # Handle new message
103
+ #
104
+ # @param text [String] Message text.
105
+ # @param from_id [String] ID of user who sent this message.
106
+ # @param room_id [String] Room ID.
107
+ #
108
+ def get_message(text, from_id, room_id)
109
+ user = User.new(from_id)
110
+ source = Source.new(user: user, room: room_id)
111
+ message = Message.new(robot, text, source)
112
+
113
+ return if from_id == @user_id
114
+
115
+ message.command!
116
+ robot.receive(message)
117
+ end
118
+
119
+ # Helper method to access Lita logger
120
+ #
121
+ def log
122
+ Lita.logger
123
+ end
124
+
125
+ # HTTP Request initializer
126
+ #
127
+ def http
128
+ @http ||= EventMachine::HttpRequest.new(
129
+ stream_url,
130
+ keepalive: true,
131
+ connect_timeout: 0,
132
+ inactivity_timeout: 0,
133
+ )
134
+ end
135
+
136
+ def start_request
137
+ http.get(
138
+ head: {
139
+ 'Accept' => 'application/json',
140
+ 'Authorization' => "Bearer #{config.token}",
141
+ }
142
+ )
143
+ end
144
+
145
+ # Stream URL for configured Room
146
+ #
147
+ # @return [String] stream url
148
+ #
149
+ def stream_url
150
+ "https://stream.gitter.im/v1/rooms/#{@config.room_id}/chatMessages"
151
+ end
152
+ end
153
+ end
154
+ end
155
+ end
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = 'lita-gitter'
5
+ spec.version = '0.1.2'
6
+ spec.authors = ['Braiden Vasco', 'Gabriel Mazetto']
7
+ spec.email = ['braiden-vasco@mailtor.net', 'brodock@gmail.com']
8
+
9
+ spec.summary = 'Gitter adapter for the Lita chat bot'
10
+ spec.description = 'Gitter adapter for the Lita chat bot.'
11
+ spec.homepage = 'https://github.com/braiden-vasco/lita-gitter'
12
+ spec.license = 'MIT'
13
+
14
+ spec.respond_to?(:metadata) and
15
+ spec.metadata['lita_plugin_type'] = 'adapter'
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
20
+
21
+ spec.bindir = 'exe'
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.require_paths = ['lib']
24
+
25
+ spec.add_development_dependency 'bundler', '~> 1.7'
26
+ spec.add_development_dependency 'rake', '~> 10.0'
27
+ spec.add_development_dependency 'github_changelog_generator', '~> 1.6'
28
+ spec.add_development_dependency 'yard', '~> 0.8'
29
+ spec.add_development_dependency 'redcarpet', '~> 3.3'
30
+ spec.add_development_dependency 'rubocop', '~> 0.31'
31
+ spec.add_development_dependency 'rspec', '~> 3.3'
32
+ spec.add_development_dependency 'simplecov', '~> 0.10'
33
+
34
+ spec.add_runtime_dependency 'lita', '~> 4.4'
35
+ spec.add_runtime_dependency 'em-http-request', '~> 1.1'
36
+ spec.add_runtime_dependency 'multi_json'
37
+ end
@@ -0,0 +1,4 @@
1
+ en:
2
+ lita:
3
+ adapters:
4
+ gitter:
metadata ADDED
@@ -0,0 +1,220 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lita-gitter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ platform: ruby
6
+ authors:
7
+ - Braiden Vasco
8
+ - Gabriel Mazetto
9
+ autorequire:
10
+ bindir: exe
11
+ cert_chain: []
12
+ date: 2015-10-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.7'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.7'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '10.0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '10.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: github_changelog_generator
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.6'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.6'
56
+ - !ruby/object:Gem::Dependency
57
+ name: yard
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.8'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.8'
70
+ - !ruby/object:Gem::Dependency
71
+ name: redcarpet
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '3.3'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '3.3'
84
+ - !ruby/object:Gem::Dependency
85
+ name: rubocop
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '0.31'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '0.31'
98
+ - !ruby/object:Gem::Dependency
99
+ name: rspec
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '3.3'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '3.3'
112
+ - !ruby/object:Gem::Dependency
113
+ name: simplecov
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '0.10'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '0.10'
126
+ - !ruby/object:Gem::Dependency
127
+ name: lita
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '4.4'
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '4.4'
140
+ - !ruby/object:Gem::Dependency
141
+ name: em-http-request
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '1.1'
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '1.1'
154
+ - !ruby/object:Gem::Dependency
155
+ name: multi_json
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ type: :runtime
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ description: Gitter adapter for the Lita chat bot.
169
+ email:
170
+ - braiden-vasco@mailtor.net
171
+ - brodock@gmail.com
172
+ executables: []
173
+ extensions: []
174
+ extra_rdoc_files: []
175
+ files:
176
+ - ".gitignore"
177
+ - ".rspec"
178
+ - ".rubocop.yml"
179
+ - ".simplecov"
180
+ - ".travis.yml"
181
+ - ".yardopts"
182
+ - CHANGELOG.md
183
+ - Gemfile
184
+ - LICENSE
185
+ - README.md
186
+ - Rakefile
187
+ - bin/console
188
+ - bin/setup
189
+ - lib/lita-gitter.rb
190
+ - lib/lita/adapters/gitter.rb
191
+ - lib/lita/adapters/gitter/connection.rb
192
+ - lita-gitter.gemspec
193
+ - locales/en.yml
194
+ homepage: https://github.com/braiden-vasco/lita-gitter
195
+ licenses:
196
+ - MIT
197
+ metadata:
198
+ lita_plugin_type: adapter
199
+ post_install_message:
200
+ rdoc_options: []
201
+ require_paths:
202
+ - lib
203
+ required_ruby_version: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ required_rubygems_version: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
213
+ requirements: []
214
+ rubyforge_project:
215
+ rubygems_version: 2.4.8
216
+ signing_key:
217
+ specification_version: 4
218
+ summary: Gitter adapter for the Lita chat bot
219
+ test_files: []
220
+ has_rdoc: