ogam 1.2.1 → 1.3.0
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/.rubocop.yml +1 -13
- data/.rubocop_todo.yml +47 -2
- data/Gemfile +1 -1
- data/Rakefile +2 -2
- data/bin/ogam +15 -0
- data/lib/ogam.rb +10 -10
- data/lib/ogam/execute.rb +6 -6
- data/lib/ogam/group.rb +3 -3
- data/lib/ogam/group_assigner.rb +40 -40
- data/lib/ogam/job_title.rb +9 -9
- data/lib/ogam/organisation.rb +6 -6
- data/lib/ogam/signature.rb +5 -5
- data/lib/ogam/user.rb +1 -1
- data/lib/ogam/version.rb +1 -1
- data/ogam.gemspec +21 -21
- metadata +4 -5
- data/.rubocop_metrics_todo.yml +0 -59
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bddb0b22c81d3f2620aff1a49023151d69c34c258d92307f0ddfc6f6fb022d36
|
4
|
+
data.tar.gz: bbcffc1503fdc93a50a274578b9a123a756a4a994fbc9b7ad9be4c59c9a6106e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7762c8924dc94be667db497efd57e5e80113700fb1da301123ff0ea86d821fb4dcdfe89ba6c4f776c908de5f08da37276be0118401d174b714baa24f90dfe111
|
7
|
+
data.tar.gz: 2b806186ef4e6bfb0073137c265d3f452ad6f36f9529db2f8c67de0fa9a238ec8cccb358a7492d1a931eb87e5ad116f38c6a172b21b2e34be56b3ae9eb1370e1
|
data/.rubocop.yml
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
inherit_from:
|
2
2
|
- .rubocop_todo.yml
|
3
|
-
- .rubocop_metrics_todo.yml
|
4
3
|
|
5
4
|
inherit_gem:
|
6
5
|
rubocop-ogat:
|
@@ -9,16 +8,5 @@ inherit_gem:
|
|
9
8
|
AllCops:
|
10
9
|
TargetRubyVersion: 2.6
|
11
10
|
|
12
|
-
|
13
|
-
Max: 120
|
14
|
-
|
15
|
-
Metrics/BlockLength:
|
16
|
-
Exclude:
|
17
|
-
- 'spec/**/*.rb'
|
18
|
-
- 'ogatstyle.gemspec'
|
19
|
-
|
20
|
-
Rails/Output:
|
21
|
-
Enabled: false
|
22
|
-
|
23
|
-
Rails/SaveBang:
|
11
|
+
Rails:
|
24
12
|
Enabled: false
|
data/.rubocop_todo.yml
CHANGED
@@ -1,7 +1,52 @@
|
|
1
1
|
# This configuration was generated by
|
2
|
-
# `rubocop --auto-gen-config --exclude-limit
|
3
|
-
# using RuboCop version 0.80.
|
2
|
+
# `rubocop --auto-gen-config --auto-gen-only-exclude --exclude-limit 10000 --no-offense-counts --no-auto-gen-timestamp`
|
3
|
+
# using RuboCop version 0.80.1.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Configuration parameters: Max.
|
10
|
+
Metrics/AbcSize:
|
11
|
+
Exclude:
|
12
|
+
- 'spec/**/*'
|
13
|
+
- 'db/migrate/*'
|
14
|
+
- 'config/routes.rb'
|
15
|
+
- 'config/environments/*.rb'
|
16
|
+
- 'lib/ogam/group_assigner.rb'
|
17
|
+
|
18
|
+
# Configuration parameters: CountComments, Max.
|
19
|
+
Metrics/ClassLength:
|
20
|
+
Exclude:
|
21
|
+
- 'spec/**/*'
|
22
|
+
- 'db/migrate/*'
|
23
|
+
- 'config/routes.rb'
|
24
|
+
- 'config/environments/*.rb'
|
25
|
+
- 'lib/ogam/group_assigner.rb'
|
26
|
+
|
27
|
+
# Configuration parameters: Max.
|
28
|
+
Metrics/CyclomaticComplexity:
|
29
|
+
Exclude:
|
30
|
+
- 'spec/**/*'
|
31
|
+
- 'db/migrate/*'
|
32
|
+
- 'config/routes.rb'
|
33
|
+
- 'config/environments/*.rb'
|
34
|
+
- 'lib/ogam/group_assigner.rb'
|
35
|
+
|
36
|
+
# Configuration parameters: CountComments, Max, ExcludedMethods.
|
37
|
+
Metrics/MethodLength:
|
38
|
+
Exclude:
|
39
|
+
- 'spec/**/*'
|
40
|
+
- 'db/migrate/*'
|
41
|
+
- 'config/routes.rb'
|
42
|
+
- 'config/environments/*.rb'
|
43
|
+
- 'lib/ogam/group_assigner.rb'
|
44
|
+
|
45
|
+
# Configuration parameters: Max.
|
46
|
+
Metrics/PerceivedComplexity:
|
47
|
+
Exclude:
|
48
|
+
- 'spec/**/*'
|
49
|
+
- 'db/migrate/*'
|
50
|
+
- 'config/routes.rb'
|
51
|
+
- 'config/environments/*.rb'
|
52
|
+
- 'lib/ogam/group_assigner.rb'
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
data/bin/ogam
CHANGED
@@ -97,6 +97,21 @@ class CLI < Thor
|
|
97
97
|
desc('set_signature user/domain EMAIL/DOMAIN', 'Set email signatures for users/domains based on user attributes')
|
98
98
|
subcommand 'set_signature', SignatureCLI
|
99
99
|
|
100
|
+
desc('delicense_suspended_ou', 'De-licenses GSEfE from all users under /Suspended')
|
101
|
+
def delicense_suspended_ou
|
102
|
+
Ogam::Execute.single('gam ou "/Suspended" delete license 1010310002', pretend: options[:pretend])
|
103
|
+
end
|
104
|
+
|
105
|
+
desc('suspend USER', 'Suspends a user, moves them to /Suspended, and delicenses GSEfE')
|
106
|
+
def suspend(user)
|
107
|
+
Ogam::Execute.single(
|
108
|
+
"gam update user #{user} suspended on org \"/Suspended\"", pretend: options[:pretend]
|
109
|
+
)
|
110
|
+
puts "Waiting 5 seconds before delicensing..."
|
111
|
+
sleep(5)
|
112
|
+
Ogam::Execute.single("gam user #{user} delete license 1010310002", pretend: options[:pretend])
|
113
|
+
end
|
114
|
+
|
100
115
|
private
|
101
116
|
|
102
117
|
def validate_job_title!(title)
|
data/lib/ogam.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
12
|
-
require
|
3
|
+
require "active_support/all"
|
4
|
+
require "attr_extras"
|
5
|
+
require "ogam/version"
|
6
|
+
require "ogam/execute"
|
7
|
+
require "ogam/group"
|
8
|
+
require "ogam/job_title"
|
9
|
+
require "ogam/user"
|
10
|
+
require "ogam/group_assigner"
|
11
|
+
require "ogam/signature"
|
12
|
+
require "ogam/organisation"
|
13
13
|
|
14
14
|
module Ogam
|
15
15
|
class Error < StandardError; end
|
data/lib/ogam/execute.rb
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
3
|
+
require "csv"
|
4
|
+
require "tempfile"
|
5
|
+
require "English"
|
6
6
|
|
7
7
|
module Ogam
|
8
8
|
# Methods to execute GAM commands
|
9
9
|
class Execute
|
10
10
|
def self.single(command, pretend: true)
|
11
|
-
puts "#{pretend ?
|
11
|
+
puts "#{pretend ? "[PRETEND] " : nil}Executing #{command}"
|
12
12
|
return if pretend
|
13
13
|
|
14
14
|
system("~/bin/gam/#{command.strip}", exception: true)
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.fetch(command, pretend: true)
|
18
|
-
puts "#{pretend ?
|
18
|
+
puts "#{pretend ? "[PRETEND] " : nil}Fetching results from #{command}"
|
19
19
|
return if pretend
|
20
20
|
|
21
21
|
`~/bin/gam/#{command.strip}`
|
@@ -35,7 +35,7 @@ module Ogam
|
|
35
35
|
def self.multiple(commands, pretend: true)
|
36
36
|
return if commands.empty?
|
37
37
|
|
38
|
-
puts "#{pretend ?
|
38
|
+
puts "#{pretend ? "[PRETEND] " : nil}Executing multiple commands:"
|
39
39
|
commands.each do |command|
|
40
40
|
puts "\t#{command}"
|
41
41
|
end
|
data/lib/ogam/group.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require "shellwords"
|
4
4
|
module Ogam
|
5
5
|
# Methods relating to groups
|
6
6
|
class Group
|
7
7
|
def self.groups_for_domain(domain)
|
8
|
-
Ogam::Execute.fetch_csv("gam print groups domain #{domain}", pretend: false).map { |r| r[
|
8
|
+
Ogam::Execute.fetch_csv("gam print groups domain #{domain}", pretend: false).map { |r| r["Email"] }
|
9
9
|
end
|
10
10
|
|
11
11
|
def self.add_group_member_command(user:, group:)
|
@@ -26,7 +26,7 @@ module Ogam
|
|
26
26
|
|
27
27
|
def self.create_distribution_list_command(email_address, name, moderated)
|
28
28
|
<<~COMMAND
|
29
|
-
gam create group #{email_address} name #{Shellwords.escape(name)} allow_external_members false who_can_join invited_can_join primary_language en-GB who_can_view_membership all_in_domain_can_view include_in_global_address_list true is_archived false members_can_post_as_the_group false allow_web_posting false send_message_deny_notification true reply_to reply_to_sender message_moderation_level #{moderated ?
|
29
|
+
gam create group #{email_address} name #{Shellwords.escape(name)} allow_external_members false who_can_join invited_can_join primary_language en-GB who_can_view_membership all_in_domain_can_view include_in_global_address_list true is_archived false members_can_post_as_the_group false allow_web_posting false send_message_deny_notification true reply_to reply_to_sender message_moderation_level #{moderated ? "moderate_all_messages" : "moderate_none"} who_can_contact_owner all_managers_can_contact who_can_leave_group none_can_leave who_can_add none_can_add who_can_post_message all_in_domain_can_post who_can_invite none_can_invite who_can_view_group all_managers_can_view show_in_group_directory true archive_only false spam_moderation_level moderate
|
30
30
|
COMMAND
|
31
31
|
end
|
32
32
|
|
data/lib/ogam/group_assigner.rb
CHANGED
@@ -5,28 +5,28 @@ module Ogam
|
|
5
5
|
class GroupAssigner
|
6
6
|
static_facade :call, :users, :domain, [pretend: true]
|
7
7
|
|
8
|
-
SUBJECT_TEACHER_TITLES = [
|
8
|
+
SUBJECT_TEACHER_TITLES = ["Teacher of ", "Head of ", "Second in ", "Third in "].freeze
|
9
9
|
SUBJECT_MAPPING = {
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
10
|
+
"art-teachers" => ["Art", "Creative Arts"],
|
11
|
+
"business-teachers" => ["Business Studies", "Business & IT"],
|
12
|
+
"dance-teachers" => ["Dance", "Performing Arts", "Creative Arts"],
|
13
|
+
"design-technology-teachers" => %w[Technology Engineering],
|
14
|
+
"drama-teachers" => ["Drama", "Music & Drama", "Performing Arts", "Creative Arts"],
|
15
|
+
"english-teachers" => ["English"],
|
16
|
+
"epq-teachers" => [],
|
17
|
+
"geography-teachers" => ["Humanities"],
|
18
|
+
"guidance-teachers" => [],
|
19
|
+
"health-social-care-teachers" => ["Health & Social Care"],
|
20
|
+
"history-teachers" => %w[Humanities History],
|
21
|
+
"ict-teachers" => ["Computer Science", "Business & IT"],
|
22
|
+
"law-teachers" => ["Law"],
|
23
|
+
"maths-teachers" => ["Maths"],
|
24
|
+
"mfl-teachers" => ["MFL"],
|
25
|
+
"music-teachers" => ["Music", "Music & Drama", "Creative Arts"],
|
26
|
+
"pe-teachers" => ["PE"],
|
27
|
+
"re-life-teachers" => ["Humanities", "Religious Studies"],
|
28
|
+
"science-teachers" => ["Science"],
|
29
|
+
"social-sciences-teachers" => ["Social Sciences"]
|
30
30
|
}.freeze
|
31
31
|
|
32
32
|
def self.for_domain(domain, pretend: true)
|
@@ -34,37 +34,37 @@ module Ogam
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def self.for_user(email, pretend: true)
|
37
|
-
call(User.active_by_email(email), email.split(
|
37
|
+
call(User.active_by_email(email), email.split("@").last, pretend: pretend)
|
38
38
|
end
|
39
39
|
|
40
40
|
def self.groups_for_job_title(job_title, entry, domain)
|
41
41
|
groups_domain = "groups.#{domain}"
|
42
42
|
|
43
43
|
groups = groups_from_entry(entry, groups_domain)
|
44
|
-
groups += subject_groups(job_title, groups_domain) if entry[
|
44
|
+
groups += subject_groups(job_title, groups_domain) if entry["Teaching"]
|
45
45
|
|
46
|
-
groups << "heads-of-departments@#{groups_domain}" if entry[
|
47
|
-
groups << "principal@#{groups_domain}" if entry[
|
46
|
+
groups << "heads-of-departments@#{groups_domain}" if entry["Teaching"] && job_title.include?("Head of ")
|
47
|
+
groups << "principal@#{groups_domain}" if entry["SLT"] && ["Principal", "Acting Principal"].include?(job_title)
|
48
48
|
|
49
|
-
groups << "learning-managers@#{groups_domain}" if job_title.include?(
|
50
|
-
groups << "academy-council@#{groups_domain}" if job_title.include?(
|
51
|
-
groups <<
|
49
|
+
groups << "learning-managers@#{groups_domain}" if job_title.include?("Learning Manager")
|
50
|
+
groups << "academy-council@#{groups_domain}" if job_title.include?("Academy Council")
|
51
|
+
groups << "business-managers@trust-wide.outwood.com" if job_title == "Business Manager"
|
52
52
|
|
53
53
|
groups
|
54
54
|
end
|
55
55
|
|
56
56
|
def self.groups_from_entry(entry, groups_domain)
|
57
|
-
groups = []
|
58
|
-
groups << "teaching-staff@#{groups_domain}" if entry[
|
59
|
-
groups << "support-staff@#{groups_domain}" if entry[
|
60
|
-
if entry[
|
57
|
+
groups = ["all-staff-direct@trust-wide.outwood.com"]
|
58
|
+
groups << "teaching-staff@#{groups_domain}" if entry["Teaching"]
|
59
|
+
groups << "support-staff@#{groups_domain}" if entry["Support"]
|
60
|
+
if entry["SLT"]
|
61
61
|
groups << "slt@#{groups_domain}"
|
62
62
|
groups << "leadership-team@#{groups_domain}"
|
63
63
|
end
|
64
|
-
groups <<
|
65
|
-
groups <<
|
66
|
-
groups <<
|
67
|
-
groups <<
|
64
|
+
groups << "finance@trust-wide.outwood.com" if entry["Finance"]
|
65
|
+
groups << "data-exams@trust-wide.outwood.com" if entry["Data and Exams"]
|
66
|
+
groups << "human-resources@trust-wide.outwood.com" if entry["HR"]
|
67
|
+
groups << "ict-support@trust-wide.outwood.com" if entry["ICT Support"]
|
68
68
|
groups
|
69
69
|
end
|
70
70
|
|
@@ -74,9 +74,9 @@ module Ogam
|
|
74
74
|
groups = []
|
75
75
|
SUBJECT_MAPPING.each do |group_prefix, subject_words|
|
76
76
|
has_subject =
|
77
|
-
subject_words.any?
|
77
|
+
subject_words.any? { |subject|
|
78
78
|
SUBJECT_TEACHER_TITLES.any? { |title| job_title.include? "#{title}#{subject}" }
|
79
|
-
|
79
|
+
}
|
80
80
|
next unless has_subject
|
81
81
|
|
82
82
|
groups << "#{group_prefix}@#{groups_domain}"
|
@@ -97,7 +97,7 @@ module Ogam
|
|
97
97
|
end
|
98
98
|
|
99
99
|
def valid_groups
|
100
|
-
@valid_groups ||= Group.groups_for_domain("groups.#{domain}") + Group.groups_for_domain(
|
100
|
+
@valid_groups ||= Group.groups_for_domain("groups.#{domain}") + Group.groups_for_domain("trust-wide.outwood.com")
|
101
101
|
end
|
102
102
|
|
103
103
|
def generate_group_assignments
|
@@ -110,7 +110,7 @@ module Ogam
|
|
110
110
|
|
111
111
|
def group_assignments_for_user(user)
|
112
112
|
group_assignments = []
|
113
|
-
email = user[
|
113
|
+
email = user["primaryEmail"]
|
114
114
|
User.job_titles_for_user(user).each do |job_title|
|
115
115
|
entry = approved_job_titles.fetch(job_title, nil)
|
116
116
|
if entry.nil?
|
data/lib/ogam/job_title.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require "open-uri"
|
4
|
+
require "csv"
|
5
5
|
|
6
6
|
module Ogam
|
7
7
|
# Allows working with a list of approved job titles
|
8
8
|
class JobTitle
|
9
9
|
static_facade :all
|
10
10
|
|
11
|
-
CSV_URL =
|
11
|
+
CSV_URL = "https://docs.google.com/spreadsheets/d/12nl5OBGSmOSsWilzWfflmAHO-8EyfCjVXYLeUDqjB60/export?format=csv&id=12nl5OBGSmOSsWilzWfflmAHO-8EyfCjVXYLeUDqjB60&gid=1604665254"
|
12
12
|
|
13
13
|
def self.job_titles(str)
|
14
14
|
return [] if str.blank?
|
15
15
|
|
16
|
-
str.split(
|
16
|
+
str.split(" / ")
|
17
17
|
end
|
18
18
|
|
19
19
|
def all
|
@@ -23,16 +23,16 @@ module Ogam
|
|
23
23
|
private
|
24
24
|
|
25
25
|
def download
|
26
|
-
puts
|
26
|
+
puts "Fetching list of accepted job titles"
|
27
27
|
URI.parse(CSV_URL).read
|
28
28
|
end
|
29
29
|
|
30
30
|
def parse(str)
|
31
31
|
data = {}
|
32
32
|
CSV.parse(str, headers: true).each do |row|
|
33
|
-
next if row[
|
33
|
+
next if row["Job Title"].blank?
|
34
34
|
|
35
|
-
data[row[
|
35
|
+
data[row["Job Title"]] = entry_for_row(row)
|
36
36
|
end
|
37
37
|
|
38
38
|
data
|
@@ -40,8 +40,8 @@ module Ogam
|
|
40
40
|
|
41
41
|
def entry_for_row(row)
|
42
42
|
entry = {}
|
43
|
-
(row.headers - [
|
44
|
-
entry[col] = row[col] ==
|
43
|
+
(row.headers - ["Job Title"]).each do |col|
|
44
|
+
entry[col] = row[col] == "TRUE"
|
45
45
|
end
|
46
46
|
entry
|
47
47
|
end
|
data/lib/ogam/organisation.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require "open-uri"
|
4
|
+
require "csv"
|
5
5
|
|
6
6
|
module Ogam
|
7
7
|
# Allows working with a list of approved organisations
|
8
8
|
class Organisation
|
9
9
|
static_facade :all
|
10
10
|
|
11
|
-
CSV_URL =
|
11
|
+
CSV_URL = "https://docs.google.com/spreadsheets/d/12nl5OBGSmOSsWilzWfflmAHO-8EyfCjVXYLeUDqjB60/export?format=csv&id=12nl5OBGSmOSsWilzWfflmAHO-8EyfCjVXYLeUDqjB60&gid=46181347"
|
12
12
|
|
13
13
|
def all
|
14
14
|
@all ||= parse(download)
|
@@ -17,16 +17,16 @@ module Ogam
|
|
17
17
|
private
|
18
18
|
|
19
19
|
def download
|
20
|
-
puts
|
20
|
+
puts "Fetching list of accepted organisations"
|
21
21
|
URI.parse(CSV_URL).read
|
22
22
|
end
|
23
23
|
|
24
24
|
def parse(str)
|
25
25
|
data = {}
|
26
26
|
CSV.parse(str, headers: true).each do |row|
|
27
|
-
next if row[
|
27
|
+
next if row["Domain"].blank?
|
28
28
|
|
29
|
-
data[row[
|
29
|
+
data[row["Domain"].strip] = row["Organisation Name"].strip
|
30
30
|
end
|
31
31
|
|
32
32
|
data
|
data/lib/ogam/signature.rb
CHANGED
@@ -4,11 +4,11 @@ module Ogam
|
|
4
4
|
# Methods relating to signatures
|
5
5
|
class Signature
|
6
6
|
def self.update_signature_command(user)
|
7
|
-
email = user.fetch(
|
7
|
+
email = user.fetch("primaryEmail")
|
8
8
|
html = signature_html(
|
9
|
-
user.fetch(
|
10
|
-
user.fetch(
|
11
|
-
user.fetch(
|
9
|
+
user.fetch("name.fullName", nil),
|
10
|
+
user.fetch("organizations.0.title", nil),
|
11
|
+
user.fetch("organizations.0.name", nil)
|
12
12
|
)
|
13
13
|
|
14
14
|
"gam user #{email} signature \"#{html}\""
|
@@ -16,7 +16,7 @@ module Ogam
|
|
16
16
|
|
17
17
|
def self.signature_html(name, job_title, organisation)
|
18
18
|
parts = [name, job_title, organisation].reject(&:blank?)
|
19
|
-
"<p>#{parts.join(
|
19
|
+
"<p>#{parts.join("<br />")}</p><hr color=#5b3293 />"
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
data/lib/ogam/user.rb
CHANGED
data/lib/ogam/version.rb
CHANGED
data/ogam.gemspec
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
lib = File.expand_path(
|
3
|
+
lib = File.expand_path("lib", __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
require
|
5
|
+
require "ogam/version"
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
|
-
spec.name
|
9
|
-
spec.version
|
10
|
-
spec.authors
|
11
|
-
spec.email
|
8
|
+
spec.name = "ogam"
|
9
|
+
spec.version = Ogam::VERSION
|
10
|
+
spec.authors = ["Elliot Bowes"]
|
11
|
+
spec.email = ["e.bowes@outwood.com"]
|
12
12
|
|
13
|
-
spec.summary
|
13
|
+
spec.summary = "Wrapper around GAM for common tasks with OGAT's G Suite instance."
|
14
14
|
# spec.description = %q{TODO: Write a longer description or delete this line.}
|
15
|
-
spec.homepage
|
16
|
-
spec.metadata[
|
17
|
-
spec.metadata[
|
15
|
+
spec.homepage = "https://github.com/Outwood/ogam"
|
16
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
17
|
+
spec.metadata["source_code_uri"] = "https://github.com/Outwood/ogam"
|
18
18
|
|
19
19
|
# Specify which files should be added to the gem when it is released.
|
20
20
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
@@ -22,17 +22,17 @@ Gem::Specification.new do |spec|
|
|
22
22
|
Dir.chdir(File.expand_path(__dir__)) do
|
23
23
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
24
24
|
end
|
25
|
-
spec.bindir =
|
26
|
-
spec.executables <<
|
27
|
-
spec.require_paths = [
|
25
|
+
spec.bindir = "bin"
|
26
|
+
spec.executables << "ogam"
|
27
|
+
spec.require_paths = ["lib"]
|
28
28
|
|
29
|
-
spec.add_runtime_dependency
|
30
|
-
spec.add_runtime_dependency
|
31
|
-
spec.add_runtime_dependency
|
29
|
+
spec.add_runtime_dependency "activesupport", "~> 6.0.2"
|
30
|
+
spec.add_runtime_dependency "attr_extras", "~> 6.2.3"
|
31
|
+
spec.add_runtime_dependency "thor", "~> 1.0.1"
|
32
32
|
|
33
|
-
spec.add_development_dependency
|
34
|
-
spec.add_development_dependency
|
35
|
-
spec.add_development_dependency
|
36
|
-
spec.add_development_dependency
|
37
|
-
spec.add_development_dependency
|
33
|
+
spec.add_development_dependency "bundler", "~> 2.1"
|
34
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
35
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
36
|
+
spec.add_development_dependency "rubocop-ogat", "~> 2.0.1"
|
37
|
+
spec.add_development_dependency "simplecov", "~> 0.18.4"
|
38
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ogam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elliot Bowes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -100,14 +100,14 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 2.0.1
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: 2.0.1
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: simplecov
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -133,7 +133,6 @@ files:
|
|
133
133
|
- ".gitignore"
|
134
134
|
- ".rspec"
|
135
135
|
- ".rubocop.yml"
|
136
|
-
- ".rubocop_metrics_todo.yml"
|
137
136
|
- ".rubocop_todo.yml"
|
138
137
|
- ".ruby-version"
|
139
138
|
- ".travis.yml"
|
data/.rubocop_metrics_todo.yml
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
Metrics/AbcSize:
|
2
|
-
Exclude:
|
3
|
-
- db/**/*
|
4
|
-
- spec/**/*
|
5
|
-
- config/routes.rb
|
6
|
-
- lib/ogam/group_assigner.rb
|
7
|
-
|
8
|
-
Metrics/BlockLength:
|
9
|
-
Exclude:
|
10
|
-
- db/**/*
|
11
|
-
- spec/**/*
|
12
|
-
- config/routes.rb
|
13
|
-
|
14
|
-
Metrics/BlockNesting:
|
15
|
-
Exclude:
|
16
|
-
- db/**/*
|
17
|
-
- spec/**/*
|
18
|
-
- config/routes.rb
|
19
|
-
|
20
|
-
Metrics/ClassLength:
|
21
|
-
Exclude:
|
22
|
-
- db/**/*
|
23
|
-
- spec/**/*
|
24
|
-
- config/routes.rb
|
25
|
-
- lib/ogam/group_assigner.rb
|
26
|
-
|
27
|
-
Metrics/CyclomaticComplexity:
|
28
|
-
Exclude:
|
29
|
-
- db/**/*
|
30
|
-
- spec/**/*
|
31
|
-
- config/routes.rb
|
32
|
-
- lib/ogam/group_assigner.rb
|
33
|
-
|
34
|
-
Metrics/MethodLength:
|
35
|
-
Exclude:
|
36
|
-
- db/**/*
|
37
|
-
- spec/**/*
|
38
|
-
- config/routes.rb
|
39
|
-
- lib/ogam/group_assigner.rb
|
40
|
-
|
41
|
-
Metrics/ModuleLength:
|
42
|
-
Exclude:
|
43
|
-
- db/**/*
|
44
|
-
- spec/**/*
|
45
|
-
- config/routes.rb
|
46
|
-
|
47
|
-
Metrics/ParameterLists:
|
48
|
-
Exclude:
|
49
|
-
- db/**/*
|
50
|
-
- spec/**/*
|
51
|
-
- config/routes.rb
|
52
|
-
|
53
|
-
Metrics/PerceivedComplexity:
|
54
|
-
Exclude:
|
55
|
-
- db/**/*
|
56
|
-
- spec/**/*
|
57
|
-
- config/routes.rb
|
58
|
-
- lib/ogam/group_assigner.rb
|
59
|
-
|