image_info 1.2.0 → 1.2.1

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: c283f102f87200ff3e0e3fb823551aa689599576390bab279c63c305868b3ffd
4
- data.tar.gz: 5b831b50c1977baeac9919d107d29dff41be41961a3a4ad77ecff7e7906e2b8b
3
+ metadata.gz: 63cbd58db2b8b628c7f528ff2ce9690f40a763a132c67ea937f98d597fb0257f
4
+ data.tar.gz: 9ccc45c1deae3feeb427e562aeeea871fe05d481581ff5418694c0a4a186b532
5
5
  SHA512:
6
- metadata.gz: c1c8acb5dfd7c70902bac0af3a64d9647552318fa11f47ec8004814bea68f0aa89ab66ee7876177e161cf7153bde257cae5a9f8553b9d273b4d3e34f2642c6a6
7
- data.tar.gz: 269f7d92862fc6b53c53741a9c756ccc622c47c7b04740fb37c2472474bc8cc369dacfdf409fe644f4d57809f6e265cc639ddf67d066bc029bd34f69faabf3b0
6
+ metadata.gz: 2bf805588e3ef219b58cb55c0b683c47bec714399871d648fb1e8b194ce9a1038fb6760897445befb23b2594e5d6d1ea051c922cd752cbe3fe87ccdf926e135b
7
+ data.tar.gz: 70f0f260038e3985bdc741cefc15fca9e585038a8115030f16656e3ae7608f7d6e99dd080de3d840a0dca6949f3c9785898b9faef7b61ad90d65666a472e5791
@@ -0,0 +1,19 @@
1
+ Metrics/BlockLength:
2
+ Exclude:
3
+ - 'spec/**/*'
4
+
5
+ Gemspec/RequiredRubyVersion:
6
+ Enabled: false
7
+
8
+ Lint/AmbiguousBlockAssociation:
9
+ Exclude:
10
+ - 'spec/**/*'
11
+
12
+ Style/Documentation:
13
+ Enabled: false
14
+
15
+ Style/FrozenStringLiteralComment:
16
+ Enabled: false
17
+
18
+ AllCops:
19
+ NewCops: disable
@@ -2,3 +2,6 @@ language: ruby
2
2
  rvm:
3
3
  - 2.5
4
4
  - 2.6
5
+ script:
6
+ - bundle exec rake
7
+ - bundle exec rubocop
@@ -6,6 +6,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.2.1] - 2020-09-28
10
+ ### Added
11
+
12
+ - Adds Rubocop as a dev dependency.
13
+
14
+ ### Fixed
15
+
16
+ - Fixes `URI.encode` obsolete warning by using `Addressable` instead.
17
+
9
18
  ## [1.2.0] - 2020-07-24
10
19
  ### Added
11
20
 
@@ -48,7 +57,8 @@ size and type has been found.
48
57
 
49
58
  - First release 🎆
50
59
 
51
- [Unreleased]: https://github.com/gottfrois/image_info/compare/v1.2.0...HEAD
60
+ [Unreleased]: https://github.com/gottfrois/image_info/compare/v1.2.1...HEAD
61
+ [1.2.1]: https://github.com/gottfrois/image_info/compare/v1.2.0...v1.2.1
52
62
  [1.2.0]: https://github.com/gottfrois/image_info/compare/v1.1.2...v1.2.0
53
63
  [1.1.2]: https://github.com/gottfrois/image_info/compare/v1.1.1...v1.1.2
54
64
  [1.1.1]: https://github.com/gottfrois/image_info/compare/v1.1.0...v1.1.1
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "image_info"
3
+ require 'bundler/setup'
4
+ require 'image_info'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "image_info"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start
@@ -1,29 +1,34 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'image_info/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "image_info"
6
+ spec.name = 'image_info'
8
7
  spec.version = ImageInfo::VERSION
9
- spec.authors = ["Pierre-Louis Gottfrois"]
10
- spec.email = ["pierrelouis.gottfrois@gmail.com"]
8
+ spec.authors = ['Pierre-Louis Gottfrois']
9
+ spec.email = ['pierrelouis.gottfrois@gmail.com']
11
10
 
12
- spec.summary = %q{ImageInfo finds the size and type of a single or multiple images from the web by fetching as little as needed.}
13
- spec.description = %q{ImageInfo finds the size and type of a single or multiple images from the web by fetching as little as needed.}
14
- spec.homepage = "https://github.com/gottfrois/image_info"
15
- spec.license = "MIT"
11
+ spec.summary = 'ImageInfo finds the size and type of a single or ' \
12
+ 'multiple images from the web by fetching as little as ' \
13
+ 'needed.'
14
+ spec.description = 'ImageInfo finds the size and type of a single or ' \
15
+ 'multiple images from the web by fetching as little as ' \
16
+ 'needed.'
17
+ spec.homepage = 'https://github.com/gottfrois/image_info'
18
+ spec.license = 'MIT'
16
19
 
17
20
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
- spec.bindir = "exe"
21
+ spec.bindir = 'exe'
19
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
- spec.require_paths = ["lib"]
23
+ spec.require_paths = ['lib']
21
24
 
22
- spec.add_dependency "typhoeus", "~> 1.0"
23
- spec.add_dependency "image_size", "~> 2.0"
25
+ spec.add_dependency 'addressable', '~> 2.0'
26
+ spec.add_dependency 'image_size', '~> 2.0'
27
+ spec.add_dependency 'typhoeus', '~> 1.0'
24
28
 
