lt-lcms 0.2.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 84c07108ce65653d8d1eb64efe0b6b3dcc6387cc5f9e450bed9c2cb67f228c32
4
- data.tar.gz: 90d198efaf3fd663794e8a79e62666219c4343238752b8b9a4369be8b461ba5b
3
+ metadata.gz: b12fd4f69d31ee5b9f655a281b1b0bdb81cd94be792971a647d18bbbb8ccd0f9
4
+ data.tar.gz: 353f480467a3508873833ef7a00e495f68bb87e19772340bfdd2d34195f0ae2a
5
5
  SHA512:
6
- metadata.gz: f104f868d4ebc1507c8ca18fd05d0f14995da939f8fb3b07e59cba806181888c2efa54f8ed3f3eaa8b95958b34fb5f9945515552ccff3da54a66c3daf59af244
7
- data.tar.gz: 289c0edb917d19864e56b2064025d949185c81f150b63f12e9b5ad108fd0ac3ee84dbd6e0df68d91cdf8f61def79ab3c8e1ac65a64fb54969d43c2a10eb5c457
6
+ metadata.gz: a0032513cb0cfb940ae7762e20ee04167df2b7daac2a7159b16aced33c5b61fd3bca98c85948354b366e74e60fd19ef4796f3e1f535d58833071aeff86d9d975
7
+ data.tar.gz: 3ba9532a34597760113c383404eabd8a57af3d9309d7796d91654ae33e7aff3b6fdb0b3aa6bfccb003295acef24d63c07f1f5bc791fae425910ddb74eda6e597
@@ -4,7 +4,10 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## [Unreleased](https://github.com/learningtapestry/lt-lcms/compare/v0.2.0...HEAD)
7
+ ## [0.3.0](https://github.com/learningtapestry/lt-lcms/compare/v0.2.0...v0.3.0)
8
+
9
+ ### Added
10
+ - Add DPI param support for Google Drawings [@shlag3n](https://github.com/shlag3n)
8
11
 
9
12
  ## [0.2.0](https://github.com/learningtapestry/lt-lcms/compare/v0.1.1...v0.2.0) - 2020-01-13
10
13
 
@@ -22,6 +22,8 @@ module Lt
22
22
  private
23
23
 
24
24
  attr_reader :options
25
+ BASE_DPI = 72.0
26
+ private_constant :BASE_DPI
25
27
 
26
28
  def handle_google_drawings(html)
27
29
  return html unless (match = html.scan(GOOGLE_DRAWING_RE))
@@ -30,16 +32,29 @@ module Lt
30
32
  headers = { 'Authorization' => "Bearer #{bearer}" }
31
33
 
32
34
  match.to_a.uniq.each do |url|
33
- response = HTTParty.get CGI.unescapeHTML(url), headers: headers
35
+ upd_url = updated_drawing_url_for(url)
36
+ response = HTTParty.get CGI.unescapeHTML(upd_url), headers: headers
34
37
 
35
38
  next unless response.code == 200
36
39
 
37
- new_src = "data:#{response.content_type};base64, #{Base64.encode64(response)}\" drawing_url=\"#{url}"
40
+ new_src = "data:#{response.content_type};base64, #{Base64.encode64(response)}\" drawing_url=\"#{upd_url}"
38
41
  html = html.gsub(url, new_src)
39
42
  end
40
43
 
41
44
  html
42
45
  end
46
+
47
+ # Update drawing url w/h parameters to download in better quality than default 72 dpi
48
+ def updated_drawing_url_for(url)
49
+ return url unless options[:dpi].present?
50
+
51
+ dpi_ratio = options[:dpi].to_f / BASE_DPI
52
+ uri = URI.parse(url)
53
+ query = CGI.parse(uri.query).transform_values(&:first)
54
+ query['w'] = (query['w'].to_i * dpi_ratio).round.to_s
55
+ query['h'] = (query['h'].to_i * dpi_ratio).round.to_s
56
+ URI::HTTPS.build(host: uri.host, path: uri.path, query: query.to_query).to_s
57
+ end
43
58
  end
44
59
  end
45
60
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Lt
4
4
  module Lcms
5
- VERSION = '0.2.0'
5
+ VERSION = '0.3.0'
6
6
  end
7
7
  end
@@ -31,10 +31,10 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
31
31
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
32
  spec.require_paths = ['lib']
33
33
 
34
- spec.add_dependency 'google-api-client'
35
- spec.add_dependency 'httparty'
34
+ spec.add_dependency 'google-api-client', '~> 0.36'
35
+ spec.add_dependency 'httparty', '~> 0.17'
36
36
  spec.add_dependency 'lt-google-api', '~> 0.1'
37
- spec.add_dependency 'rubyzip', '>= 1.3.0'
37
+ spec.add_dependency 'rubyzip', '~> 2'
38
38
 
39
39
  spec.add_development_dependency 'bundler', '~> 1.16'
40
40
  spec.add_development_dependency 'bundler-audit'
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lt-lcms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Kuznetsov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-13 00:00:00.000000000 Z
11
+ date: 2020-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-api-client
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '0.36'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '0.36'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: httparty
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '0.17'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '0.17'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: lt-google-api
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -56,16 +56,16 @@ dependencies:
56
56
  name: rubyzip
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.3.0
61
+ version: '2'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.3.0
68
+ version: '2'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -188,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
188
  - !ruby/object:Gem::Version
189
189
  version: '0'
190
190
  requirements: []
191
- rubygems_version: 3.0.6
191
+ rubygems_version: 3.1.2
192
192
  signing_key:
193
193
  specification_version: 4
194
194
  summary: Contains set of classes to work with Google Docs based lesson objects