image_info 1.2.0 → 1.2.1

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: 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