Class: SportNginAwsAuditor::GoogleSheet
- Inherits:
-
Object
- Object
- SportNginAwsAuditor::GoogleSheet
- Extended by:
- GoogleWrapper
- Defined in:
- lib/sport_ngin_aws_auditor/google_sheet.rb
Instance Attribute Summary collapse
-
#path ⇒ Object
Returns the value of attribute path.
-
#sheet ⇒ Object
Returns the value of attribute sheet.
-
#worksheet ⇒ Object
Returns the value of attribute worksheet.
Attributes included from GoogleWrapper
Class Method Summary collapse
-
.create_sheet(title, path) ⇒ Object
returns a spreadsheet object.
- .delete_all_rows(worksheet) ⇒ Object
- .first_or_create(title) ⇒ Object
-
.go_to_collection(directory) ⇒ Object
returns a collection object.
-
.go_to_subcollection(base, subs) ⇒ Object
returns a collection object.
-
.worksheet(spreadsheet, title) ⇒ Object
returns a worksheet object.
Instance Method Summary collapse
-
#initialize(title, path, environment) ⇒ GoogleSheet
constructor
A new instance of GoogleSheet.
- #write_header(header) ⇒ Object
- #write_row(value_hash) ⇒ Object
Constructor Details
#initialize(title, path, environment) ⇒ GoogleSheet
Returns a new instance of GoogleSheet.
8 9 10 11 |
# File 'lib/sport_ngin_aws_auditor/google_sheet.rb', line 8 def initialize(title, path, environment) @sheet = self.class.create_sheet(title, path) @worksheet = self.class.worksheet(sheet, environment) end |
Instance Attribute Details
#path ⇒ Object
Returns the value of attribute path.
7 8 9 |
# File 'lib/sport_ngin_aws_auditor/google_sheet.rb', line 7 def path @path end |
#sheet ⇒ Object
Returns the value of attribute sheet.
7 8 9 |
# File 'lib/sport_ngin_aws_auditor/google_sheet.rb', line 7 def sheet @sheet end |
#worksheet ⇒ Object
Returns the value of attribute worksheet.
7 8 9 |
# File 'lib/sport_ngin_aws_auditor/google_sheet.rb', line 7 def worksheet @worksheet end |
Class Method Details
.create_sheet(title, path) ⇒ Object
returns a spreadsheet object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/sport_ngin_aws_auditor/google_sheet.rb', line 29 def self.create_sheet(title, path) folder = go_to_collection(path) if path if folder spreadsheet = folder.files("title" => title, "title-exact" => true).first if spreadsheet return spreadsheet else file = first_or_create(title) folder.add(file) google.root_collection.remove(file) return folder.files("title" => title, "title-exact" => true).first end else first_or_create(title) end end |
.delete_all_rows(worksheet) ⇒ Object
71 72 73 74 75 76 77 |
# File 'lib/sport_ngin_aws_auditor/google_sheet.rb', line 71 def self.delete_all_rows(worksheet) worksheet.list.each do |row| row.clear end worksheet.save worksheet end |
.first_or_create(title) ⇒ Object
23 24 25 26 |
# File 'lib/sport_ngin_aws_auditor/google_sheet.rb', line 23 def self.first_or_create(title) spreadsheet = google.root_collection.files("title" => title, "title-exact" => true).first spreadsheet ? spreadsheet : google.create_spreadsheet(title) end |
.go_to_collection(directory) ⇒ Object
returns a collection object
53 54 55 56 57 58 |
# File 'lib/sport_ngin_aws_auditor/google_sheet.rb', line 53 def self.go_to_collection(directory) if directory path = directory.split('/') go_to_subcollection(google.collection_by_title(path.first),path[1..-1]) end end |
.go_to_subcollection(base, subs) ⇒ Object
returns a collection object
61 62 63 64 65 66 67 68 69 |
# File 'lib/sport_ngin_aws_auditor/google_sheet.rb', line 61 def self.go_to_subcollection(base, subs) puts "Folder doesn't exist in specified path" and exit if base.nil? if subs.empty? return base else base = base.subcollection_by_title(subs.first) go_to_subcollection(base,subs[1..-1]) end end |
.worksheet(spreadsheet, title) ⇒ Object
returns a worksheet object
47 48 49 50 |
# File 'lib/sport_ngin_aws_auditor/google_sheet.rb', line 47 def self.worksheet(spreadsheet, title) worksheet = spreadsheet.worksheet_by_title(title) worksheet ? delete_all_rows(worksheet) : spreadsheet.add_worksheet(title) end |
Instance Method Details
#write_header(header) ⇒ Object
13 14 15 16 |
# File 'lib/sport_ngin_aws_auditor/google_sheet.rb', line 13 def write_header(header) worksheet.list.keys = header.unshift('name') worksheet.save end |
#write_row(value_hash) ⇒ Object
18 19 20 21 |
# File 'lib/sport_ngin_aws_auditor/google_sheet.rb', line 18 def write_row(value_hash) worksheet.list.push(value_hash) worksheet.save end |