headquarters 0.0.6 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 43198a48f9901f5900852f1fd11848d440cb848f
4
- data.tar.gz: d1209da04b09c6acb42870485cd19e4f1637d198
3
+ metadata.gz: 50c8858cd727bb5bfaa410338e9954e8aead57fb
4
+ data.tar.gz: 14be54a98af2d5aa54487e167ebaff35f8df1756
5
5
  SHA512:
6
- metadata.gz: 1405d43de40c5690bddbfe98fb1cf31532e9befa2d037264eaa337500817309e4ba1681ff1cdeabe5f2877aaa50047eb1a1ad62ebcbc21d375f363a7672c5647
7
- data.tar.gz: f99be3350fe0c937e6eae7dca86688bb7b5900412959af57fd08805f84fb0e00225e79c41bfee4a8bf4179883e04a1782f16df167d313cb26b74f81e801851a5
6
+ metadata.gz: 20688ff4596a0c475d428f8783358cae21a066bc87c50fc2f3c3de0120316ace93fee8830fe32afc02ebd9fcd98244ec2515ad347f0d4830563b4b9578b60a4a
7
+ data.tar.gz: 66fa2672ef7ddf33476e4533c7c1acf8af9044288f3a1415bf829a5096ec880fe48cef1d987ece4210a9e8a686168319c7e7dfa51e4960db71901cdce1489f77
data/.gitignore CHANGED
@@ -13,3 +13,4 @@
13
13
  *.a
14
14
  mkmf.log
15
15
  *.gem
16
+ .env
data/.rubocop.yml ADDED
@@ -0,0 +1,31 @@
1
+ AllCops:
2
+ Include:
3
+ - '**/Rakefile'
4
+ - '**/config.ru'
5
+ Exclude:
6
+ - 'db/**/*'
7
+ - 'config/**/*'
8
+ - 'script/**/*'
9
+ - 'bin/**/*'
10
+ - 'vendor/**/*'
11
+
12
+ Metrics/LineLength:
13
+ Enabled: false
14
+
15
+ Style/AlignParameters:
16
+ EnforcedStyle: with_fixed_indentation
17
+
18
+ Style/ClassAndModuleChildren:
19
+ Enabled: false
20
+
21
+ Style/Documentation:
22
+ Enabled: false
23
+
24
+ Style/DotPosition:
25
+ EnforcedStyle: trailing
26
+
27
+ Style/IfUnlessModifier:
28
+ Enabled: false
29
+
30
+ Style/RegexpLiteral:
31
+ MaxSlashes: 0
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in headquarters.gemspec
4
4
  gemspec
5
+
6
+ gem 'pry'
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014 Group Buddies
1
+ Copyright (c) 2014-2015 Group Buddies
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # Headquarters
2
2
 
