bps-google-api 0.2.0 → 0.2.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/bps-google-api.gemspec +1 -1
- data/lib/ext/hash.rb +17 -0
- data/lib/ext/silent_progress_bar.rb +17 -0
- data/lib/google_api.rb +4 -0
- data/lib/google_api/base.rb +1 -2
- data/lib/google_api/base/authorization.rb +3 -3
- data/lib/google_api/calendar.rb +1 -12
- data/lib/google_api/calendar/clear_test_calendar.rb +10 -4
- data/lib/google_api/configured.rb +8 -0
- data/lib/google_api/configured/calendar.rb +49 -0
- data/lib/google_api/configured/group.rb +31 -0
- data/lib/google_api/group.rb +9 -10
- data/spec/lib/google_api/base_spec.rb +20 -0
- data/spec/lib/google_api/calendar_spec.rb +95 -38
- data/spec/lib/google_api/group_spec.rb +31 -25
- data/spec/spec_helper.rb +14 -1
- metadata +6 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9db47ec4d8765e23f5eaf19a0d0fab4927fdde18
|
4
|
+
data.tar.gz: 3bdc229d7f57a1cb9a1efbb5d86b88f1b38c6117
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 327541c28d54c819b6827cf1c7024c11a45de98efa04e873a36d8f834c8b99f3012afb61885608a65be911ce50fcf3daef7757e5e3fd8a9a3a9774bd207a20db
|
7
|
+
data.tar.gz: a2f81f09ec656b48000906fb7a566cafcda0d617c2aa3890415485d418e18ead19e2662ac42a5b11f059fef119a50d992e9124b4e6755dcf199146fa4fbe2e17
|
data/Gemfile.lock
CHANGED
data/bps-google-api.gemspec
CHANGED
data/lib/ext/hash.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Import assert_valid_keys from Rails if not already defined
|
4
|
+
class Hash
|
5
|
+
def assert_valid_keys(*valid_keys)
|
6
|
+
valid_keys.flatten!
|
7
|
+
|
8
|
+
each_key do |k|
|
9
|
+
next if valid_keys.include?(k)
|
10
|
+
|
11
|
+
raise(
|
12
|
+
ArgumentError,
|
13
|
+
"Unknown key: #{k.inspect}. Valid keys are: #{valid_keys.map(&:inspect).join(', ')}"
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/google_api.rb
CHANGED
data/lib/google_api/base.rb
CHANGED
@@ -37,7 +37,7 @@ module GoogleAPI
|
|
37
37
|
url = authorizer.get_authorization_url(base_url: OOB_URI)
|
38
38
|
puts("Open this URL to authorize:\n", url)
|
39
39
|
print("\nResponse code: ")
|
40
|
-
gets
|
40
|
+
ENV.key?('GOOGLE_AUTHORIZATION_CODE') ? ENV['GOOGLE_AUTHORIZATION_CODE'] : gets
|
41
41
|
end
|
42
42
|
|
43
43
|
def authorizer
|
@@ -61,12 +61,12 @@ module GoogleAPI
|
|
61
61
|
{
|
62
62
|
GOOGLE_CLIENT_ID: auth.client_id, GOOGLE_CLIENT_SECRET: auth.client_secret,
|
63
63
|
GOOGLE_ACCESS_TOKEN: auth.access_token, GOOGLE_REFRESH_TOKEN: auth.refresh_token,
|
64
|
-
GOOGLE_AUTH_SCOPES: auth.scope, GOOGLE_AUTH_EXP: expires_milli(auth.
|
64
|
+
GOOGLE_AUTH_SCOPES: auth.scope, GOOGLE_AUTH_EXP: expires_milli(auth.expires_at.to_s)
|
65
65
|
}
|
66
66
|
end
|
67
67
|
|
68
68
|
def expires_milli(time)
|
69
|
-
|
69
|
+
Time.strptime(time, '%Y-%m-%d %H:%M:%S %:z').to_i * 1000
|
70
70
|
end
|
71
71
|
|
72
72
|
def store_key(path, key)
|
data/lib/google_api/calendar.rb
CHANGED
@@ -56,7 +56,7 @@ module GoogleAPI
|
|
56
56
|
private
|
57
57
|
|
58
58
|
def event(event_options)
|
59
|
-
|
59
|
+
event_options.assert_valid_keys(VALID_EVENT_KEYS)
|
60
60
|
event_options[:start] = date(event_options[:start])
|
61
61
|
event_options[:end] = date(event_options[:end])
|
62
62
|
|
@@ -67,16 +67,5 @@ module GoogleAPI
|
|
67
67
|
key = date&.is_a?(String) ? :date : :date_time
|
68
68
|
Google::Apis::CalendarV3::EventDateTime.new(key => date, time_zone: ENV['TZ'])
|
69
69
|
end
|
70
|
-
|
71
|
-
def last_token_path
|
72
|
-
path = %w[tmp run last_page_token]
|
73
|
-
defined?(Rails) ? Rails.root.join(*path) : File.join(*path)
|
74
|
-
end
|
75
|
-
|
76
|
-
def validate_event_options(event_options)
|
77
|
-
return unless event_options.respond_to?(:assert_valid_keys)
|
78
|
-
|
79
|
-
event_options.assert_valid_keys(VALID_EVENT_KEYS)
|
80
|
-
end
|
81
70
|
end
|
82
71
|
end
|
@@ -3,14 +3,16 @@
|
|
3
3
|
module GoogleAPI
|
4
4
|
class Calendar < GoogleAPI::Base
|
5
5
|
module ClearTestCalendar
|
6
|
-
def clear_test_calendar(page_token: nil, page_limit: 50, verbose: false)
|
6
|
+
def clear_test_calendar(page_token: nil, page_limit: 50, verbose: false, error: false)
|
7
|
+
raise Google::Apis::RateLimitError, '(Rate Limit Exceeded)' if error
|
8
|
+
|
7
9
|
@verbose = verbose
|
8
10
|
Google::Apis.logger.level = Logger::WARN
|
9
11
|
choose_page_token(page_token)
|
10
12
|
loop_over_pages(ENV['GOOGLE_CALENDAR_ID_TEST'], page_limit: page_limit)
|
11
13
|
puts '*** Cleared all events!' if @verbose
|
12
14
|
rescue Google::Apis::RateLimitError
|
13
|
-
puts "\n\n*** Google::Apis::RateLimitError (Rate Limit Exceeded)"
|
15
|
+
puts "\n\n*** Google::Apis::RateLimitError (Rate Limit Exceeded)" if @verbose
|
14
16
|
ensure
|
15
17
|
log_last_page_token if token?
|
16
18
|
end
|
@@ -58,10 +60,14 @@ module GoogleAPI
|
|
58
60
|
end
|
59
61
|
|
60
62
|
def progress_bar(total)
|
61
|
-
|
63
|
+
bar_config = {
|
62
64
|
title: 'Page cleared', starting_at: 0, total: total, progress_mark: ' ',
|
63
65
|
remainder_mark: "\u{FF65}", format: "%a [%R/sec] %E | %b\u{15E7}%i %c/%C (%P%%) %t"
|
64
|
-
|
66
|
+
}
|
67
|
+
|
68
|
+
bar_config = bar_config.merge(output: ProgressBar::Silent) if ENV.key?('HIDE_PROGRESS_BARS')
|
69
|
+
|
70
|
+
ProgressBar.create(bar_config)
|
65
71
|
end
|
66
72
|
end
|
67
73
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module GoogleAPI
|
4
|
+
module Configured
|
5
|
+
class Calendar
|
6
|
+
CALENDAR_API ||= GoogleAPI::Calendar.new
|
7
|
+
|
8
|
+
attr_reader :calendar_id
|
9
|
+
|
10
|
+
def initialize(calendar_id)
|
11
|
+
@calendar_id = calendar_id
|
12
|
+
end
|
13
|
+
|
14
|
+
def list(max_results: 2500, page_token: nil)
|
15
|
+
CALENDAR_API.list(calendar_id, max_results: max_results, page_token: page_token)
|
16
|
+
end
|
17
|
+
|
18
|
+
def create(event_options = {})
|
19
|
+
CALENDAR_API.create(calendar_id, event_options)
|
20
|
+
end
|
21
|
+
|
22
|
+
def get(event_id)
|
23
|
+
CALENDAR_API.get(calendar_id, event_id)
|
24
|
+
end
|
25
|
+
|
26
|
+
def update(event_id, event_options = {})
|
27
|
+
CALENDAR_API.update(calendar_id, event_id, event_options)
|
28
|
+
end
|
29
|
+
|
30
|
+
def delete(event_id)
|
31
|
+
CALENDAR_API.delete(calendar_id, event_id)
|
32
|
+
end
|
33
|
+
|
34
|
+
def permit(user = nil, email: nil)
|
35
|
+
CALENDAR_API.permit(calendar_id, user, email: email)
|
36
|
+
end
|
37
|
+
|
38
|
+
def unpermit(user = nil, calendar_rule_id: nil)
|
39
|
+
CALENDAR_API.unpermit(calendar_id, user, calendar_rule_id: calendar_rule_id)
|
40
|
+
end
|
41
|
+
|
42
|
+
def clear_test_calendar(page_token: nil, page_limit: 50, verbose: false, error: false)
|
43
|
+
CALENDAR_API.clear_test_calendar(
|
44
|
+
page_token: page_token, page_limit: page_limit, verbose: verbose, error: error
|
45
|
+
)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module GoogleAPI
|
4
|
+
module Configured
|
5
|
+
class Group
|
6
|
+
GROUP_API ||= GoogleAPI::Group.new
|
7
|
+
|
8
|
+
attr_reader :group_id
|
9
|
+
|
10
|
+
def initialize(group_id)
|
11
|
+
@group_id = group_id
|
12
|
+
end
|
13
|
+
|
14
|
+
def get
|
15
|
+
GROUP_API.get(group_id)
|
16
|
+
end
|
17
|
+
|
18
|
+
def members
|
19
|
+
GROUP_API.members(group_id)
|
20
|
+
end
|
21
|
+
|
22
|
+
def add(email)
|
23
|
+
GROUP_API.add(group_id, email)
|
24
|
+
end
|
25
|
+
|
26
|
+
def remove(email)
|
27
|
+
GROUP_API.remove(group_id, email)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/google_api/group.rb
CHANGED
@@ -4,27 +4,26 @@ module GoogleAPI
|
|
4
4
|
class Group < GoogleAPI::Base
|
5
5
|
SERVICE_CLASS = Google::Apis::AdminDirectoryV1::DirectoryService
|
6
6
|
|
7
|
-
def initialize(
|
8
|
-
@group_id = id
|
7
|
+
def initialize(auth: true)
|
9
8
|
super(auth: auth)
|
10
9
|
end
|
11
10
|
|
12
|
-
def get
|
13
|
-
call(:get_group,
|
11
|
+
def get(group_id)
|
12
|
+
call(:get_group, group_id)
|
14
13
|
end
|
15
14
|
|
16
|
-
def members
|
17
|
-
call(:list_members,
|
15
|
+
def members(group_id)
|
16
|
+
call(:list_members, group_id)
|
18
17
|
end
|
19
18
|
|
20
|
-
def add(email)
|
21
|
-
call(:insert_member,
|
19
|
+
def add(group_id, email)
|
20
|
+
call(:insert_member, group_id, member(email))
|
22
21
|
rescue Google::Apis::ClientError
|
23
22
|
:already_exists
|
24
23
|
end
|
25
24
|
|
26
|
-
def remove(email)
|
27
|
-
call(:delete_member,
|
25
|
+
def remove(group_id, email)
|
26
|
+
call(:delete_member, group_id, email)
|
28
27
|
rescue Google::Apis::ClientError
|
29
28
|
:not_found
|
30
29
|
end
|
@@ -10,4 +10,24 @@ RSpec.describe GoogleAPI::Base do
|
|
10
10
|
NameError, 'uninitialized constant GoogleAPI::Base::SERVICE_CLASS'
|
11
11
|
)
|
12
12
|
end
|
13
|
+
|
14
|
+
context 'with a valid subclass' do
|
15
|
+
subject { GoogleAPI::Calendar }
|
16
|
+
|
17
|
+
it 'returns the correct last token path' do
|
18
|
+
expect(subject.new.send(:last_token_path)).to eql('./tmp/run/last_page_token')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'returns an array from authorize with reveal' do
|
22
|
+
expect(subject.new(auth: false).authorize!(reveal: true)).to be_a(Array)
|
23
|
+
end
|
24
|
+
|
25
|
+
let(:reauth) { proc(subject.new(auth: false).authorize!(refresh: true)) }
|
26
|
+
|
27
|
+
it 'reauthorizes' do
|
28
|
+
silently do
|
29
|
+
expect { reauth.call }.to raise_error(Signet::AuthorizationError)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
13
33
|
end
|
@@ -3,73 +3,130 @@
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
5
|
RSpec.describe GoogleAPI::Calendar do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
def test_event
|
7
|
+
{
|
8
|
+
summary: 'API Test Event',
|
9
|
+
description: 'This is a test event generated by the API gem.',
|
10
|
+
start: DateTime.strptime('201906051200', '%Y%m%d%H%M'),
|
11
|
+
end: DateTime.strptime('201906051400', '%Y%m%d%H%M')
|
12
|
+
}
|
10
13
|
end
|
11
14
|
|
12
|
-
|
13
|
-
|
15
|
+
describe 'service class' do
|
16
|
+
subject { described_class.new }
|
17
|
+
|
18
|
+
it 'does not raise an error' do
|
19
|
+
expect { subject.send(:service_class) }.not_to raise_error
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'is the correct class' do
|
23
|
+
expect(subject.send(:service_class)).to eql(Google::Apis::CalendarV3::CalendarService)
|
24
|
+
end
|
14
25
|
end
|
15
26
|
|
16
|
-
|
17
|
-
|
18
|
-
|
27
|
+
context 'with an invalid calendar' do
|
28
|
+
let(:test_cal_id) { 'not-a-calendar' }
|
29
|
+
|
30
|
+
subject { GoogleAPI::Configured::Calendar.new(test_cal_id) }
|
31
|
+
|
32
|
+
it 'returns not found from list' do
|
33
|
+
expect { subject.list }.to raise_error(
|
19
34
|
Google::Apis::ClientError, 'notFound: Not Found'
|
20
35
|
)
|
21
36
|
end
|
22
|
-
end
|
23
37
|
|
24
|
-
|
25
|
-
|
26
|
-
expect { subject.create('not-a-calendar') }.to raise_error(
|
38
|
+
it 'returns not found from create' do
|
39
|
+
expect { subject.create }.to raise_error(
|
27
40
|
Google::Apis::ClientError, 'notFound: Not Found'
|
28
41
|
)
|
29
42
|
end
|
30
|
-
end
|
31
43
|
|
32
|
-
|
33
|
-
|
34
|
-
expect { subject.get('not-a-calendar', 'not-an-event') }.to raise_error(
|
44
|
+
it 'returns not found from get' do
|
45
|
+
expect { subject.get('not-an-event') }.to raise_error(
|
35
46
|
Google::Apis::ClientError, 'notFound: Not Found'
|
36
47
|
)
|
37
48
|
end
|
38
|
-
end
|
39
49
|
|
40
|
-
|
41
|
-
|
42
|
-
expect { subject.update('not-a-calendar', 'not-an-event') }.to raise_error(
|
50
|
+
it 'returns not found from update' do
|
51
|
+
expect { subject.update('not-an-event') }.to raise_error(
|
43
52
|
Google::Apis::ClientError, 'notFound: Not Found'
|
44
53
|
)
|
45
54
|
end
|
46
|
-
end
|
47
55
|
|
48
|
-
|
49
|
-
|
50
|
-
expect(subject.delete('not-a-calendar', 'not-an-event')).to eql(
|
56
|
+
it 'returns event not found from delete' do
|
57
|
+
expect(subject.delete('not-an-event')).to eql(
|
51
58
|
:event_not_found
|
52
59
|
)
|
53
60
|
end
|
54
|
-
end
|
55
61
|
|
56
|
-
|
57
|
-
|
58
|
-
expect(subject.permit('not-a-calendar', email: 'not-a-user')).to be_nil
|
62
|
+
it 'returns nil from permit' do
|
63
|
+
expect(subject.permit(email: 'not-a-user')).to be_nil
|
59
64
|
end
|
60
|
-
end
|
61
65
|
|
62
|
-
|
63
|
-
|
64
|
-
expect(subject.unpermit('not-a-calendar', calendar_rule_id: 'not-a-user')).to eql(
|
65
|
-
:permission_not_found
|
66
|
-
)
|
66
|
+
it 'returns permission not found from unpermit' do
|
67
|
+
expect(subject.unpermit(calendar_rule_id: 'not-a-user')).to eql(:permission_not_found)
|
67
68
|
end
|
68
69
|
end
|
69
70
|
|
70
|
-
|
71
|
-
|
72
|
-
|
71
|
+
context 'with a valid calendar' do
|
72
|
+
let(:test_cal_id) { ENV['GOOGLE_CALENDAR_ID_TEST'] }
|
73
|
+
|
74
|
+
subject { GoogleAPI::Configured::Calendar.new(test_cal_id) }
|
75
|
+
|
76
|
+
it 'returns a list' do
|
77
|
+
expect(subject.list).to be_a(Google::Apis::CalendarV3::Events)
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'creates an event' do
|
81
|
+
expect(subject.create(test_event)).to be_a(Google::Apis::CalendarV3::Event)
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'gets an event ' do
|
85
|
+
event = subject.create(test_event)
|
86
|
+
expect(subject.get(event.id)).to be_a(Google::Apis::CalendarV3::Event)
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'updates an event' do
|
90
|
+
event = subject.create(test_event)
|
91
|
+
updated_test_event = test_event.merge(description: 'Updated.')
|
92
|
+
subject.update(event.id, updated_test_event)
|
93
|
+
updated_event = subject.get(event.id)
|
94
|
+
|
95
|
+
expect(updated_event.description).to eql('Updated.')
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'deletes an event' do
|
99
|
+
event = subject.create(test_event)
|
100
|
+
|
101
|
+
expect(subject.delete(event.id)).to eql('')
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'returns nil from permit' do
|
105
|
+
expect(subject.permit(email: 'not-a-user')).to be_nil
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'returns permission not found from unpermit' do
|
109
|
+
expect(subject.unpermit(calendar_rule_id: 'not-a-user')).to eql(:permission_not_found)
|
110
|
+
end
|
111
|
+
|
112
|
+
describe 'clear test calendar' do
|
113
|
+
it 'does not raise any errors' do
|
114
|
+
expect { subject.clear_test_calendar }.not_to raise_error
|
115
|
+
end
|
116
|
+
|
117
|
+
it 'rescues from an unhandled rate limit exception' do
|
118
|
+
expect { subject.clear_test_calendar(error: true) }.not_to raise_error
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'does not raise any errors with verbose' do
|
122
|
+
subject.create(test_event)
|
123
|
+
|
124
|
+
silently do
|
125
|
+
expect do
|
126
|
+
GoogleAPI::Configured::Calendar.new('test').clear_test_calendar(verbose: true)
|
127
|
+
end.not_to raise_error
|
128
|
+
end
|
129
|
+
end
|
73
130
|
end
|
74
131
|
end
|
75
132
|
end
|
@@ -3,41 +3,47 @@
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
5
|
RSpec.describe GoogleAPI::Group do
|
6
|
-
|
6
|
+
describe 'service class' do
|
7
|
+
subject { described_class.new }
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
it 'has a service class' do
|
10
|
+
expect { subject.send(:service_class) }.not_to raise_error
|
11
|
+
end
|
11
12
|
|
12
|
-
|
13
|
-
|
13
|
+
it 'has the correct service class' do
|
14
|
+
expect(subject.send(:service_class)).to eql(Google::Apis::AdminDirectoryV1::DirectoryService)
|
15
|
+
end
|
14
16
|
end
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
context 'with an invalid group' do
|
19
|
+
subject { GoogleAPI::Configured::Group.new('test-group@example.com') }
|
20
|
+
|
21
|
+
describe 'get' do
|
22
|
+
it 'returns not found for a nonexistent group' do
|
23
|
+
expect { subject.get }.to raise_error(
|
24
|
+
Google::Apis::ClientError, 'forbidden: Not Authorized to access this resource/api'
|
25
|
+
)
|
26
|
+
end
|
21
27
|
end
|
22
|
-
end
|
23
28
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
+
describe 'members' do
|
30
|
+
it 'returns forbidden for a nonexistent group' do
|
31
|
+
expect { subject.members }.to raise_error(
|
32
|
+
Google::Apis::ClientError, 'forbidden: Not Authorized to access this resource/api'
|
33
|
+
)
|
34
|
+
end
|
29
35
|
end
|
30
|
-
end
|
31
36
|
|
32
|
-
|
33
|
-
|
34
|
-
|
37
|
+
describe 'add' do
|
38
|
+
it 'returns not found for a nonexistent group' do
|
39
|
+
expect(subject.add('test-member@example.com')).to eql(:already_exists)
|
40
|
+
end
|
35
41
|
end
|
36
|
-
end
|
37
42
|
|
38
|
-
|
39
|
-
|
40
|
-
|
43
|
+
describe 'remove' do
|
44
|
+
it 'returns not found for a nonexistent group' do
|
45
|
+
expect(subject.remove('test-member@example.com')).to eql(:not_found)
|
46
|
+
end
|
41
47
|
end
|
42
48
|
end
|
43
49
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -5,12 +5,25 @@ Bundler.setup
|
|
5
5
|
require 'simplecov'
|
6
6
|
SimpleCov.start do
|
7
7
|
add_filter '/spec'
|
8
|
+
add_filter '/lib/ext'
|
8
9
|
end
|
10
|
+
SimpleCov.minimum_coverage(100)
|
9
11
|
|
10
12
|
require 'google_api'
|
11
13
|
|
14
|
+
def silently
|
15
|
+
original_stdout = $stdout
|
16
|
+
$stdout = File.new(File.join('tmp', 'null'), 'w')
|
17
|
+
yield
|
18
|
+
$stdout = original_stdout
|
19
|
+
end
|
20
|
+
|
12
21
|
RSpec.configure do |config|
|
13
22
|
config.before(:suite) do
|
14
|
-
FileUtils.mkdir_p('tmp
|
23
|
+
FileUtils.mkdir_p(File.join('tmp', 'run'))
|
24
|
+
FileUtils.rm(Dir.glob(File.join('config', 'keys', '*')))
|
25
|
+
|
26
|
+
ENV['GOOGLE_AUTHORIZATION_CODE'] = 'test-auth-code'
|
27
|
+
ENV['HIDE_PROGRESS_BARS'] = 'true'
|
15
28
|
end
|
16
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bps-google-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julian Fiander
|
@@ -120,11 +120,16 @@ files:
|
|
120
120
|
- Gemfile.lock
|
121
121
|
- Readme.md
|
122
122
|
- bps-google-api.gemspec
|
123
|
+
- lib/ext/hash.rb
|
124
|
+
- lib/ext/silent_progress_bar.rb
|
123
125
|
- lib/google_api.rb
|
124
126
|
- lib/google_api/base.rb
|
125
127
|
- lib/google_api/base/authorization.rb
|
126
128
|
- lib/google_api/calendar.rb
|
127
129
|
- lib/google_api/calendar/clear_test_calendar.rb
|
130
|
+
- lib/google_api/configured.rb
|
131
|
+
- lib/google_api/configured/calendar.rb
|
132
|
+
- lib/google_api/configured/group.rb
|
128
133
|
- lib/google_api/group.rb
|
129
134
|
- spec/.rubocop.yml
|
130
135
|
- spec/lib/google_api/base_spec.rb
|