qa_cube 0.0.1 → 0.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f9479a987207443d81225908394762ebc83f4b4b
4
- data.tar.gz: af94890d6bfb8e5774f14168bb27cf92df966199
3
+ metadata.gz: 7536b4f77c7471067b2bcd91ad4f89b701979ce7
4
+ data.tar.gz: 0cb0b861e469145aa4d43d51481a33992438677c
5
5
  SHA512:
6
- metadata.gz: 24b04b352c9fb7649e54dfc6cc22f0c87880acb4c3d75a608fd0737259e2905a43b7d7a0298c1c18ed102be67de00882dc04d3c0a7052895bc1df9cd319c2ff9
7
- data.tar.gz: d264715d6e7a66c45837bb6bdcc228dad4f7bd5349fc7daea8876a5939d56fab6b8bd526da564f559020761488a47c2ca9cae206976c02082078af049323dc21
6
+ metadata.gz: fa42f5185aeb99d459d82abcb9804e748c8be2e40655dd9b2a1163625f100770394ca56bee2c16411bae5e0dda7e0b68f01c4c13d325e9318af32c309dac8e75
7
+ data.tar.gz: ebd8eeb13d7b005cc5e85e68ade6c176d4ecbdc185bd25fdccf43996e81dc45a78eff97cb27de7b27854cba9516d38e477064d15b79f93fe29a36ea2021ebbe7
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in qa_cube.gemspec
6
+ gemspec
data/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # QaCube
2
+
3
+ Various tools useful for QA written in `ruby`.
4
+
5
+ Current contents:
6
+ - Sheets-Appender
7
+
8
+
9
+ ## Installation
10
+
11
+ Add this line to your application's Gemfile:
12
+
13
+ ```ruby
14
+ gem 'qa_cube'
15
+ ```
16
+
17
+ And then execute:
18
+
19
+ $ bundle
20
+
21
+ Or install it yourself as:
22
+
23
+ $ gem install qa_cube
24
+
25
+ ## Usage
26
+
27
+ TODO: Write usage instructions here
28
+
29
+ ## Development
30
+
31
+ After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
32
+
33
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
34
+
35
+ ## Contributing
36
+
37
+ Bug reports and pull requests are welcome on GitHub at https://github.com/btalpers/qa_cube.
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "qa_cube"
5
+
6
+ require "irb"
7
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
@@ -0,0 +1,3 @@
1
+ module QaCube
2
+ VERSION = "0.0.4"
3
+ end
data/lib/qa_cube.rb ADDED
@@ -0,0 +1,5 @@
1
+ require "qa_cube/version"
2
+
3
+ module QaCube
4
+ #pass
5
+ end
data/qa_cube.gemspec ADDED
@@ -0,0 +1,34 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "qa_cube/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "qa_cube"
8
+ spec.version = QaCube::VERSION
9
+ spec.authors = ["Bennett Talpers"]
10
+ spec.email = ["bennett.talpers@gmail.com"]
11
+
12
+ spec.summary = %q{Allows a user to easily append data to a Google Sheets sheet.}
13
+ spec.description = %q{Code taken from the examples found on https://developers.google.com/sheets/api/samples and parameterized, so it can be plugged & easily to automated QA projects.}
14
+ spec.homepage = "https://github.com/btalpers/qa_cube"
15
+
16
+ if spec.respond_to?(:metadata)
17
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
18
+ else
19
+ raise "RubyGems 2.0 or newer is required to protect against " \
20
+ "public gem pushes."
21
+ end
22
+
23
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
24
+ f.match(%r{^(test|spec|features)/})
25
+ end
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ["lib"]
29
+
30
+ spec.add_development_dependency "bundler", "~> 1.15"
31
+ spec.add_development_dependency "rake", "~> 10.0"
32
+ spec.add_runtime_dependency "google-api-client", "~> 0.19.1"
33
+ spec.add_runtime_dependency "googleauth", "~> 0.6.2"
34
+ end
metadata CHANGED
@@ -1,28 +1,92 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qa_cube
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bennett Talpers
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2017-12-27 00:00:00.000000000 Z
12
- dependencies: []
13
- description: Allows a user to easily append data to a Google Sheets sheet.
11
+ date: 2018-01-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.15'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.15'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: google-api-client
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.19.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.19.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: googleauth
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.6.2
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.6.2
69
+ description: Code taken from the examples found on https://developers.google.com/sheets/api/samples
70
+ and parameterized, so it can be plugged & easily to automated QA projects.
14
71
  email:
15
72
  - bennett.talpers@gmail.com
16
73
  executables: []
17
74
  extensions: []
18
75
  extra_rdoc_files: []
19
76
  files:
20
- - LICENSE
21
- - lib/.gitignore
22
- - lib/appender.rb
23
- homepage: ''
77
+ - ".gitignore"
78
+ - Gemfile
79
+ - README.md
80
+ - Rakefile
81
+ - bin/console
82
+ - bin/setup
83
+ - lib/qa_cube.rb
84
+ - lib/qa_cube/version.rb
85
+ - qa_cube.gemspec
86
+ homepage: https://github.com/btalpers/qa_cube
24
87
  licenses: []
25
- metadata: {}
88
+ metadata:
89
+ allowed_push_host: https://rubygems.org
26
90
  post_install_message:
27
91
  rdoc_options: []
28
92
  require_paths:
@@ -42,6 +106,5 @@ rubyforge_project:
42
106
  rubygems_version: 2.5.1
43
107
  signing_key:
44
108
  specification_version: 4
45
- summary: Code taken from the examples found on https://developers.google.com/sheets/api/samples
46
- and parameterized, so it can be plugged-in easily to automated QA projects.
109
+ summary: Allows a user to easily append data to a Google Sheets sheet.
47
110
  test_files: []
data/LICENSE DELETED
@@ -1 +0,0 @@
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 DELETED
@@ -1 +0,0 @@
1
- client_secret.json
data/lib/appender.rb DELETED
@@ -1,55 +0,0 @@
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