3
- Ruby wrapper for the [headquarters
4
- API](https://github.com/groupbuddies/headquarters)
3
+ [![Build Status](https://semaphoreapp.com/api/v1/projects/2a53d14e-b72c-4047-bd1d-1193498cf8fe/311022/shields_badge.svg)](https://semaphoreapp.com/groupbuddies/headquarters-ruby)
4
+
5
+ Ruby wrapper for the [headquarters API](https://github.com/groupbuddies/headquarters)
5
6
 
6
7
  ## Installation
7
8
 
@@ -11,6 +12,12 @@ Add this line to your application's Gemfile:
11
12
  gem 'headquarters'
12
13
  ```
13
14
 
15
+ Or if you want the edge version:
16
+
17
+ ```ruby
18
+ gem 'headquarters', github: 'groupbuddies/headquarters-ruby'
19
+ ```
20
+
14
21
  And then execute:
15
22
 
16
23
  $ bundle
@@ -19,9 +26,119 @@ Or install it yourself as:
19
26
 
20
27
  $ gem install headquarters
21
28
 
29
+
30
+ ## Configuration
31
+
32
+ You can set the API's base endpoint and port:
33
+
34
+ ```ruby
35
+ Headquarters.api_base = "0.0.0.0"
36
+ Headquarters.api_port = 3000
37
+ ```
38
+
39
+ ### Logging
40
+
41
+ Out of the box headquarters-ruby will log all requests and responses to `STDOUT`, you
42
+ can use any logger you want, though:
43
+
44
+ ```ruby
45
+ Headquarters.logger = Logger.new(STDERR)
46
+ ```
47
+
22
48
  ## Usage
23
49
 
24
- TODO: Write usage instructions here
50
+ These are all the available method to interact with the headquarters.
51
+
52
+ ### Members
53
+
54
+ To retrieve a collection of all members of the team you might use the `all`
55
+ operation:
56
+
57
+ ```ruby
58
+ Headquarters::Member.all
59
+ ```
60
+
61
+ Or you can search for a specific email
62
+
63
+ ```ruby
64
+ Headquarters::Member.search('mpalhas@groupbuddies.com')
65
+ ```
66
+
67
+ ### Pull Requests
68
+
69
+ To get all (paginated) pull requests for groupbuddies, use the
70
+ `pull_requests` operation:
71
+
72
+ ```ruby
73
+ Headquarters::Github.pull_requests
74
+ ```
75
+
76
+ You can filter these results using anything that github takes in the `q`
77
+ parameters of its [search API](https://developer.github.com/v3/search/). For
78
+ instance, if you want to get only the open pull requests, you might do:
79
+
80
+ ```ruby
81
+ Headquarters::Github.pull_requests(query: 'is:open')
82
+ ```
83
+
84
+ ### Internal
85
+
86
+ There is some extra info protected with basic authentication. In order to get it
87
+ you must first add the credentials to you `.env` file:
88
+
89
+ ```
90
+ BASIC_AUTH_USER=some-username
91
+ BASIC_AUTH_PASS=some-password
92
+ ```
93
+
94
+ #### Members
95
+
96
+ Now you may use the `all_internal` operation:
97
+
98
+ ```ruby
99
+ Headquarters::Member.all_internal
100
+ ```
101
+
102
+ #### Emails
103
+
104
+ You can send emails for Group Buddies addresses (Any non-GB addresses will be filtered out).
105
+
106
+ `app_name` can be set to be appended to the sender. i.e. `from: hq@groupbuddies.com, app_name: test` will become `hq+test@groupbuddies.com`. This is useful for filtering and labeling.
107
+
108
+ ```ruby
109
+ Headquarters::Email.send(to: 'mpalhas@groupbuddies.com,zamith@groupbuddies.com', subject: 'custom subject', body: '<b>HTML body</b>', app_name: 'hq')
110
+ ```
111
+
112
+ When using rails you can use headquarters as the delivery method, and transparently send emails using ActiveMailer as usual:
113
+
114
+ ```ruby
115
+ # config/initializers/mailer.rb
116
+ ActionMailer::Base.delivery_method = :headquarters
117
+ ```
118
+
119
+ Using this method, `app_name` is also available as a header or parameter to the `mail` function
120
+
121
+ ```ruby
122
+ class CustomMailer < ActionMailer::Base
123
+ # option 1, default header
124
+ default 'app_name' => 'MyApp'
125
+
126
+ def email
127
+ # option 2, as an argument
128
+ mail to: 'example@email.com', subjet: 'Subject', app_name: 'MyApp'
129
+ end
130
+ end
131
+ ```
132
+
133
+ ## Testing
134
+
135
+ To run the tests (including style tests with Rubucop) install all the
136
+ dependencies and run the default rake task:
137
+
138
+ ```
139
+ bundle install
140
+ bundle exec rake
141
+ ```
25
142
 
26
143
  ## Contributing
27
144
 
data/Rakefile CHANGED
@@ -1,2 +1,7 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
+ require 'rubocop/rake_task'
3
+ require 'rspec/core/rake_task'
4
+ RuboCop::RakeTask.new
5
+ RSpec::Core::RakeTask.new(:spec)
2
6
 
7
+ task default: [:rubocop, :spec]
data/headquarters.gemspec CHANGED
@@ -4,22 +4,26 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'headquarters/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "headquarters"
7
+ spec.name = 'headquarters'
8
8
  spec.version = Headquarters::VERSION
9
- spec.authors = ["Miguel Palhas", "Luís Ferreira"]
10
- spec.email = ["mpalhas@groupbuddies.com", "zamith@groupbuddies.com"]
9
+ spec.authors = ['Miguel Palhas', 'Luís Ferreira']
10
+ spec.email = ['mpalhas@groupbuddies.com', 'zamith@groupbuddies.com']
11
11
  spec.summary = %q{Ruby wrapper for the headquarters API for Group Buddies}
12
12
  spec.description = %q{Ruby wrapper for the headquarters API for Group Buddies}
13
- spec.homepage = "https://github.com/groupbuddies/headquarters-ruby"
14
- spec.license = "MIT"
13
+ spec.homepage = 'https://github.com/groupbuddies/headquarters-ruby'
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
+ spec.add_dependency 'dotenv'
21
22
  spec.add_dependency 'httparty', '>= 0.13.3'
22
23
 
23
- spec.add_development_dependency "bundler", "~> 1.7"
24
- spec.add_development_dependency "rake", "~> 10.0"
24
+ spec.add_development_dependency 'climate_control'
25
+ spec.add_development_dependency 'rake', '~> 10.0'
26
+ spec.add_development_dependency 'rubocop', '~> 0.27.1'
27
+ spec.add_development_dependency 'rspec', '~> 3.1.0'
28
+ spec.add_development_dependency 'webmock', '~> 1.20.4'
25
29
  end
@@ -0,0 +1,30 @@
1
+ require 'headquarters/email'
2
+
3
+ module Headquarters
4
+ class Email
5
+ class RailsDeliveryMethod
6
+ attr_accessor :options
7
+
8
+ def initialize(options = {})
9
+ self.options = options
10
+ end
11
+
12
+ def deliver(mail)
13
+ params = {
14
+ from: mail.from,
15
+ to: mail.to,
16
+ subject: mail.subject,
17
+ body: mail.body.to_s,
18
+ app_name: mail.header['app_name'].to_s
19
+ }
20
+ Headquarters::Email.new(params).send
21
+ end
22
+
23
+ alias_method :deliver!, :deliver
24
+ alias_method :deliver_now, :deliver
25
+ alias_method :deliver_now!, :deliver
26
+ alias_method :deliver_later, :deliver
27
+ alias_method :deliver_later!, :deliver
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,31 @@
1
+ module Headquarters
2
+ class Email
3
+ FIELDS = %i(to from subject app_name body)
4
+
5
+ def self.send(**raw_params)
6
+ prepare_params(raw_params)
7
+ Request.perform_with_auth(:post, Endpoints::Internal::EMAIL, params)
8
+ end
9
+
10
+ class << self
11
+ attr_accessor(*FIELDS)
12
+ end
13
+
14
+ def self.params
15
+ Hash[FIELDS.map do |field|
16
+ [field, public_send(field)]
17
+ end.compact]
18
+ end
19
+
20
+ def self.prepare_params(raw_params)
21
+ @to = raw_params[:to]
22
+ if @to.is_a? Array
23
+ @to = @to.join(',')
24
+ end
25
+ @from = raw_params[:from]
26
+ @subject = raw_params[:subject]
27
+ @app_name = raw_params[:app_name]
28
+ @body = raw_params[:body]
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,14 @@
1
+ module Headquarters
2
+ module Endpoints
3
+ MEMBERS = '/members'
4
+
5
+ module Github
6
+ PULL_REQUESTS = '/github/pull_requests'
7
+ end
8
+
9
+ module Internal
10
+ MEMBERS = '/internal/members'
11
+ EMAIL = '/internal/emails'
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,7 @@
1
+ module Headquarters
2
+ class Github
3
+ def self.pull_requests(query: nil)
4
+ Request.perform(:get, Endpoints::Github::PULL_REQUESTS, query: { q: query })
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ module Headquarters
2
+ class Member
3
+ def self.all
4
+ Request.perform(:get, Endpoints::MEMBERS)
5
+ end
6
+
7
+ def self.search(query)
8
+ Request.perform(:get, Endpoints::MEMBERS, q: query)
9
+ end
10
+
11
+ def self.all_internal
12
+ Request.perform_with_auth(:get, Endpoints::Internal::MEMBERS)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ require 'headquarters/email'
2
+ require 'headquarters/email/rails_delivery_method'
3
+
4
+ module Headquarters
5
+ class Railtie < Rails::Railtie
6
+ initializer 'headquaters.add_delivery_method' do
7
+ ActiveSupport.on_load :action_mailer do
8
+ ActionMailer::Base.add_delivery_method :headquarters, Headquarters::Email::RailsDeliveryMethod
9
+ end
10
+ end
11
+ end
12
+ end
@@ -3,10 +3,71 @@ require 'httparty'
3
3
  module Headquarters
4
4
  class Request
5
5
  include ::HTTParty
6
- base_uri 'hq.groupbuddies.com'
6
+ base_uri Headquarters.api_base
7
7
 
8
- def self.get_json(path)
9
- get(path).to_json
8
+ def self.perform_with_auth(http_method, path, params = {}, options = {})
9
+ options_with_auth = options.merge(basic_auth_info)
10
+ perform(http_method, path, params, options_with_auth)
11
+ end
12
+
13
+ def self.perform(http_method, path, params = {}, options = {})
14
+ new(path, params, options).public_send(http_method)
15
+ end
16
+
17
+ def initialize(path, params, options)
18
+ @path = path
19
+ @options = options
20
+ @params = params
21
+ end
22
+
23
+ def get
24
+ @options.merge!(query: params) if params && params.any?
25
+ response = Request.get(path, options)
26
+ log_request_info(:get, response)
27
+ response.parsed_response
28
+ end
29
+
30
+ def post
31
+ @options.merge!(body: params) if params && params.any?
32
+ response = Request.post(path, options)
33
+ log_request_info(:post, response)
34
+ response.parsed_response
35
+ end
36
+
37
+ private
38
+
39
+ attr_reader :path, :options, :params
40
+
41
+ def log_request_info(http_method, response)
42
+ Headquarters.logger.info "[HQ] [#{current_time}] #{http_method.to_s.upcase} #{path} #{options} #{response.code}"
43
+ end
44
+
45
+ def current_time
46
+ Time.now.utc.strftime('%d/%b/%Y %H:%M:%S %Z')
47
+ end
48
+
49
+ def self.basic_auth_info
50
+ hq_basic_auth_info || deprecated_basic_auth_info
51
+ end
52
+
53
+ def self.hq_basic_auth_info
54
+ return unless ENV['HQ_BASIC_AUTH_USER']
55
+ {
56
+ basic_auth: {
57
+ username: ENV['HQ_BASIC_AUTH_USER'],
58
+ password: ENV['HQ_BASIC_AUTH_PASS']
59
+ }
60
+ }
61
+ end
62
+
63
+ def self.deprecated_basic_auth_info
64
+ warn '[DEPRECATED] Using ENV["BASIC_AUTH_USER"] is deprecated. Please use ENV["HQ_BASIC_AUTH_USER"]'
65
+ {
66
+ basic_auth: {
67
+ username: ENV['BASIC_AUTH_USER'],
68
+ password: ENV['BASIC_AUTH_PASS']
69
+ }
70
+ }
10
71
  end
11
72
  end
12
73
  end
@@ -1,3 +1,3 @@
1
1
  module Headquarters
2
- VERSION = '0.0.6'
2
+ VERSION = '0.1.1'
3
3
  end
data/lib/headquarters.rb CHANGED
@@ -1,6 +1,30 @@
1
+ require 'net/https'
2
+ require 'logger'
3
+ require 'dotenv'
4
+
1
5
  require 'headquarters/version'
2
- require 'headquarters/request'
3
- require 'headquarters/members'
6
+ require 'headquarters/endpoints'
7
+
8
+ if defined? ::Rails::Railtie
9
+ require 'headquarters/railtie'
10
+ end
4
11
 
5
12
  module Headquarters
13
+ API_BASE = 'hq.groupbuddies.com'
14
+ ROOT_PATH = File.dirname(__FILE__)
15
+
16
+ @api_base = API_BASE
17
+ @api_port = Net::HTTP.https_default_port
18
+ @logger = Logger.new(STDOUT)
19
+
20
+ class << self
21
+ attr_accessor :api_base, :api_port, :logger
22
+ end
6
23
  end
24
+
25
+ require 'headquarters/request'
26
+ require 'headquarters/member'
27
+ require 'headquarters/github'
28
+ require 'headquarters/email'
29
+
30
+ Dotenv.load
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ module Headquarters
4
+ describe Email do
5
+ context '.send' do
6
+ it 'makes a new POST request using the correct API endpoint' do
7
+ allow(Request).to receive(:perform_with_auth)
8
+ params = { subject: 'fake subject' }
9
+
10
+ Email.send(params)
11
+
12
+ expect(Request).to have_received(:perform_with_auth).with(:post, Endpoints::Internal::EMAIL, hash_including(params))
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ module Headquarters
4
+ describe Github do
5
+ context '.pull_requests' do
6
+ it 'asks for all the pull requests' do
7
+ allow(Request).to receive(:perform)
8
+
9
+ Github.pull_requests
10
+
11
+ expect(Request).to have_received(:perform).
12
+ with(:get, Endpoints::Github::PULL_REQUESTS, query: { q: nil })
13
+ end
14
+
15
+ it 'asks for the open pull requests' do
16
+ allow(Request).to receive(:perform)
17
+
18
+ Github.pull_requests(query: 'is:open')
19
+
20
+ expect(Request).to have_received(:perform).
21
+ with(:get, Endpoints::Github::PULL_REQUESTS, query: { q: 'is:open' })
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ module Headquarters
4
+ describe Member do
5
+ context '.all' do
6
+ it 'makes a new GET request using the correct API endpoint' do
7
+ allow(Request).to receive(:perform)
8
+
9
+ Member.all
10
+
11
+ expect(Request).to have_received(:perform).with(:get, Endpoints::MEMBERS)
12
+ end
13
+ end
14
+
15
+ context '.all_internal' do
16
+ it 'makes a new GET request using the correct API endpoint' do
17
+ allow(Request).to receive(:perform_with_auth)
18
+
19
+ Member.all_internal
20
+
21
+ expect(Request).to have_received(:perform_with_auth).with(:get, Endpoints::Internal::MEMBERS)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,56 @@
1
+ require 'spec_helper'
2
+ require 'webmock/rspec'
3
+ WebMock.disable_net_connect!
4
+
5
+ module Headquarters
6
+ describe Request do
7
+ let(:request) { spy('request') }
8
+
9
+ context '.perform' do
10
+ it 'makes the correct call for a GET' do
11
+ allow(Request).to receive(:new).and_return(request)
12
+
13
+ Request.perform(:get, '/some-url')
14
+
15
+ expect(request).to have_received(:get)
16
+ end
17
+
18
+ it 'makes the correct call for a POST' do
19
+ allow(Request).to receive(:new).and_return(request)
20
+
21
+ Request.perform(:post, '/some-url')
22
+
23
+ expect(request).to have_received(:post)
24
+ end
25
+
26
+ it 'makes the actual call' do
27
+ url = '/some-url'
28
+ stub_request(:get, Headquarters.api_base + url)
29
+ allow(Request).to receive(:get).and_call_original
30
+
31
+ Request.perform(:get, url)
32
+
33
+ expect(Request).to have_received(:get).with(url, {})
34
+ end
35
+ end
36
+
37
+ context '.perform_with_auth' do
38
+ it 'makes the actual call with basic auth' do
39
+ url = '/some-url'
40
+ credentials = { basic_auth: { username: 'user', password: 'pass' } }
41
+ new_env = {
42
+ BASIC_AUTH_PASS: credentials[:basic_auth][:password],
43
+ BASIC_AUTH_USER: credentials[:basic_auth][:username]
44
+ }
45
+ stub_request(:get, 'user:pass@' + Headquarters.api_base + url)
46
+ allow(Request).to receive(:get).and_call_original
47
+
48
+ with_modified_env new_env do
49
+ Request.perform_with_auth(:get, url)
50
+
51
+ expect(Request).to have_received(:get).with(url, credentials)
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,13 @@
1
+ require 'headquarters'
2
+ require 'climate_control'
3
+
4
+ Dir[File.join(Headquarters::ROOT_PATH, 'spec/support/**/*.rb')].each { |f| require f }
5
+
6
+ class DummyLogger
7
+ def self.info(_message); end
8
+ end
9
+ Headquarters.logger = DummyLogger
10
+
11
+ def with_modified_env(options, &block)
12
+ ClimateControl.modify(options, &block)
13
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: headquarters
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Palhas
@@ -9,8 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-16 00:00:00.000000000 Z
12
+ date: 2015-01-05 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: dotenv
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: httparty
16
30
  requirement: !ruby/object:Gem::Requirement
@@ -26,19 +40,19 @@ dependencies:
26
40
  - !ruby/object:Gem::Version
27
41
  version: 0.13.3
28
42
  - !ruby/object:Gem::Dependency
29
- name: bundler
43
+ name: climate_control
30
44
  requirement: !ruby/object:Gem::Requirement
31
45
  requirements:
32
- - - "~>"
46
+ - - ">="
33
47
  - !ruby/object:Gem::Version
34
- version: '1.7'
48
+ version: '0'
35
49
  type: :development
36
50
  prerelease: false
37
51
  version_requirements: !ruby/object:Gem::Requirement
38
52
  requirements:
39
- - - "~>"
53
+ - - ">="
40
54
  - !ruby/object:Gem::Version
41
- version: '1.7'
55
+ version: '0'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: rake
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -53,6 +67,48 @@ dependencies:
53
67
  - - "~>"
54
68
  - !ruby/object:Gem::Version
55
69
  version: '10.0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rubocop
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: 0.27.1
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: 0.27.1
84
+ - !ruby/object:Gem::Dependency
85
+ name: rspec
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: 3.1.0
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: 3.1.0
98
+ - !ruby/object:Gem::Dependency
99
+ name: webmock
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: 1.20.4
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: 1.20.4
56
112
  description: Ruby wrapper for the headquarters API for Group Buddies
57
113
  email:
58
114
  - mpalhas@groupbuddies.com
@@ -62,15 +118,26 @@ extensions: []
62
118
  extra_rdoc_files: []
63
119
  files:
64
120
  - ".gitignore"
121
+ - ".rubocop.yml"
65
122
  - Gemfile
66
123
  - LICENSE
67
124
  - README.md
68
125
  - Rakefile
69
126
  - headquarters.gemspec
70
127
  - lib/headquarters.rb
71
- - lib/headquarters/members.rb
128
+ - lib/headquarters/email.rb
129
+ - lib/headquarters/email/rails_delivery_method.rb
130
+ - lib/headquarters/endpoints.rb
131
+ - lib/headquarters/github.rb
132
+ - lib/headquarters/member.rb
133
+ - lib/headquarters/railtie.rb
72
134
  - lib/headquarters/request.rb
73
135
  - lib/headquarters/version.rb
136
+ - spec/email_spec.rb
137
+ - spec/github_spec.rb
138
+ - spec/member_spec.rb
139
+ - spec/request_spec.rb
140
+ - spec/spec_helper.rb
74
141
  homepage: https://github.com/groupbuddies/headquarters-ruby
75
142
  licenses:
76
143
  - MIT
@@ -91,8 +158,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
158
  version: '0'
92
159
  requirements: []
93
160
  rubyforge_project:
94
- rubygems_version: 2.4.4
161
+ rubygems_version: 2.4.5
95
162
  signing_key:
96
163
  specification_version: 4
97
164
  summary: Ruby wrapper for the headquarters API for Group Buddies
98
- test_files: []
165
+ test_files:
166
+ - spec/email_spec.rb
167
+ - spec/github_spec.rb
168
+ - spec/member_spec.rb
169
+ - spec/request_spec.rb
170
+ - spec/spec_helper.rb
@@ -1,7 +0,0 @@
1
- module Headquarters
2
- class Members
3
- def self.all
4
- Request.get_json('/members')
5
- end
6
- end
7
- end