groupme 0.0.1.pre → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.pryrc ADDED
@@ -0,0 +1 @@
1
+ require 'groupme'
data/.rspec ADDED
@@ -0,0 +1,4 @@
1
+ --color
2
+ #--fail-fast
3
+ --order random
4
+ --format documentation
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 1.9.2
5
+ - 1.8.7
6
+ - ree
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Groupme
1
+ # groupme [![Build Status](https://secure.travis-ci.org/dwradcliffe/groupme.png?branch=master)](https://travis-ci.org/dwradcliffe/groupme) [![Dependency Status](https://gemnasium.com/dwradcliffe/groupme.png)](https://gemnasium.com/dwradcliffe/groupme) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/dwradcliffe/groupme)
2
2
 
3
3
  Simple wrapper for the GroupMe v3 API.
4
4
 
@@ -16,6 +16,11 @@ Or install it yourself as:
16
16
 
17
17
  $ gem install groupme
18
18
 
19
+ ## Documentation
20
+ [http://rdoc.info/github/dwradcliffe/groupme][documentation]
21
+
22
+ [documentation]: http://rdoc.info/github/dwradcliffe/groupme
23
+
19
24
  ## Usage
20
25
 
21
26
  TODO: Write usage instructions here
data/Rakefile CHANGED
@@ -1 +1,18 @@
1
1
  require "bundler/gem_tasks"
2
+
3
+ require 'rspec/core/rake_task'
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :test => :spec
7
+ task :default => :spec
8
+
9
+ namespace :doc do
10
+ require 'yard'
11
+ YARD::Rake::YardocTask.new do |task|
12
+ task.files = ['README.md', 'LICENSE.md', 'lib/**/*.rb']
13
+ task.options = [
14
+ '--output-dir', 'doc/yard',
15
+ '--markup', 'markdown',
16
+ ]
17
+ end
18
+ end
data/groupme.gemspec CHANGED
@@ -5,7 +5,7 @@ require 'groupme/version'
5
5
 
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "groupme"
8
- gem.version = Groupme::VERSION
8
+ gem.version = GroupMe::VERSION
9
9
  gem.authors = ["David Radcliffe"]
10
10
  gem.email = ["radcliffe.david@gmail.com"]
11
11
  gem.description = %q{Simple wrapper for the GroupMe v3 API}
@@ -17,4 +17,18 @@ Gem::Specification.new do |gem|
17
17
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ["lib"]
20
+
21
+ gem.add_development_dependency 'rake'
22
+ gem.add_development_dependency 'rspec'
23
+ gem.add_development_dependency 'webmock'
24
+ gem.add_development_dependency 'yard'
25
+ gem.add_development_dependency 'redcarpet'
26
+ gem.add_development_dependency 'pry'
27
+ gem.add_development_dependency 'json', '~> 1.7'
28
+
29
+ gem.add_dependency 'faraday', '~> 0.8'
30
+ gem.add_dependency 'faraday_middleware', '~> 0.8'
31
+ gem.add_dependency 'hashie', '~> 1.2'
32
+ gem.add_dependency 'multi_json', '~> 1.3'
33
+ gem.add_dependency 'simple_oauth', '~> 0.1.6'
20
34
  end
data/lib/groupme.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  require "groupme/version"
2
+ require "groupme/client"
2
3
 
3
- module Groupme
4
+ module GroupMe
5
+ USER_AGENT = "dwradcliffe/groupme/#{GroupMe::VERSION}"
4
6
  end
@@ -0,0 +1,29 @@
1
+ module GroupMe
2
+ module Bots
3
+
4
+ # List the authenticated user's bots.
5
+ #
6
+ # @return [Array<Hashie::Mash>] Array of hashes representing bots.
7
+ # @see http://dev.groupme.com/docs/v3#bots_index
8
+ # @example
9
+ # client = GroupMe::Client.new
10
+ # client.bots
11
+ def bots
12
+ get("/bots")
13
+ end
14
+ alias :list_bots :bots
15
+
16
+ # Get a single bot.
17
+ #
18
+ # @return [Hashie::Mash] Hash representing the bot.
19
+ # @see http://dev.groupme.com/docs/v3#bots_show
20
+ # @example
21
+ # client = GroupMe::Client.new
22
+ # client.bot(32)
23
+ def bot(id)
24
+ get("/bots/#{id}")
25
+ end
26
+
27
+
28
+ end
29
+ end
@@ -0,0 +1,55 @@
1
+ require 'groupme/groups'
2
+ require 'groupme/members'
3
+ require 'groupme/bots'
4
+ require 'faraday_middleware'
5
+
6
+ module GroupMe
7
+ class Client
8
+
9
+ def initialize(options={})
10
+ @token = options[:token].to_s
11
+ raise ArgumentError, ":token can't be blank" if @token.empty?
12
+ end
13
+
14
+ include GroupMe::Groups
15
+ include GroupMe::Members
16
+ include GroupMe::Bots
17
+
18
+ private
19
+
20
+ def get(path)
21
+ request(:get, path)
22
+ end
23
+
24
+ def post(path, data)
25
+ request(:post, path, data)
26
+ end
27
+
28
+ def request(method, path, data={})
29
+ res = connection.send(method, "v3/#{path}", data)
30
+ if res.status == 200
31
+ return res.body.response
32
+ else
33
+ return res
34
+ end
35
+ end
36
+
37
+ # Returns a Faraday::Connection object
38
+ #
39
+ # @return [Faraday::Connection]
40
+ def connection
41
+ @connection ||= Faraday.new 'https://api.groupme.com/' do |f|
42
+ f.request :json
43
+ f.headers[:user_agent] = GroupMe::USER_AGENT
44
+ f.headers["X-Access-Token"] = @token
45
+
46
+ # f.response :logger
47
+ f.response :mashify
48
+ f.response :json, :content_type => /\bjson$/
49
+
50
+ f.adapter Faraday.default_adapter
51
+ end
52
+ end
53
+
54
+ end
55
+ end
@@ -0,0 +1,54 @@
1
+ module GroupMe
2
+ module Groups
3
+
4
+ # List the authenticated user's active groups.
5
+ #
6
+ # @return [Array<Hashie::Mash>] Array of hashes representing groups.
7
+ # @see http://dev.groupme.com/docs/v3#groups_index
8
+ # @example
9
+ # client = GroupMe::Client.new
10
+ # client.groups
11
+ def groups
12
+ get "/groups"
13
+ end
14
+ alias :list_groups :groups
15
+
16
+ # Load a specific group.
17
+ #
18
+ # @return [Hashie::Mash] Hash representing the group.
19
+ # @see http://dev.groupme.com/docs/v3#groups_show
20
+ # @param id [String, Integer] The ID of the group
21
+ # @example
22
+ # client = GroupMe::Client.new
23
+ # client.group(32)
24
+ def group(id)
25
+ get "/groups/#{id}"
26
+ end
27
+
28
+ # List the authenticated user's former groups.
29
+ #
30
+ # @return [Array<Hashie::Mash>] Array of hashes representing groups.
31
+ # @see http://dev.groupme.com/docs/v3#groups_index_former
32
+ # @example
33
+ # client = GroupMe::Client.new
34
+ # client.former_groups
35
+ def former_groups
36
+ get '/groups/former'
37
+ end
38
+ alias :list_former_groups :former_groups
39
+
40
+ # Create a new group.
41
+ #
42
+ # @return [Hashie::Mash] Hash representing the group
43
+ # @see
44
+ # @param name [String] Name for the new group
45
+ # @param options [Hash] Group information
46
+ # @option options [String] :description Description of the group
47
+ # @option options [String] :image Base64 JPEG or PNG data
48
+ def create_group(name, options={})
49
+ options.merge! :name => name
50
+ post '/groups', options
51
+ end
52
+
53
+ end
54
+ end
@@ -0,0 +1,35 @@
1
+ module GroupMe
2
+ module Members
3
+
4
+ # Add members to a group
5
+ #
6
+ # @return [Boolean] Success/Failure
7
+ # @see http://dev.groupme.com/docs/v3#members_add
8
+ # @param id [String, Integer] Id of the group
9
+ # @param members [Array<Hash>] Members to be added
10
+ # @option members [String] :nickname
11
+ # @option members [String] :user_id Existing user id
12
+ # @option members [String] :phone_number
13
+ # @option members [String] :email
14
+ # @option members [String] :guid
15
+ def add_members(id, members)
16
+ post("/groups/#{id}/members/add", members).status == 202
17
+ end
18
+
19
+ # Add member to a group
20
+ #
21
+ # @return [Boolean] Success/Failure
22
+ # @see http://dev.groupme.com/docs/v3#members_add
23
+ # @param id [String, Integer] Id of the group
24
+ # @param member [Hash] Member to be added
25
+ # @option member [String] :nickname
26
+ # @option member [String] :user_id Existing user id
27
+ # @option member [String] :phone_number
28
+ # @option member [String] :email
29
+ # @option member [String] :guid
30
+ def add_member(id, member)
31
+ post("/groups/#{id}/members/add", [member]).status == 202
32
+ end
33
+
34
+ end
35
+ end
@@ -1,3 +1,3 @@
1
- module Groupme
2
- VERSION = "0.0.1.pre"
1
+ module GroupMe
2
+ VERSION = "0.0.1"
3
3
  end
@@ -0,0 +1,6 @@
1
+ {
2
+ "bot_id": "1234567890",
3
+ "group_id": "1234567890",
4
+ "name": "hal9000",
5
+ "callback_url": "http://example.com/bots/callback"
6
+ }
@@ -0,0 +1,8 @@
1
+ [
2
+ {
3
+ "bot_id": "1234567890",
4
+ "group_id": "1234567890",
5
+ "name": "hal9000",
6
+ "callback_url": "http://example.com/bots/callback"
7
+ }
8
+ ]
@@ -0,0 +1,30 @@
1
+ [
2
+ {
3
+ "id": "1234567890",
4
+ "name": "Previous Family",
5
+ "type": "private",
6
+ "description": "Coolest Family Ever",
7
+ "image_url": "http://i.groupme.com/123456789.jpg",
8
+ "creator_user_id": "1234567890",
9
+ "created_at": 1302623328,
10
+ "updated_at": 1302623328,
11
+ "members": [
12
+ {
13
+ "user_id": "1234567890",
14
+ "nickname": "Jane",
15
+ "muted": false,
16
+ "image_url": "http://i.groupme.com/123456789.jpg"
17
+ }
18
+ ],
19
+ "messages": {
20
+ "count": 100,
21
+ "last_message_id": "1234567890",
22
+ "last_message_created_at": 1302623328,
23
+ "preview": {
24
+ "nickname": "Jane",
25
+ "text": "Hello world",
26
+ "image_url": "http://i.groupme.com/123456789.jpg"
27
+ }
28
+ }
29
+ }
30
+ ]
@@ -0,0 +1,28 @@
1
+ {
2
+ "id": "1234567890",
3
+ "name": "Family",
4
+ "type": "private",
5
+ "description": "Coolest Family Ever",
6
+ "image_url": "http://i.groupme.com/123456789.jpg",
7
+ "creator_user_id": "1234567890",
8
+ "created_at": 1302623328,
9
+ "updated_at": 1302623328,
10
+ "members": [
11
+ {
12
+ "user_id": "1234567890",
13
+ "nickname": "Jane",
14
+ "muted": false,
15
+ "image_url": "http://i.groupme.com/123456789.jpg"
16
+ }
17
+ ],
18
+ "messages": {
19
+ "count": 100,
20
+ "last_message_id": "1234567890",
21
+ "last_message_created_at": 1302623328,
22
+ "preview": {
23
+ "nickname": "Jane",
24
+ "text": "Hello world",
25
+ "image_url": "http://i.groupme.com/123456789.jpg"
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,30 @@
1
+ [
2
+ {
3
+ "id": "1234567890",
4
+ "name": "Family",
5
+ "type": "private",
6
+ "description": "Coolest Family Ever",
7
+ "image_url": "http://i.groupme.com/123456789.jpg",
8
+ "creator_user_id": "1234567890",
9
+ "created_at": 1302623328,
10
+ "updated_at": 1302623328,
11
+ "members": [
12
+ {
13
+ "user_id": "1234567890",
14
+ "nickname": "Jane",
15
+ "muted": false,
16
+ "image_url": "http://i.groupme.com/123456789.jpg"
17
+ }
18
+ ],
19
+ "messages": {
20
+ "count": 100,
21
+ "last_message_id": "1234567890",
22
+ "last_message_created_at": 1302623328,
23
+ "preview": {
24
+ "nickname": "Jane",
25
+ "text": "Hello world",
26
+ "image_url": "http://i.groupme.com/123456789.jpg"
27
+ }
28
+ }
29
+ }
30
+ ]
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe GroupMe::Bots do
4
+
5
+ before do
6
+ @client = GroupMe::Client.new(:token => "TEST")
7
+ end
8
+
9
+ describe ".bots" do
10
+
11
+ it "returns user's bots" do
12
+ stub_get("/bots").to_return(json_response("bots.json"))
13
+ bots = @client.bots
14
+ expect(bots.first.name).to eq("hal9000")
15
+ end
16
+
17
+ end
18
+
19
+ describe ".bot" do
20
+
21
+ it "returns the matching bot" do
22
+ stub_get("/bots/1234567890").to_return(json_response("bot.json"))
23
+ bot = @client.bot(1234567890)
24
+ expect(bot.name).to eq("hal9000")
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe GroupMe::Client do
4
+
5
+ it "requires an access token" do
6
+ expect{ GroupMe::Client.new }.to raise_error(ArgumentError)
7
+ end
8
+
9
+ end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+
3
+ describe GroupMe::Groups do
4
+
5
+ before do
6
+ @client = GroupMe::Client.new(:token => "TEST")
7
+ end
8
+
9
+ describe ".groups" do
10
+
11
+ it "returns user's groups" do
12
+ stub_get("/groups").to_return(json_response("groups.json"))
13
+ groups = @client.groups
14
+ expect(groups.first.name).to eq("Family")
15
+ end
16
+
17
+ end
18
+
19
+ describe ".group" do
20
+
21
+ it "returns the matching group" do
22
+ stub_get("/groups/1234567890").to_return(json_response("group.json"))
23
+ group = @client.group(1234567890)
24
+ expect(group.name).to eq("Family")
25
+ end
26
+
27
+ end
28
+
29
+ describe ".former_groups" do
30
+
31
+ it "returns user's former groups" do
32
+ stub_get("/groups/former").to_return(json_response("former_groups.json"))
33
+ groups = @client.former_groups
34
+ expect(groups.first.name).to eq("Previous Family")
35
+ end
36
+
37
+ end
38
+
39
+ describe ".create_group" do
40
+
41
+ it "creates a group" do
42
+ stub_post("/groups", {:name => "Family"}).to_return(json_response("group.json"))
43
+ group = @client.create_group("Family")
44
+ expect(group.name).to eq("Family")
45
+ end
46
+
47
+ end
48
+
49
+ end
@@ -0,0 +1,47 @@
1
+ require 'spec_helper'
2
+
3
+ describe GroupMe::Members do
4
+
5
+ before do
6
+ @client = GroupMe::Client.new(:token => "TEST")
7
+ end
8
+
9
+ describe ".add_member" do
10
+
11
+ it "adds a single member to a group" do
12
+ member = {
13
+ :nickname => "Mom",
14
+ :user_id => "1234567890",
15
+ :guid => "SOME_GUID"
16
+ }
17
+ stub_post("/groups/1/members/add", [member]).to_return(:status => 202)
18
+ response = @client.add_member(1, member)
19
+ expect(response).to eq(true)
20
+ end
21
+
22
+ end
23
+
24
+ describe ".add_members" do
25
+
26
+ it "adds a list of members to a group" do
27
+ members = [{
28
+ :nickname => "Mom",
29
+ :user_id => "1234567890",
30
+ :guid => "SOME_GUID"
31
+ },{
32
+ :nickname => "Dad",
33
+ :phone_number => "+1 2123001234",
34
+ :guid => "SOME_GUID"
35
+ },{
36
+ :nickname => "Jane",
37
+ :email => "jane@example.com",
38
+ :guid => "SOME_GUID"
39
+ }]
40
+ stub_post("/groups/1/members/add", members).to_return(:status => 202)
41
+ response = @client.add_members(1, members)
42
+ expect(response).to eq(true)
43
+ end
44
+
45
+ end
46
+
47
+ end
@@ -0,0 +1,37 @@
1
+ require 'groupme'
2
+ require 'multi_json'
3
+ require 'webmock/rspec'
4
+
5
+ def stub_get(url)
6
+ stub_request(:get, "https://api.groupme.com/v3#{url}").
7
+ with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent'=>GroupMe::USER_AGENT})
8
+ end
9
+
10
+ def stub_post(url, data)
11
+ stub_request(:post, "https://api.groupme.com/v3#{url}").
12
+ with(:headers => {'Accept'=>'*/*', 'User-Agent'=>GroupMe::USER_AGENT, 'Content-Type'=>'application/json'}).
13
+ with(:body => MultiJson.dump(data))
14
+ end
15
+
16
+ def fixture_path
17
+ File.expand_path("../fixtures", __FILE__)
18
+ end
19
+
20
+ def fixture(file)
21
+ MultiJson.load(File.read(fixture_path + '/' + file))
22
+ end
23
+
24
+ def json_response(file)
25
+ {
26
+ :body => {
27
+ :response => fixture(file),
28
+ :meta => {
29
+ :code => 200,
30
+ :errors => []
31
+ }
32
+ },
33
+ :headers => {
34
+ :content_type => 'application/json; charset=utf-8'
35
+ }
36
+ }
37
+ end
metadata CHANGED
@@ -1,16 +1,208 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: groupme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.pre
5
- prerelease: 6
4
+ version: 0.0.1
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - David Radcliffe
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-28 00:00:00.000000000 Z
13
- dependencies: []
12
+ date: 2012-11-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: webmock
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: yard
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: redcarpet
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: pry
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: json
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '1.7'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: '1.7'
126
+ - !ruby/object:Gem::Dependency
127
+ name: faraday
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: '0.8'
134
+ type: :runtime
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: '0.8'
142
+ - !ruby/object:Gem::Dependency
143
+ name: faraday_middleware
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: '0.8'
150
+ type: :runtime
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: '0.8'
158
+ - !ruby/object:Gem::Dependency
159
+ name: hashie
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: '1.2'
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: '1.2'
174
+ - !ruby/object:Gem::Dependency
175
+ name: multi_json
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ~>
180
+ - !ruby/object:Gem::Version
181
+ version: '1.3'
182
+ type: :runtime
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ~>
188
+ - !ruby/object:Gem::Version
189
+ version: '1.3'
190
+ - !ruby/object:Gem::Dependency
191
+ name: simple_oauth
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ~>
196
+ - !ruby/object:Gem::Version
197
+ version: 0.1.6
198
+ type: :runtime
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ~>
204
+ - !ruby/object:Gem::Version
205
+ version: 0.1.6
14
206
  description: Simple wrapper for the GroupMe v3 API
15
207
  email:
16
208
  - radcliffe.david@gmail.com
@@ -19,13 +211,30 @@ extensions: []
19
211
  extra_rdoc_files: []
20
212
  files:
21
213
  - .gitignore
214
+ - .pryrc
215
+ - .rspec
216
+ - .travis.yml
22
217
  - Gemfile
23
218
  - LICENSE.txt
24
219
  - README.md
25
220
  - Rakefile
26
221
  - groupme.gemspec
27
222
  - lib/groupme.rb
223
+ - lib/groupme/bots.rb
224
+ - lib/groupme/client.rb
225
+ - lib/groupme/groups.rb
226
+ - lib/groupme/members.rb
28
227
  - lib/groupme/version.rb
228
+ - spec/fixtures/bot.json
229
+ - spec/fixtures/bots.json
230
+ - spec/fixtures/former_groups.json
231
+ - spec/fixtures/group.json
232
+ - spec/fixtures/groups.json
233
+ - spec/groupme/bots_spec.rb
234
+ - spec/groupme/client_spec.rb
235
+ - spec/groupme/groups_spec.rb
236
+ - spec/groupme/members_spec.rb
237
+ - spec/spec_helper.rb
29
238
  homepage: https://github.com/dwradcliffe/groupme
30
239
  licenses:
31
240
  - MIT
@@ -39,16 +248,33 @@ required_ruby_version: !ruby/object:Gem::Requirement
39
248
  - - ! '>='
40
249
  - !ruby/object:Gem::Version
41
250
  version: '0'
251
+ segments:
252
+ - 0
253
+ hash: 4271238474333281864
42
254
  required_rubygems_version: !ruby/object:Gem::Requirement
43
255
  none: false
44
256
  requirements:
45
- - - ! '>'
257
+ - - ! '>='
46
258
  - !ruby/object:Gem::Version
47
- version: 1.3.1
259
+ version: '0'
260
+ segments:
261
+ - 0
262
+ hash: 4271238474333281864
48
263
  requirements: []
49
264
  rubyforge_project:
50
265
  rubygems_version: 1.8.24
51
266
  signing_key:
52
267
  specification_version: 3
53
268
  summary: Simple wrapper for the GroupMe v3 API
54
- test_files: []
269
+ test_files:
270
+ - spec/fixtures/bot.json
271
+ - spec/fixtures/bots.json
272
+ - spec/fixtures/former_groups.json
273
+ - spec/fixtures/group.json
274
+ - spec/fixtures/groups.json
275
+ - spec/groupme/bots_spec.rb
276
+ - spec/groupme/client_spec.rb
277
+ - spec/groupme/groups_spec.rb
278
+ - spec/groupme/members_spec.rb
279
+ - spec/spec_helper.rb
280
+ has_rdoc: