qa_cube 0.0.4 → 0.0.5
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/CREDIT +1 -0
- data/Gemfile.lock +20 -0
- data/LICENSE +1 -0
- data/lib/.gitignore +1 -0
- data/lib/appender.rb +55 -0
- data/lib/qa_cube/appender.rb +54 -0
- data/lib/qa_cube/version.rb +1 -1
- data/qa_cube.gemspec +2 -2
- metadata +11 -6
- data/.gitignore +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 920a047ff624eaad42076bf7759b45dedc6aceaa
|
4
|
+
data.tar.gz: cbc1016e96d664622a6188d2e84512fbaa2386e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20481caae32dfb5f2e99e81a9e3f7514888b99983e6f38cb527e068508cdff81cc207cce5372b2d9137eec857312a40cde54a244bf69c867d9427b36c655363c
|
7
|
+
data.tar.gz: 007479dd668a6a7edb8f9ba145edfb9e567fd704302101f13e80afdf6029fd88da9b72c8ee6b1a41272d005d1ca106b2596ad8089ca119bb7cfd2e2e72bf924d
|
data/CREDIT
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Since this code is mostly from Google's developer examples, it falls under https://opensource.google.com/docs/thirdparty/licenses/#GoogleAuthoredCode . Anything I've added on top of it is "public domain/free for any use".
|
data/Gemfile.lock
ADDED
data/LICENSE
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Since this code is mostly from Google's developer examples, it falls under https://opensource.google.com/docs/thirdparty/licenses/#GoogleAuthoredCode . Anything I've added on top of it is "public domain/free for any use".
|
data/lib/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
client_secret.json
|
data/lib/appender.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require "qa_cube/version"
|
2
|
+
require 'google/apis/sheets_v4'
|
3
|
+
require 'googleauth'
|
4
|
+
require 'googleauth/stores/file_token_store'
|
5
|
+
|
6
|
+
require 'fileutils'
|
7
|
+
|
8
|
+
|
9
|
+
module QACube
|
10
|
+
class SheetsAppender
|
11
|
+
|
12
|
+
OOB_URI = 'urn:ietf:wg:oauth:2.0:oob'
|
13
|
+
APPLICATION_NAME = 'Google Sheets API Test Result Appender'
|
14
|
+
CREDENTIALS_PATH = File.join(Dir.home, '.credentials','sheetsappender.yaml')
|
15
|
+
SCOPE = Google::Apis::SheetsV4::AUTH_SPREADSHEETS
|
16
|
+
|
17
|
+
def initialize(sheet_name:, spreadsheet_id:, range:, verbose: nil, client_secrets_path:)
|
18
|
+
@verbose ||= verbose
|
19
|
+
if @verbose.nil?
|
20
|
+
@verbose = false
|
21
|
+
end
|
22
|
+
@client_secrets_path = client_secrets_path
|
23
|
+
@service = Google::Apis::SheetsV4::SheetsService.new
|
24
|
+
@service.authorization = authorize
|
25
|
+
@spreadsheet_id = spreadsheet_id
|
26
|
+
@sheet_name = sheet_name
|
27
|
+
@range = "\'#{sheet_name}\'!#{range}"
|
28
|
+
end
|
29
|
+
|
30
|
+
def append(values:)
|
31
|
+
request_body = Google::Apis::SheetsV4::ValueRange.new({values: values})
|
32
|
+
response = @service.append_spreadsheet_value(@spreadsheet_id, @range, request_body, value_input_option: "USER_ENTERED")
|
33
|
+
if @verbose
|
34
|
+
puts response.to_json
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def authorize
|
39
|
+
FileUtils.mkdir_p(File.dirname(CREDENTIALS_PATH))
|
40
|
+
client_id = Google::Auth::ClientId.from_file(@client_secrets_path)
|
41
|
+
token_store = Google::Auth::Stores::FileTokenStore.new(file: CREDENTIALS_PATH)
|
42
|
+
authorizer = Google::Auth::UserAuthorizer.new(client_id, SCOPE, token_store)
|
43
|
+
user_id = 'default'
|
44
|
+
credentials = authorizer.get_credentials(user_id)
|
45
|
+
if credentials.nil?
|
46
|
+
url = authorizer.get_authorization_url(base_url: OOB_URI)
|
47
|
+
puts "First time auth URL"
|
48
|
+
puts url
|
49
|
+
code = gets
|
50
|
+
credentials = authorizer.get_and_store_credentials_from_code(user_id: user_id, code: code, base_url: OOB_URI)
|
51
|
+
end
|
52
|
+
credentials
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require "qa_cube/version"
|
2
|
+
require 'google/apis/sheets_v4'
|
3
|
+
require 'googleauth'
|
4
|
+
require 'googleauth/stores/file_token_store'
|
5
|
+
|
6
|
+
require 'fileutils'
|
7
|
+
|
8
|
+
module QaCube
|
9
|
+
class SheetsAppender
|
10
|
+
|
11
|
+
OOB_URI = 'urn:ietf:wg:oauth:2.0:oob'
|
12
|
+
APPLICATION_NAME = 'Google Sheets API Test Result Appender'
|
13
|
+
CREDENTIALS_PATH = File.join(Dir.home, '.credentials','sheetsappender.yaml')
|
14
|
+
SCOPE = Google::Apis::SheetsV4::AUTH_SPREADSHEETS
|
15
|
+
|
16
|
+
def initialize(sheet_name:, spreadsheet_id:, range:, verbose: nil, client_secrets_path:)
|
17
|
+
@verbose ||= verbose
|
18
|
+
if @verbose.nil?
|
19
|
+
@verbose = false
|
20
|
+
end
|
21
|
+
@client_secrets_path = client_secrets_path
|
22
|
+
@service = Google::Apis::SheetsV4::SheetsService.new
|
23
|
+
@service.authorization = authorize
|
24
|
+
@spreadsheet_id = spreadsheet_id
|
25
|
+
@sheet_name = sheet_name
|
26
|
+
@range = "\'#{sheet_name}\'!#{range}"
|
27
|
+
end
|
28
|
+
|
29
|
+
def append(values:)
|
30
|
+
request_body = Google::Apis::SheetsV4::ValueRange.new({values: values})
|
31
|
+
response = @service.append_spreadsheet_value(@spreadsheet_id, @range, request_body, value_input_option: "USER_ENTERED")
|
32
|
+
if @verbose
|
33
|
+
puts response.to_json
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def authorize
|
38
|
+
FileUtils.mkdir_p(File.dirname(CREDENTIALS_PATH))
|
39
|
+
client_id = Google::Auth::ClientId.from_file(@client_secrets_path)
|
40
|
+
token_store = Google::Auth::Stores::FileTokenStore.new(file: CREDENTIALS_PATH)
|
41
|
+
authorizer = Google::Auth::UserAuthorizer.new(client_id, SCOPE, token_store)
|
42
|
+
user_id = 'default'
|
43
|
+
credentials = authorizer.get_credentials(user_id)
|
44
|
+
if credentials.nil?
|
45
|
+
url = authorizer.get_authorization_url(base_url: OOB_URI)
|
46
|
+
puts "First time auth URL"
|
47
|
+
puts url
|
48
|
+
code = gets
|
49
|
+
credentials = authorizer.get_and_store_credentials_from_code(user_id: user_id, code: code, base_url: OOB_URI)
|
50
|
+
end
|
51
|
+
credentials
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
data/lib/qa_cube/version.rb
CHANGED
data/qa_cube.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Bennett Talpers"]
|
10
10
|
spec.email = ["bennett.talpers@gmail.com"]
|
11
11
|
|
12
|
-
spec.summary = %q{
|
13
|
-
spec.description = %q{
|
12
|
+
spec.summary = %q{A collection of QA tools.}
|
13
|
+
spec.description = %q{A collection of QA tooling. Currently only includes sheetsappender, which is a tool for appending data to an existing google sheets page}
|
14
14
|
spec.homepage = "https://github.com/btalpers/qa_cube"
|
15
15
|
|
16
16
|
if spec.respond_to?(:metadata)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qa_cube
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bennett Talpers
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-01-
|
11
|
+
date: 2018-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,21 +66,26 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.6.2
|
69
|
-
description:
|
70
|
-
|
69
|
+
description: A collection of QA tooling. Currently only includes sheetsappender, which
|
70
|
+
is a tool for appending data to an existing google sheets page
|
71
71
|
email:
|
72
72
|
- bennett.talpers@gmail.com
|
73
73
|
executables: []
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
|
-
-
|
77
|
+
- CREDIT
|
78
78
|
- Gemfile
|
79
|
+
- Gemfile.lock
|
80
|
+
- LICENSE
|
79
81
|
- README.md
|
80
82
|
- Rakefile
|
81
83
|
- bin/console
|
82
84
|
- bin/setup
|
85
|
+
- lib/.gitignore
|
86
|
+
- lib/appender.rb
|
83
87
|
- lib/qa_cube.rb
|
88
|
+
- lib/qa_cube/appender.rb
|
84
89
|
- lib/qa_cube/version.rb
|
85
90
|
- qa_cube.gemspec
|
86
91
|
homepage: https://github.com/btalpers/qa_cube
|
@@ -106,5 +111,5 @@ rubyforge_project:
|
|
106
111
|
rubygems_version: 2.5.1
|
107
112
|
signing_key:
|
108
113
|
specification_version: 4
|
109
|
-
summary:
|
114
|
+
summary: A collection of QA tools.
|
110
115
|
test_files: []
|