remind101 0.0.1

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.
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