remind101 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - jruby-19mode
6
+ script: bundle exec rake
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in remind101.gemspec
4
+ gemspec
5
+
6
+ group :development do
7
+ gem 'guard-rspec', '~> 3.0'
8
+ end
data/Guardfile ADDED
@@ -0,0 +1,11 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'rspec', all_on_start: false, all_after_pass: false do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch('spec/spec_helper.rb') { "spec" }
7
+
8
+ watch(%r{^lib/remind101/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
9
+ watch(%r{^lib/remind101/(.+)\.rb$}) { |m| "spec/remind101/client_spec.rb" }
10
+ watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
11
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Eric J. Holmes
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,92 @@
1
+ # Remind101
2
+
3
+ [![Build Status](https://magnum.travis-ci.com/remind101/remind101.rb.png?token=Uca1q7og621AjpUDJUEC)](https://magnum.travis-ci.com/remind101/remind101.rb)
4
+
5
+ A thin Ruby client for the Remind101 API.
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'remind101'
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ```ruby
18
+ remind101 = Remind101::Client.new(auth_token: 'token')
19
+ ```
20
+
21
+ ### classes
22
+
23
+ Returns an `Array` of `Hashie::Mash`'s for all the classes for the currently
24
+ logged in user.
25
+
26
+ ```ruby
27
+ remind101.classes
28
+ # => [{ ... }]
29
+ ```
30
+
31
+ ### create\_class
32
+
33
+ Creates the class and returns a `Hashie::Mash`.
34
+
35
+ ```ruby
36
+ remind101.create_class name: 'Math 101'
37
+ ```
38
+
39
+ ### destroy\_class
40
+
41
+ Destroys the class with the given `id`.
42
+
43
+ ```ruby
44
+ remind101.destroy_class 1234
45
+ ```
46
+
47
+ ### messages
48
+
49
+ Returns an `Array` of `Hashie::Mash`'s for all the messages for the currently
50
+ logged in user.
51
+
52
+ ```ruby
53
+ remind101.messages
54
+ # => [{ ... }]
55
+ ```
56
+
57
+ ### send\_message
58
+
59
+ Send a new message to all subscribers of the given class. Returns a
60
+ `Hashie::Mash` for the created message.
61
+
62
+ ```ruby
63
+ remind101.send_message body: 'Be ready for the test tomorrow!', group_ids: [1234]
64
+ # => { id: 4321, body: 'Be ready for the test tomorrow!' }
65
+ ```
66
+
67
+ ### cancel\_message
68
+
69
+ Attempts to destroy (cancel) a message.
70
+
71
+ ```ruby
72
+ remind101.cancel_message 4321
73
+ # => true
74
+ ```
75
+
76
+ ### subscribers
77
+
78
+ Returns an `Array` of `Hashie::Mash`'s for all the subscribers of the given
79
+ class.
80
+
81
+ ```ruby
82
+ remind101.subscribers 1234
83
+ # => [{ ... }]
84
+ ```
85
+
86
+ ## Contributing
87
+
88
+ 1. Fork it
89
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
90
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
91
+ 4. Push to the branch (`git push origin my-new-feature`)
92
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+
4
+ task :default => [:spec]
5
+
6
+ require 'rspec/core/rake_task'
7
+ desc "Run specs"
8
+ RSpec::Core::RakeTask.new do |t|
9
+ t.pattern = 'spec/**/*_spec.rb'
10
+ end
@@ -0,0 +1,17 @@
1
+ module Remind101::Client::Classes
2
+ extend Remind101::Client::Rescuable
3
+
4
+ def classes
5
+ api_get('/classes').body
6
+ end
7
+
8
+ def create_class!(hash)
9
+ api_post('/classes', group: hash).body
10
+ end
11
+ def_rescued :create_class, :create_class!
12
+
13
+ def destroy_class!(class_id)
14
+ api_delete("/classes/#{class_id}").body
15
+ end
16
+ def_rescued :destroy_class, :destroy_class!
17
+ end
@@ -0,0 +1,59 @@
1
+ module Remind101::Client::Connection
2
+
3
+ %w[get post put patch delete options head].each do |method|
4
+ define_method method do |*args, &block|
5
+ connection.__send__ method, *args, &block
6
+ end
7
+
8
+ define_method :"api_#{method}" do |path, *args, &block|
9
+ __send__ method, api_path(path), *args, &block
10
+ end
11
+ end
12
+
13
+ # Public: The Faraday::Builder instance used for the middleware stack. This
14
+ # can be used to insert a custom middleware.
15
+ #
16
+ # Examples
17
+ #
18
+ # # Add the instrumentation middleware for Rails.
19
+ # client.middleware.use FaradayMiddleware::Instrumentation
20
+ #
21
+ # Returns the Faraday::Builder for the Faraday connection.
22
+ def middleware
23
+ connection.builder
24
+ end
25
+ alias_method :builder, :middleware
26
+
27
+ private
28
+
29
+ def api_path(path)
30
+ "/#{configuration.version}#{path}"
31
+ end
32
+
33
+ # Internal: Internal faraday connection where all requests go through
34
+ def connection
35
+ @connection ||= Faraday.new(configuration.endpoint) do |builder|
36
+ # Raise exceptions for HTTP error status's
37
+ builder.use Remind101::Middleware::RaiseError
38
+ # Add auth_token to query string.
39
+ builder.request :oauth2, auth_token, param_name: 'auth_token'
40
+ # Turn the response into a Hashie::Mash.
41
+ builder.response :mashify
42
+ # Parse ISO 8601 dates.
43
+ builder.use FaradayMiddleware::ParseDates
44
+ # Converts the request into JSON.
45
+ builder.request :json
46
+ # Parses returned JSON response into a hash.
47
+ builder.response :json, content_type: /\bjson$/
48
+ # Follows 30x redirects.
49
+ builder.response :follow_redirects
50
+
51
+ builder.adapter configuration.adapter
52
+ end
53
+ end
54
+
55
+ def configuration
56
+ Remind101.configuration
57
+ end
58
+
59
+ end
@@ -0,0 +1,21 @@
1
+ module Remind101::Client::Messages
2
+ extend Remind101::Client::Rescuable
3
+
4
+ def messages
5
+ api_get('/messages').body
6
+ end
7
+
8
+ def create_message!(hash)
9
+ api_post('/messages', message: hash).body
10
+ end
11
+ def_rescued :create_message, :create_message!
12
+ alias_method :send_message!, :create_message!
13
+ alias_method :send_message, :create_message
14
+
15
+ def destroy_message!(message_id)
16
+ api_delete("/messages/#{message_id}").body
17
+ end
18
+ def_rescued :destroy_message, :destroy_message!
19
+ alias_method :cancel_message!, :destroy_message!
20
+ alias_method :cancel_message, :destroy_message
21
+ end
@@ -0,0 +1,27 @@
1
+ module Remind101::Client::Rescuable
2
+
3
+ # Internal: Defines a version of the method that will be rescued from
4
+ # ClientError's
5
+ #
6
+ # Example
7
+ #
8
+ # def my_method!
9
+ # raise Remind101::Error::ClientError
10
+ # end
11
+ # def_rescued :my_method, :my_method!
12
+ #
13
+ # my_method
14
+ # # => false
15
+ #
16
+ # Returns nothing.
17
+ def def_rescued(new, original)
18
+ define_method new do |*args, &block|
19
+ begin
20
+ __send__ original, *args, &block
21
+ rescue Remind101::Error::ClientError
22
+ false
23
+ end
24
+ end
25
+ end
26
+
27
+ end
@@ -0,0 +1,5 @@
1
+ module Remind101::Client::Subscribers
2
+ def subscribers(class_id)
3
+ api_get("/classes/#{class_id}/subscribers").body
4
+ end
5
+ end
@@ -0,0 +1,27 @@
1
+ module Remind101
2
+ class Client
3
+ require 'remind101/client/rescuable'
4
+ require 'remind101/client/connection'
5
+ require 'remind101/client/classes'
6
+ require 'remind101/client/messages'
7
+ require 'remind101/client/subscribers'
8
+
9
+ include Connection
10
+ include Classes
11
+ include Messages
12
+ include Subscribers
13
+
14
+ attr_reader :options
15
+
16
+ def initialize(options = {})
17
+ @options = options
18
+ yield middleware if block_given?
19
+ end
20
+
21
+ private
22
+
23
+ def auth_token
24
+ options[:auth_token]
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,19 @@
1
+ module Remind101
2
+ class Configuration
3
+ attr_accessor :endpoint
4
+ attr_accessor :adapter
5
+ attr_accessor :version
6
+
7
+ def endpoint
8
+ @endpoint ||= 'https://api.remind101.com'
9
+ end
10
+
11
+ def adapter
12
+ @adapter ||= Faraday.default_adapter
13
+ end
14
+
15
+ def version
16
+ @version ||= 'v2'
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ module Remind101
2
+ module Error
3
+ # White label faraday's errors.
4
+ Faraday::Error.constants.each do |const|
5
+ const_set(const, Faraday::Error.const_get(const))
6
+ end
7
+
8
+ BadInput = Class.new(ClientError)
9
+ ValidationError = Class.new(ClientError)
10
+ end
11
+ end
@@ -0,0 +1,27 @@
1
+ module Remind101
2
+ module Middleware
3
+ class RaiseError < Faraday::Response::Middleware
4
+ ClientErrorStatuses = 401...600
5
+
6
+ def on_complete(env)
7
+ case env[:status]
8
+ when 400
9
+ raise Remind101::Error::BadInput, response_values(env)
10
+ when 404
11
+ raise Remind101::Error::ResourceNotFound, response_values(env)
12
+ when 422
13
+ raise Remind101::Error::ValidationError, response_values(env)
14
+ when 407
15
+ # mimic the behavior that we get with proxy requests with HTTPS
16
+ raise Remind101::Error::ConnectionFailed, %{407 "Proxy Authentication Required "}
17
+ when ClientErrorStatuses
18
+ raise Remind101::Error::ClientError, response_values(env)
19
+ end
20
+ end
21
+
22
+ def response_values(env)
23
+ Hashie::Mash.new status: env[:status], headers: env[:response_headers], body: env[:body]
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,3 @@
1
+ module Remind101
2
+ VERSION = "0.0.1"
3
+ end
data/lib/remind101.rb ADDED
@@ -0,0 +1,40 @@
1
+ require 'remind101/version'
2
+
3
+ require 'faraday'
4
+ require 'faraday_middleware'
5
+ require 'hashie'
6
+
7
+ require 'remind101/error'
8
+
9
+ module Remind101
10
+ autoload :Configuration, 'remind101/configuration'
11
+ autoload :Client, 'remind101/client'
12
+
13
+ module Middleware
14
+ autoload :RaiseError, 'remind101/middleware/raise_error'
15
+ end
16
+
17
+ class << self
18
+
19
+ # Public: The configuration object.
20
+ #
21
+ # Returns a memoized Remind101::Configuration instance.
22
+ def configuration
23
+ @configuration ||= Configuration.new
24
+ end
25
+
26
+ # Public: Used to set global configuration.
27
+ #
28
+ # Example
29
+ #
30
+ # Remind101.configure do |config|
31
+ # config.endpoint = 'http://localhost:5000'
32
+ # end
33
+ #
34
+ # Yields Remind101.configuration.
35
+ def configure
36
+ yield configuration
37
+ end
38
+
39
+ end
40
+ end
data/remind101.gemspec ADDED
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'remind101/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'remind101'
8
+ spec.version = Remind101::VERSION
9
+ spec.authors = ['Eric J. Holmes']
10
+ spec.email = ['eric@ejholmes.net']
11
+ spec.description = %q{Ruby client for the Remind101 API.}
12
+ spec.summary = %q{Ruby client for the Remind101 API.}
13
+ spec.homepage = 'https://github.com/remind101/remind101.rb'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_dependency 'faraday', '~> 0.8'
22
+ spec.add_dependency 'faraday_middleware', '~> 0.9'
23
+ spec.add_dependency 'hashie', ['>= 1.2', '< 2.1']
24
+
25
+ spec.add_development_dependency 'bundler', '~> 1.3'
26
+ spec.add_development_dependency 'rspec', '~> 2.14'
27
+ spec.add_development_dependency 'simplecov', '~> 0.7'
28
+ spec.add_development_dependency 'webmock', '~> 1.13'
29
+ spec.add_development_dependency 'rake'
30
+ end
@@ -0,0 +1,63 @@
1
+ require 'spec_helper'
2
+
3
+ describe Remind101::Client do
4
+ let(:class_id ) { 1234 }
5
+ let(:message_id) { 4321 }
6
+ let(:client ) { described_class.new }
7
+
8
+ describe '#classes' do
9
+ before { stub_request(:get, 'https://api.remind101.com/v2/classes') }
10
+
11
+ it 'gets the classes' do
12
+ client.classes
13
+ end
14
+ end
15
+
16
+ describe '#create_class' do
17
+ before { stub_request(:post, 'https://api.remind101.com/v2/classes') }
18
+
19
+ it 'creates the class' do
20
+ client.create_class name: 'Math 101'
21
+ end
22
+ end
23
+
24
+ describe '#destroy_class' do
25
+ before { stub_request(:delete, "https://api.remind101.com/v2/classes/#{class_id}") }
26
+
27
+ it 'destroys the class' do
28
+ client.destroy_class class_id
29
+ end
30
+ end
31
+
32
+ describe '#messages' do
33
+ before { stub_request(:get, 'https://api.remind101.com/v2/messages') }
34
+
35
+ it 'gets the messages' do
36
+ client.messages
37
+ end
38
+ end
39
+
40
+ describe '#create_message' do
41
+ before { stub_request(:post, 'https://api.remind101.com/v2/messages') }
42
+
43
+ it 'creates the message' do
44
+ client.create_message body: "There's a test tomorrow!", group_ids: [class_id]
45
+ end
46
+ end
47
+
48
+ describe '#destroy_message' do
49
+ before { stub_request(:delete, "https://api.remind101.com/v2/messages/#{message_id}") }
50
+
51
+ it 'destroys the message' do
52
+ client.destroy_message message_id
53
+ end
54
+ end
55
+
56
+ describe '#subscribers' do
57
+ before { stub_request(:get, "https://api.remind101.com/v2/classes/#{class_id}/subscribers") }
58
+
59
+ it 'gets the subscribers' do
60
+ client.subscribers(class_id)
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe Remind101 do
4
+
5
+ end
@@ -0,0 +1,13 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
4
+ require 'bundler/setup'
5
+ Bundler.require :default, :test
6
+
7
+ require 'webmock/rspec'
8
+
9
+ WebMock.disable_net_connect!
10
+
11
+ # Requires supporting ruby files with custom matchers and macros, etc,
12
+ # in spec/support/ and its subdirectories.
13
+ Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each {|f| require f}
metadata ADDED
@@ -0,0 +1,212 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: remind101
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Eric J. Holmes
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-08-16 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: faraday
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '0.8'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '0.8'
30
+ - !ruby/object:Gem::Dependency
31
+ name: faraday_middleware
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '0.9'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '0.9'
46
+ - !ruby/object:Gem::Dependency
47
+ name: hashie
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '1.2'
54
+ - - <
55
+ - !ruby/object:Gem::Version
56
+ version: '2.1'
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '1.2'
65
+ - - <
66
+ - !ruby/object:Gem::Version
67
+ version: '2.1'
68
+ - !ruby/object:Gem::Dependency
69
+ name: bundler
70
+ requirement: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '1.3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ none: false
80
+ requirements:
81
+ - - ~>
82
+ - !ruby/object:Gem::Version
83
+ version: '1.3'
84
+ - !ruby/object:Gem::Dependency
85
+ name: rspec
86
+ requirement: !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ~>
90
+ - !ruby/object:Gem::Version
91
+ version: '2.14'
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ~>
98
+ - !ruby/object:Gem::Version
99
+ version: '2.14'
100
+ - !ruby/object:Gem::Dependency
101
+ name: simplecov
102
+ requirement: !ruby/object:Gem::Requirement
103
+ none: false
104
+ requirements:
105
+ - - ~>
106
+ - !ruby/object:Gem::Version
107
+ version: '0.7'
108
+ type: :development
109
+ prerelease: false
110
+ version_requirements: !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ~>
114
+ - !ruby/object:Gem::Version
115
+ version: '0.7'
116
+ - !ruby/object:Gem::Dependency
117
+ name: webmock
118
+ requirement: !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - ~>
122
+ - !ruby/object:Gem::Version
123
+ version: '1.13'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: '1.13'
132
+ - !ruby/object:Gem::Dependency
133
+ name: rake
134
+ requirement: !ruby/object:Gem::Requirement
135
+ none: false
136
+ requirements:
137
+ - - ! '>='
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ type: :development
141
+ prerelease: false
142
+ version_requirements: !ruby/object:Gem::Requirement
143
+ none: false
144
+ requirements:
145
+ - - ! '>='
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ description: Ruby client for the Remind101 API.
149
+ email:
150
+ - eric@ejholmes.net
151
+ executables: []
152
+ extensions: []
153
+ extra_rdoc_files: []
154
+ files:
155
+ - .gitignore
156
+ - .rspec
157
+ - .travis.yml
158
+ - Gemfile
159
+ - Guardfile
160
+ - LICENSE.txt
161
+ - README.md
162
+ - Rakefile
163
+ - lib/remind101.rb
164
+ - lib/remind101/client.rb
165
+ - lib/remind101/client/classes.rb
166
+ - lib/remind101/client/connection.rb
167
+ - lib/remind101/client/messages.rb
168
+ - lib/remind101/client/rescuable.rb
169
+ - lib/remind101/client/subscribers.rb
170
+ - lib/remind101/configuration.rb
171
+ - lib/remind101/error.rb
172
+ - lib/remind101/middleware/raise_error.rb
173
+ - lib/remind101/version.rb
174
+ - remind101.gemspec
175
+ - spec/remind101/client_spec.rb
176
+ - spec/remind101_spec.rb
177
+ - spec/spec_helper.rb
178
+ homepage: https://github.com/remind101/remind101.rb
179
+ licenses:
180
+ - MIT
181
+ post_install_message:
182
+ rdoc_options: []
183
+ require_paths:
184
+ - lib
185
+ required_ruby_version: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ! '>='
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ segments:
192
+ - 0
193
+ hash: -779571737398577944
194
+ required_rubygems_version: !ruby/object:Gem::Requirement
195
+ none: false
196
+ requirements:
197
+ - - ! '>='
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ segments:
201
+ - 0
202
+ hash: -779571737398577944
203
+ requirements: []
204
+ rubyforge_project:
205
+ rubygems_version: 1.8.23
206
+ signing_key:
207
+ specification_version: 3
208
+ summary: Ruby client for the Remind101 API.
209
+ test_files:
210
+ - spec/remind101/client_spec.rb
211
+ - spec/remind101_spec.rb
212
+ - spec/spec_helper.rb