25
- spec.add_development_dependency "bundler", "~> 1.10"
26
- spec.add_development_dependency "rake", "~> 10.0"
27
- spec.add_development_dependency "rspec"
28
- spec.add_development_dependency "webmock"
29
+ spec.add_development_dependency 'bundler', '~> 1.10'
30
+ spec.add_development_dependency 'rake', '~> 10.0'
31
+ spec.add_development_dependency 'rspec'
32
+ spec.add_development_dependency 'rubocop'
33
+ spec.add_development_dependency 'webmock'
29
34
  end
@@ -19,5 +19,4 @@ module ImageInfo
19
19
  def self.from(urls, options = { max_concurrency: config.max_concurrency })
20
20
  ::ImageInfo::Processor.new(urls, options).process
21
21
  end
22
-
23
22
  end
@@ -2,7 +2,6 @@ require 'image_info/configuration'
2
2
 
3
3
  module ImageInfo
4
4
  module Configurable
5
-
6
5
  def config
7
6
  @config ||= ::ImageInfo::Configuration.new
8
7
  end
@@ -10,6 +9,5 @@ module ImageInfo
10
9
  def configure
11
10
  yield config if block_given?
12
11
  end
13
-
14
12
  end
15
13
  end
@@ -1,12 +1,10 @@
1
1
  module ImageInfo
2
2
  class Configuration
3
-
4
3
  attr_accessor :max_concurrency, :max_image_size
5
4
 
6
5
  def initialize
7
6
  @max_concurrency = 20
8
7
  @max_image_size = -1
9
8
  end
10
-
11
9
  end
12
10
  end
@@ -1,16 +1,16 @@
1
- require 'uri'
1
+ require 'addressable/uri'
2
2
 
3
3
  module ImageInfo
4
4
  class Image
5
-
6
5
  attr_reader :uri
7
6
  attr_accessor :width, :height, :type
8
7
 
9
8
  def initialize(uri)
10
- @uri = ::URI.parse(::URI.encode(uri.to_s))
9
+ @uri = ::Addressable::URI.parse(uri.to_s)
11
10
  @uri.scheme = 'http' unless @uri.scheme
12
11
  @uri.port = 80 unless @uri.port
13
- rescue ::URI::InvalidURIError
12
+ @uri.normalize!
13
+ rescue ::Addressable::URI::InvalidURIError
14
14
  @uri = NullUri.new
15
15
  end
16
16
 
@@ -22,12 +22,8 @@ module ImageInfo
22
22
  !!uri.host
23
23
  end
24
24
 
25
- private
26
-
27
25
  class NullUri
28
- def host
29
- end
26
+ def host; end
30
27
  end
31
-
32
28
  end
33
29
  end
@@ -1,12 +1,9 @@
1
1
  module ImageInfo
2
2
  class NullParser
3
- def width
4
- end
3
+ def width; end
5
4
 
6
- def height
7
- end
5
+ def height; end
8
6
 
9
- def format
10
- end
7
+ def format; end
11
8
  end
12
- end
9
+ end
@@ -3,7 +3,6 @@ require 'image_info/null_parser'
3
3
 
4
4
  module ImageInfo
5
5
  class Parser
6
-
7
6
  attr_reader :image, :data
8
7
 
9
8
  def initialize(image, data)
@@ -32,6 +31,5 @@ module ImageInfo
32
31
  rescue ::ImageSize::FormatError, NoMethodError
33
32
  @parser ||= ::ImageInfo::NullParser.new
34
33
  end
35
-
36
34
  end
37
35
  end
@@ -6,7 +6,6 @@ require 'image_info/request_handler'
6
6
 
7
7
  module ImageInfo
8
8
  class Processor
9
-
10
9
  attr_reader :images, :options
11
10
 
12
11
  def initialize(urls, options = { max_concurrency: ::ImageInfo.config.max_concurrency })
@@ -26,6 +25,5 @@ module ImageInfo
26
25
  def hydra
27
26
  @hydra ||= ::Typhoeus::Hydra.new(max_concurrency: options[:max_concurrency].to_i)
28
27
  end
29
-
30
28
  end
31
29
  end
@@ -2,7 +2,6 @@ require 'stringio'
2
2
 
3
3
  module ImageInfo
4
4
  class RequestHandler
5
-
6
5
  attr_reader :image, :buffer
7
6
 
8
7
  def initialize(image)
@@ -28,6 +27,7 @@ module ImageInfo
28
27
 
29
28
  def max_image_size_reached?
30
29
  return false if max_image_size <= 0
30
+
31
31
  buffer.size > max_image_size
32
32
  end
33
33
 
@@ -1,3 +1,3 @@
1
1
  module ImageInfo
2
- VERSION = '1.2.0'
2
+ VERSION = '1.2.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: image_info
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pierre-Louis Gottfrois
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-24 00:00:00.000000000 Z
11
+ date: 2020-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: typhoeus
14
+ name: addressable
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '2.0'
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: '1.0'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: image_size
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: typhoeus
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +94,20 @@ dependencies:
80
94
  - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: webmock
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -104,6 +132,7 @@ extra_rdoc_files: []
104
132
  files:
105
133
  - ".gitignore"
106
134
  - ".rspec"
135
+ - ".rubocop.yml"
107
136
  - ".ruby-version"
108
137
  - ".travis.yml"
109
138
  - CHANGELOG.md