lita-gitter 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: