lt-lcms 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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