jekyll-indico 0.4.3 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.rubocop.yml +3 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +18 -1
- data/Gemfile.lock +37 -34
- data/README.md +2 -0
- data/jekyll-indico.gemspec +6 -5
- data/lib/jekyll-indico/core.rb +28 -10
- data/lib/jekyll-indico/generator.rb +4 -4
- data/lib/jekyll-indico/version.rb +1 -1
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d07e0cc35ca21aab0d8b934a3e4dbc4ce9754f9b381e018a9030ec74c09291db
|
4
|
+
data.tar.gz: ceb2b86e65b6d40da965925abd98ab1b07830e255daf67ef2dce019d9da1e0c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0c639bf38480127762ab82011e4953a57b8f11f4e16bb484750690eabeef6ce2fb3f5a109f64336938555c8e1db059eac09d6881ccfdb4810fedd411b565038
|
7
|
+
data.tar.gz: 4fc89a0896dfdf28f3719e5ea7775a1080912fd221361600da28531175ce570885b060c1542ffb979af03ad0360f68807ff643d7fc17634df23baa3f434d03d4
|
data/.rubocop.yml
CHANGED
@@ -2,10 +2,12 @@ Metrics/MethodLength:
|
|
2
2
|
Max: 25
|
3
3
|
Metrics/AbcSize:
|
4
4
|
Max: 55
|
5
|
+
Metrics/CyclomaticComplexity:
|
6
|
+
Max: 10
|
5
7
|
Style/NumericLiterals:
|
6
8
|
Enabled: false
|
7
9
|
Naming/FileName:
|
8
10
|
Enabled: false
|
9
11
|
AllCops:
|
10
12
|
NewCops: enable
|
11
|
-
TargetRubyVersion: 2.
|
13
|
+
TargetRubyVersion: 2.6
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.6.6
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,23 @@
|
|
1
|
+
|
2
|
+
# Version 0.6
|
3
|
+
|
4
|
+
Minimum Ruby version is now Ruby 2.6. Optimized `paginate` to reduce the API calls by one.
|
5
|
+
|
6
|
+
# Version 0.5
|
7
|
+
|
8
|
+
Added a way to paginate. Use `paginate: N` to iterate over pages of results.
|
9
|
+
|
10
|
+
# Version 0.4.5
|
11
|
+
|
12
|
+
Fix timeout being incorrectly called again.
|
13
|
+
|
14
|
+
# Version 0.4.4
|
15
|
+
|
16
|
+
Fix timeout being incorrectly called.
|
17
|
+
|
1
18
|
# Version 0.4.3
|
2
19
|
|
3
|
-
Fix warning message for classic tokens. Add time
|
20
|
+
Fix warning message for classic tokens. Add time printout to help judge need for
|
4
21
|
timeout setting.
|
5
22
|
|
6
23
|
# Version 0.4.2
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
jekyll-indico (0.
|
4
|
+
jekyll-indico (0.6.0)
|
5
5
|
jekyll (>= 3.8, < 5.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -20,33 +20,37 @@ GEM
|
|
20
20
|
ffi (1.15.5)
|
21
21
|
forwardable-extended (2.6.0)
|
22
22
|
http_parser.rb (0.8.0)
|
23
|
-
i18n (
|
23
|
+
i18n (1.9.1)
|
24
24
|
concurrent-ruby (~> 1.0)
|
25
|
-
jekyll (
|
25
|
+
jekyll (4.2.1)
|
26
26
|
addressable (~> 2.4)
|
27
27
|
colorator (~> 1.0)
|
28
28
|
em-websocket (~> 0.5)
|
29
|
-
i18n (~> 0
|
30
|
-
jekyll-sass-converter (~>
|
29
|
+
i18n (~> 1.0)
|
30
|
+
jekyll-sass-converter (~> 2.0)
|
31
31
|
jekyll-watch (~> 2.0)
|
32
|
-
kramdown (
|
32
|
+
kramdown (~> 2.3)
|
33
|
+
kramdown-parser-gfm (~> 1.0)
|
33
34
|
liquid (~> 4.0)
|
34
|
-
mercenary (~> 0.
|
35
|
+
mercenary (~> 0.4.0)
|
35
36
|
pathutil (~> 0.9)
|
36
|
-
rouge (
|
37
|
+
rouge (~> 3.0)
|
37
38
|
safe_yaml (~> 1.0)
|
38
|
-
|
39
|
-
|
39
|
+
terminal-table (~> 2.0)
|
40
|
+
jekyll-sass-converter (2.1.0)
|
41
|
+
sassc (> 2.0.1, < 3.0)
|
40
42
|
jekyll-watch (2.2.1)
|
41
43
|
listen (~> 3.0)
|
42
44
|
kramdown (2.3.1)
|
43
45
|
rexml
|
46
|
+
kramdown-parser-gfm (1.1.0)
|
47
|
+
kramdown (~> 2.0)
|
44
48
|
liquid (4.0.3)
|
45
49
|
listen (3.7.1)
|
46
50
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
47
51
|
rb-inotify (~> 0.9, >= 0.9.10)
|
48
|
-
mercenary (0.
|
49
|
-
parallel (1.
|
52
|
+
mercenary (0.4.0)
|
53
|
+
parallel (1.21.0)
|
50
54
|
parser (3.1.0.0)
|
51
55
|
ast (~> 2.4.1)
|
52
56
|
pathutil (0.16.2)
|
@@ -54,12 +58,12 @@ GEM
|
|
54
58
|
public_suffix (4.0.6)
|
55
59
|
rainbow (3.1.1)
|
56
60
|
rake (13.0.6)
|
57
|
-
rb-fsevent (0.11.
|
61
|
+
rb-fsevent (0.11.1)
|
58
62
|
rb-inotify (0.10.1)
|
59
63
|
ffi (~> 1.0)
|
60
64
|
regexp_parser (2.2.0)
|
61
65
|
rexml (3.2.5)
|
62
|
-
rouge (3.
|
66
|
+
rouge (3.28.0)
|
63
67
|
rspec (3.10.0)
|
64
68
|
rspec-core (~> 3.10.0)
|
65
69
|
rspec-expectations (~> 3.10.0)
|
@@ -73,42 +77,41 @@ GEM
|
|
73
77
|
diff-lcs (>= 1.2.0, < 2.0)
|
74
78
|
rspec-support (~> 3.10.0)
|
75
79
|
rspec-support (3.10.3)
|
76
|
-
rubocop (1.
|
80
|
+
rubocop (1.25.1)
|
77
81
|
parallel (~> 1.10)
|
78
|
-
parser (>= 3.
|
82
|
+
parser (>= 3.1.0.0)
|
79
83
|
rainbow (>= 2.2.2, < 4.0)
|
80
84
|
regexp_parser (>= 1.8, < 3.0)
|
81
85
|
rexml
|
82
|
-
rubocop-ast (>= 1.
|
86
|
+
rubocop-ast (>= 1.15.1, < 2.0)
|
83
87
|
ruby-progressbar (~> 1.7)
|
84
88
|
unicode-display_width (>= 1.4.0, < 3.0)
|
85
|
-
rubocop-ast (1.
|
86
|
-
parser (>=
|
87
|
-
rubocop-rake (0.
|
88
|
-
rubocop
|
89
|
-
rubocop-rspec (2.2.0)
|
89
|
+
rubocop-ast (1.15.1)
|
90
|
+
parser (>= 3.0.1.1)
|
91
|
+
rubocop-rake (0.6.0)
|
90
92
|
rubocop (~> 1.0)
|
91
|
-
|
93
|
+
rubocop-rspec (2.8.0)
|
94
|
+
rubocop (~> 1.19)
|
92
95
|
ruby-progressbar (1.11.0)
|
93
96
|
safe_yaml (1.0.5)
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
unicode-display_width (2.1.0)
|
97
|
+
sassc (2.4.0)
|
98
|
+
ffi (~> 1.9)
|
99
|
+
terminal-table (2.0.0)
|
100
|
+
unicode-display_width (~> 1.1, >= 1.1.1)
|
101
|
+
unicode-display_width (1.8.0)
|
100
102
|
|
101
103
|
PLATFORMS
|
102
|
-
|
104
|
+
x86_64-darwin-20
|
105
|
+
x86_64-linux
|
103
106
|
|
104
107
|
DEPENDENCIES
|
105
|
-
bundler (~> 2.
|
108
|
+
bundler (~> 2.1)
|
106
109
|
jekyll-indico!
|
107
110
|
rake (~> 13.0)
|
108
111
|
rspec (~> 3.0)
|
109
|
-
rubocop (~> 1.
|
110
|
-
rubocop-rake (~> 0.
|
112
|
+
rubocop (~> 1.25)
|
113
|
+
rubocop-rake (~> 0.6)
|
111
114
|
rubocop-rspec (~> 2.2)
|
112
115
|
|
113
116
|
BUNDLED WITH
|
114
|
-
2.
|
117
|
+
2.3.6
|
data/README.md
CHANGED
@@ -14,6 +14,8 @@ indico:
|
|
14
14
|
url: https://indico.cern.ch # Indico instance to use (REQUIRED)
|
15
15
|
data: indico # Optional, folder name in _data to use
|
16
16
|
cache-command: bundle exec rake cache # Optional, user msg if you support it
|
17
|
+
paginate: 20 # Optional integer number of results per page (auto-iterates over all pages)
|
18
|
+
timeout: 120 # Optional timeout in number of seconds (default: 60)
|
17
19
|
ids:
|
18
20
|
topical: 10570
|
19
21
|
blueprint: 11329
|
data/jekyll-indico.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.metadata['changelog_uri'] = 'https://github.com/iris-hep/jekyll-indico/blob/main/CHANGELOG.md'
|
21
21
|
else
|
22
22
|
raise 'RubyGems 2.0 or newer is required to protect against ' \
|
23
|
-
|
23
|
+
'public gem pushes.'
|
24
24
|
end
|
25
25
|
|
26
26
|
# Specify which files should be added to the gem when it is released.
|
@@ -32,14 +32,15 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
33
33
|
spec.require_paths = ['lib']
|
34
34
|
|
35
|
-
spec.required_ruby_version = '>= 2.
|
35
|
+
spec.required_ruby_version = '>= 2.6.0'
|
36
36
|
|
37
37
|
spec.add_dependency 'jekyll', '>= 3.8', '< 5.0'
|
38
38
|
|
39
|
-
spec.add_development_dependency 'bundler', '~> 2.
|
39
|
+
spec.add_development_dependency 'bundler', '~> 2.1'
|
40
40
|
spec.add_development_dependency 'rake', '~> 13.0'
|
41
41
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
42
|
-
spec.add_development_dependency 'rubocop', '~> 1.
|
43
|
-
spec.add_development_dependency 'rubocop-rake', '~> 0.
|
42
|
+
spec.add_development_dependency 'rubocop', '~> 1.25'
|
43
|
+
spec.add_development_dependency 'rubocop-rake', '~> 0.6'
|
44
44
|
spec.add_development_dependency 'rubocop-rspec', '~> 2.2'
|
45
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
45
46
|
end
|
data/lib/jekyll-indico/core.rb
CHANGED
@@ -23,13 +23,13 @@ module JekyllIndico
|
|
23
23
|
attr_accessor :dict
|
24
24
|
|
25
25
|
# ID for IRIS-HEP: 10570
|
26
|
-
def initialize(base_url, indico_id, **kargs)
|
26
|
+
def initialize(base_url, indico_id, limit: nil, **kargs)
|
27
27
|
@dict = {}
|
28
28
|
|
29
|
-
download_and_iterate(base_url, indico_id, **kargs) do |i|
|
29
|
+
download_and_iterate(base_url, indico_id, limit: limit, **kargs) do |i|
|
30
30
|
# Trim paragraph tags
|
31
31
|
d = i['description']
|
32
|
-
d = d[3
|
32
|
+
d = d[3..] if d.start_with? '<p>'
|
33
33
|
d = d[0..-5] if d.end_with? '</p>'
|
34
34
|
|
35
35
|
start_date = Date.parse i['startDate']['date']
|
@@ -62,9 +62,10 @@ module JekyllIndico
|
|
62
62
|
|
63
63
|
private
|
64
64
|
|
65
|
-
|
66
|
-
|
67
|
-
|
65
|
+
def get_parsed_results(base_url, indico_id, timeout: nil, **params)
|
66
|
+
opts = { use_ssl: true }
|
67
|
+
opts[:read_timeout] = timeout if timeout
|
68
|
+
|
68
69
|
uri = URI.join(base_url, "/export/categ/#{indico_id}.json")
|
69
70
|
uri.query = URI.encode_www_form(params)
|
70
71
|
|
@@ -75,12 +76,29 @@ module JekyllIndico
|
|
75
76
|
raise Error, 'Use INDICO_TOKEN with a new-style token'
|
76
77
|
end
|
77
78
|
|
78
|
-
response = Net::HTTP.start(uri.hostname, uri.port,
|
79
|
+
response = Net::HTTP.start(uri.hostname, uri.port, **opts) { |http| http.request(req) }
|
80
|
+
|
81
|
+
parsed = JSON.parse(response.body)
|
82
|
+
parsed['results']
|
83
|
+
end
|
84
|
+
|
85
|
+
# Run a block over each item in the downloaded results
|
86
|
+
def download_and_iterate(base_url, indico_id, limit: nil, **params, &block)
|
87
|
+
limit = nil if limit.zero?
|
88
|
+
params[:limit] = limit if limit
|
89
|
+
params[:pretty] = 'no'
|
79
90
|
|
80
|
-
|
81
|
-
|
91
|
+
unless limit
|
92
|
+
results = get_parsed_results(base_url, indico_id, **params)
|
93
|
+
results.each(&block)
|
94
|
+
return
|
95
|
+
end
|
82
96
|
|
83
|
-
|
97
|
+
0.step.each do |n|
|
98
|
+
results = get_parsed_results(base_url, indico_id, offset: n * limit, **params)
|
99
|
+
results.each(&block)
|
100
|
+
break if results.length < limit
|
101
|
+
end
|
84
102
|
end
|
85
103
|
end
|
86
104
|
end
|
@@ -16,9 +16,6 @@ module JekyllIndico
|
|
16
16
|
@site = site
|
17
17
|
@cache_msg = @site.config.dig('indico', 'cache-command')
|
18
18
|
|
19
|
-
timeout = @site.config.dig('indico', 'timeout')
|
20
|
-
Net::HTTP.read_timeout = timeout if timeout
|
21
|
-
|
22
19
|
meeting_ids = @site.config.dig('indico', 'ids')
|
23
20
|
raise MissingIDs, 'indico: ids: MISSING from your config!' unless meeting_ids
|
24
21
|
raise MissingIDs, 'indico: ids: must be a hash!' unless meeting_ids.is_a?(Hash)
|
@@ -37,13 +34,16 @@ module JekyllIndico
|
|
37
34
|
data_path = @site.config.dig('indico', 'data') || 'indico'
|
38
35
|
@site.data[data_path] = {} unless @site.data.key? data_path
|
39
36
|
|
37
|
+
timeout = @site.config.dig('indico', 'timeout')
|
38
|
+
limit = @site.config.dig('indico', 'paginate')
|
39
|
+
|
40
40
|
# Do nothing if already downloaded
|
41
41
|
return if @site.data[data_path].key? name
|
42
42
|
|
43
43
|
msg = @cache_msg ? " - run `#{@cache_msg}` to cache" : ''
|
44
44
|
print "Accessing Indico meeting API for #{name}:#{number}#{msg}"
|
45
45
|
time = Benchmark.realtime do
|
46
|
-
iris_meeting = Meetings.new(base_url, number)
|
46
|
+
iris_meeting = Meetings.new(base_url, number, timeout: timeout, limit: limit)
|
47
47
|
@site.data[data_path][name] = iris_meeting.dict
|
48
48
|
end
|
49
49
|
puts ", took #{time.round(1)} s"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-indico
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henry Schreiner
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -36,14 +36,14 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '2.
|
39
|
+
version: '2.1'
|
40
40
|
type: :development
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '2.
|
46
|
+
version: '2.1'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,28 +78,28 @@ dependencies:
|
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: '1.
|
81
|
+
version: '1.25'
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: '1.
|
88
|
+
version: '1.25'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: rubocop-rake
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
93
|
- - "~>"
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: '0.
|
95
|
+
version: '0.6'
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - "~>"
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: '0.
|
102
|
+
version: '0.6'
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: rubocop-rspec
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -151,6 +151,7 @@ metadata:
|
|
151
151
|
homepage_uri: https://rubygems.org/gems/jekyll-indico
|
152
152
|
source_code_uri: https://github.com/iris-hep/jekyll-indico
|
153
153
|
changelog_uri: https://github.com/iris-hep/jekyll-indico/blob/main/CHANGELOG.md
|
154
|
+
rubygems_mfa_required: 'true'
|
154
155
|
post_install_message:
|
155
156
|
rdoc_options: []
|
156
157
|
require_paths:
|
@@ -159,15 +160,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
159
160
|
requirements:
|
160
161
|
- - ">="
|
161
162
|
- !ruby/object:Gem::Version
|
162
|
-
version: 2.
|
163
|
+
version: 2.6.0
|
163
164
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
165
|
requirements:
|
165
166
|
- - ">="
|
166
167
|
- !ruby/object:Gem::Version
|
167
168
|
version: '0'
|
168
169
|
requirements: []
|
169
|
-
|
170
|
-
rubygems_version: 2.6.14.4
|
170
|
+
rubygems_version: 3.0.3
|
171
171
|
signing_key:
|
172
172
|
specification_version: 4
|
173
173
|
summary: Read and/or cache indico meeting lists for Jekyll
|