google_spreadsheet_fetcher 1.8.1 → 1.9.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/.github/workflows/main.yml +40 -0
- data/.github/workflows/release.yml +33 -0
- data/.rspec +1 -0
- data/lib/google_spreadsheet_fetcher/error.rb +1 -0
- data/lib/google_spreadsheet_fetcher/sheet_url.rb +58 -0
- data/lib/google_spreadsheet_fetcher/version.rb +1 -1
- data/lib/google_spreadsheet_fetcher.rb +2 -0
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b6d94fea13b2f79415f7f890b6286d427efc2510d583c166178ec873d6f7154
|
4
|
+
data.tar.gz: ed22e78b3d512387121ff938c8768319a2d3ba670f6ef3729683d314b2d5a552
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6f43fc91a0613c39e79e09d0cc806202bab013f92b6926978439f492c3766fff71aa97779caf6d672f132ea9ead485188234f34c9e691b7b64108898ca93600
|
7
|
+
data.tar.gz: 1e64e297e726be3625750c72dd54187f9a48d64a6c257356b309ce79240d2e9c190e3a01bca4b0ba590de6083febe97720d544f7a631ae321c18bc44cbf087da
|
@@ -0,0 +1,40 @@
|
|
1
|
+
name: rspec
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- main
|
7
|
+
|
8
|
+
pull_request:
|
9
|
+
branches:
|
10
|
+
- main
|
11
|
+
|
12
|
+
env:
|
13
|
+
RAILS_ENV: test
|
14
|
+
|
15
|
+
jobs:
|
16
|
+
test:
|
17
|
+
runs-on: ubuntu-latest
|
18
|
+
strategy:
|
19
|
+
fail-fast: false
|
20
|
+
|
21
|
+
matrix:
|
22
|
+
ruby:
|
23
|
+
- 2.6
|
24
|
+
- 2.7
|
25
|
+
- 3.0
|
26
|
+
- 3.1
|
27
|
+
|
28
|
+
steps:
|
29
|
+
- uses: actions/checkout@v2
|
30
|
+
|
31
|
+
- name: Set up Ruby
|
32
|
+
uses: ruby/setup-ruby@v1
|
33
|
+
with:
|
34
|
+
ruby-version: ${{ matrix.ruby }}
|
35
|
+
bundler-cache: true
|
36
|
+
|
37
|
+
- name: Run tests
|
38
|
+
run: |
|
39
|
+
bundle exec rspec
|
40
|
+
continue-on-error: ${{ matrix.allow_failures == 'true' }}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
name: Release gem
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
inputs:
|
6
|
+
rubygems-otp-code:
|
7
|
+
description: RubyGems OTP code
|
8
|
+
required: true
|
9
|
+
|
10
|
+
permissions:
|
11
|
+
contents: write
|
12
|
+
|
13
|
+
jobs:
|
14
|
+
release-gem:
|
15
|
+
runs-on: ubuntu-latest
|
16
|
+
env:
|
17
|
+
GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
|
18
|
+
GEM_HOST_OTP_CODE: ${{ github.event.inputs.rubygems-otp-code }}
|
19
|
+
steps:
|
20
|
+
- uses: actions/checkout@v2
|
21
|
+
with:
|
22
|
+
fetch-depth: 0 # bundle exec rake release で git tag を見るため、tagをfetchするようにしている
|
23
|
+
- uses: ruby/setup-ruby@v1
|
24
|
+
with:
|
25
|
+
ruby-version: 3.1.1
|
26
|
+
- name: Bundle install
|
27
|
+
run: bundle install
|
28
|
+
- name: Setup git config # bundle exec rake release でgit tagが打たれていない場合、タグを打ってpushしてくれるため用意している
|
29
|
+
run: |
|
30
|
+
git config --global user.email "taka0125@gmail.com"
|
31
|
+
git config --global user.name "Takahiro Ooishi"
|
32
|
+
- name: Release gem
|
33
|
+
run: bundle exec rake release
|
data/.rspec
CHANGED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'uri'
|
2
|
+
|
3
|
+
module GoogleSpreadsheetFetcher
|
4
|
+
class SheetUrl
|
5
|
+
HOST = 'docs.google.com'.freeze
|
6
|
+
PATH_PATTERN = %r{spreadsheets/d/(?<spreadsheet_id>[^/]+)/edit}.freeze
|
7
|
+
|
8
|
+
attr_reader :spreadsheet_id, :sheet_id
|
9
|
+
|
10
|
+
private_class_method :new
|
11
|
+
|
12
|
+
def initialize(spreadsheet_id, sheet_id)
|
13
|
+
@spreadsheet_id = spreadsheet_id
|
14
|
+
@sheet_id = sheet_id
|
15
|
+
freeze
|
16
|
+
end
|
17
|
+
|
18
|
+
def url
|
19
|
+
"https://#{self.class::HOST}/spreadsheets/d/#{spreadsheet_id}/edit#gid=#{sheet_id}"
|
20
|
+
end
|
21
|
+
|
22
|
+
def ==(other)
|
23
|
+
return false unless other.class == self.class
|
24
|
+
|
25
|
+
other.hash == hash
|
26
|
+
end
|
27
|
+
|
28
|
+
alias eql? ==
|
29
|
+
|
30
|
+
def hash
|
31
|
+
[spreadsheet_id, sheet_id].join.hash
|
32
|
+
end
|
33
|
+
|
34
|
+
class << self
|
35
|
+
def parse!(url)
|
36
|
+
uri = URI.parse(url)
|
37
|
+
raise InvalidSheetUrl unless uri.host == HOST
|
38
|
+
|
39
|
+
path_matched_result = uri.path.match(PATH_PATTERN)
|
40
|
+
raise InvalidSheetUrl unless path_matched_result
|
41
|
+
|
42
|
+
spreadsheet_id = path_matched_result[:spreadsheet_id]
|
43
|
+
sheet_id = extract_sheet_id(uri.fragment)
|
44
|
+
|
45
|
+
new(spreadsheet_id, sheet_id)
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def extract_sheet_id(fragment)
|
51
|
+
return 0 if fragment.blank?
|
52
|
+
|
53
|
+
results = Hash[*fragment.split('=')]
|
54
|
+
results.dig('gid')&.to_i || 0
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
require "active_support"
|
1
2
|
require "active_support/json"
|
2
3
|
require "active_support/core_ext"
|
3
4
|
require "google_spreadsheet_fetcher/version"
|
4
5
|
require "google_spreadsheet_fetcher/config"
|
5
6
|
require "google_spreadsheet_fetcher/error"
|
6
7
|
require "google_spreadsheet_fetcher/fetcher"
|
8
|
+
require "google_spreadsheet_fetcher/sheet_url"
|
7
9
|
require "google_spreadsheet_fetcher/bulk_fetcher"
|
8
10
|
require "google_spreadsheet_fetcher/sheets_service_builder"
|
9
11
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google_spreadsheet_fetcher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takahiro Ooishi
|
8
8
|
- Yuya Yokosuka
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-08-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-api-client
|
@@ -89,6 +89,8 @@ executables: []
|
|
89
89
|
extensions: []
|
90
90
|
extra_rdoc_files: []
|
91
91
|
files:
|
92
|
+
- ".github/workflows/main.yml"
|
93
|
+
- ".github/workflows/release.yml"
|
92
94
|
- ".gitignore"
|
93
95
|
- ".rspec"
|
94
96
|
- ".travis.yml"
|
@@ -103,12 +105,13 @@ files:
|
|
103
105
|
- lib/google_spreadsheet_fetcher/config.rb
|
104
106
|
- lib/google_spreadsheet_fetcher/error.rb
|
105
107
|
- lib/google_spreadsheet_fetcher/fetcher.rb
|
108
|
+
- lib/google_spreadsheet_fetcher/sheet_url.rb
|
106
109
|
- lib/google_spreadsheet_fetcher/sheets_service_builder.rb
|
107
110
|
- lib/google_spreadsheet_fetcher/version.rb
|
108
111
|
homepage: https://github.com/taka0125/google_spreadsheet_fetcher
|
109
112
|
licenses: []
|
110
113
|
metadata: {}
|
111
|
-
post_install_message:
|
114
|
+
post_install_message:
|
112
115
|
rdoc_options: []
|
113
116
|
require_paths:
|
114
117
|
- lib
|
@@ -123,8 +126,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
126
|
- !ruby/object:Gem::Version
|
124
127
|
version: '0'
|
125
128
|
requirements: []
|
126
|
-
rubygems_version: 3.
|
127
|
-
signing_key:
|
129
|
+
rubygems_version: 3.3.7
|
130
|
+
signing_key:
|
128
131
|
specification_version: 4
|
129
132
|
summary: Google Spreadsheet fetcher
|
130
133
|
test_files: []
|