mitty 0.1.0.pre → 0.1.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
  SHA1:
3
- metadata.gz: 7f8d8622e57706a7b33f879bdeca3b6e213fb419
4
- data.tar.gz: 5f6ffbcb66a8828080d68156607f85690e18af77
3
+ metadata.gz: b68cca53eda9839548e57696706351288254e0f6
4
+ data.tar.gz: 39677bcd9b472021d3e7c3cdb0bbdad37c39d080
5
5
  SHA512:
6
- metadata.gz: fabf58c42d3ff89cba8a225229445eb6345d5e140cb54e6fa2429084d2f1c6805ae9197bd5b35874be1c18f5b65f8e8700cc687aee7564f8d96823bb2f1d0320
7
- data.tar.gz: 2531ebb74c4b749e9bfd58de4fd367347a3f827965434689602d746e51ad46e5a41517ce3fc7046ce6ca85fc091028547a52882eecd6c5f0ad986d4152b846d1
6
+ metadata.gz: 8acdba697064b6bc79fc936a793d27dd9150a1d748bce66f6924521f1b924d21e224f3b7ada260e850c91c3741a61fbc85d6dcf1db19ef529e56ffe079a58631
7
+ data.tar.gz: 622858b4a24344652dc10bcf1ff547c92548a84dcdfd40492b20f4bff2199c125650d047adb9b27f657921ac3fd6553eb81e4f15fd92e569e4c21ee402d4919a
data/README.md CHANGED
@@ -27,7 +27,7 @@ And then execute:
27
27
 
28
28
  Or install it yourself as:
29
29
 
30
- $ gem install mitty --pre
30
+ $ gem install mitty
31
31
 
32
32
  ## Configuration
33
33
  The `mitty` gem can currently be configured with a `.mitty` file in your home directory, or a `.mitty` file in the directory in which you are executing the gem. A configuration file can also be passed in to the CLI commands directly by providing the `-c` argument.
@@ -71,13 +71,22 @@ small_image_size: 250
71
71
  medium_image_size: 500
72
72
  large_image_size: 1000
73
73
 
74
+ # This value sets the quality level for normal resized versions of images
75
+ normal_quality_value: 95
76
+
74
77
  # This value sets the quality level for low quality versions of images
75
78
  low_quality_value: 25
76
79
 
77
80
  ## Miscellaneous Config
78
81
 
79
82
  # Controls whether or not low quality duplicates of images will be generated
83
+ # Useful for loading lower quality images first and replacing with their higher
84
+ # quality counterparts after the page has loaded
80
85
  generate_low_quality: true
86
+
87
+ # Controls whether or not image color profiles and comments should be removed
88
+ # Stripping out this metadata will result in lower filesizes
89
+ strip_color_profiles: true
81
90
  ```
82
91
 
83
92
  ## Usage
@@ -7,7 +7,7 @@ module Mitty
7
7
  class_option :verbose, type: :boolean, aliases: '-v'
8
8
 
9
9
  desc 'mitty resize PATH', 'Resizes a directory of images to a given size'
10
- option :output, required: true, desc: 'Path of the output directory', aliases: '-o'
10
+ option :output, desc: 'Path of the output directory', aliases: '-o'
11
11
  option :config, desc: 'Path to an optional config file', aliases: '-c'
12
12
  option :size, default: 'all',
13
13
  enum: ['all', 'thumbs'].concat(Darkroom::IMAGE_SIZES),
@@ -16,7 +16,7 @@ module Mitty
16
16
  def resize(path = '.')
17
17
  apply_custom_config
18
18
 
19
- darkroom = Darkroom.new(path, options[:output])
19
+ darkroom = Darkroom.new(path, output_path(path))
20
20
 
21
21
  verbose_log("Resizing jpg images in #{path} to the following size: #{options[:size]}")
22
22
  case options[:size]
@@ -58,7 +58,7 @@ module Mitty
58
58
  end
59
59
 
60
60
  desc 'mitty manage PATH', 'Creates a variety of sizes, copies originals, and uploads to an AWS S3 Bucket'
61
- option :output, required: true, desc: 'Path of the output directory', aliases: '-o'
61
+ option :output, desc: 'Path of the output directory', aliases: '-o'
62
62
  option :access_key_id, desc: 'AWS access key ID', aliases: '-a'
63
63
  option :secret_access_key, desc: 'AWS secret access key', aliases: '-s'
64
64
  option :aws_bucket, desc: 'AWS bucket identifier', aliases: '-b'
@@ -68,7 +68,7 @@ module Mitty
68
68
  apply_aws_credential_overrides
69
69
 
70
70
  verbose_log("Processing jpg images in #{path}")
71
- darkroom = Darkroom.new(path, options[:output])
71
+ darkroom = Darkroom.new(path, output_path(path))
72
72
  darkroom.create_thumbnails
73
73
  resized_images_output_path = darkroom.create_all_sizes
74
74
  originals_output_path = darkroom.copy_originals
@@ -114,11 +114,15 @@ module Mitty
114
114
  end
115
115
 
116
116
  def apply_aws_credential_overrides
117
- Mitty.configuration.access_key_id = ENV['AWS_ACCESS_KEY_ID'] if ENV['AWS_ACCESS_KEY_ID']
118
- Mitty.configuration.secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] if ENV['AWS_SECRET_ACCESS_KEY']
117
+ Mitty.configuration.aws_access_key_id = ENV['AWS_ACCESS_KEY_ID'] if ENV['AWS_ACCESS_KEY_ID']
118
+ Mitty.configuration.aws_secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] if ENV['AWS_SECRET_ACCESS_KEY']
119
119
 
120
- Mitty.configuration.access_key_id = options[:access_key_id] if options[:access_key_id]
121
- Mitty.configuration.secret_access_key = options[:secret_access_key] if options[:secret_access_key]
120
+ Mitty.configuration.aws_access_key_id = options[:access_key_id] if options[:access_key_id]
121
+ Mitty.configuration.aws_secret_access_key = options[:secret_access_key] if options[:secret_access_key]
122
+ end
123
+
124
+ def output_path(input_path)
125
+ options[:output].presence || input_path
122
126
  end
123
127
  end
124
128
 
@@ -8,10 +8,8 @@ module Mitty
8
8
 
9
9
  # Image Config
10
10
  attr_accessor :thumbnail_image_size, :small_image_size, :medium_image_size,
11
- :large_image_size, :low_quality_value
12
-
13
- # Miscellaneous Config
14
- attr_accessor :generate_low_quality
11
+ :large_image_size, :normal_quality_value, :low_quality_value,
12
+ :generate_low_quality, :strip_color_profiles
15
13
 
16
14
  def initialize
17
15
  @aws_access_key_id = config_from_file['aws_access_key_id'] || ''
@@ -25,12 +23,16 @@ module Mitty
25
23
  @small_image_size = config_from_file['small_image_size'] || 250
26
24
  @medium_image_size = config_from_file['medium_image_size'] || 500
27
25
  @large_image_size = config_from_file['large_image_size'] || 1000
26
+ @normal_quality_value = config_from_file['normal_quality_value'] || 95
28
27
  @low_quality_value = config_from_file['low_quality_value'] || 50
29
28
 
30
29
  @generate_low_quality = config_from_file['generate_low_quality'] || false
30
+ @strip_color_profiles = config_from_file['strip_color_profiles'] || false
31
31
  end
32
32
 
33
- # Public: Reads config from the default configuration file locations.
33
+ private
34
+
35
+ # Internal: Reads config from the default configuration file locations.
34
36
  # First checks for a .mitty file in the current directory, then looks for one in
35
37
  # the user's home directory. Defaults to {} if no configuration file available.
36
38
  #
@@ -30,7 +30,15 @@ module Mitty
30
30
 
31
31
  image = Magick::Image.read(jpg_file).first
32
32
  image.resize_to_fill!(Mitty.configuration.thumbnail_image_size)
33
- image.write(image_output_path)
33
+ image.strip! if Mitty.configuration.strip_color_profiles
34
+
35
+ image.write(image_output_path) { self.quality = Mitty.configuration.normal_quality_value }
36
+
37
+ if Mitty.configuration.generate_low_quality
38
+ lq_image_output_path = image_output_path(jpg_file, thumbnail_output_path, '_thumb_lq')
39
+ image.write(lq_image_output_path) { self.quality = Mitty.configuration.low_quality_value }
40
+ end
41
+
34
42
  image.destroy!
35
43
  end
36
44
 
@@ -83,7 +91,9 @@ module Mitty
83
91
 
84
92
  image = Magick::Image.read(jpg_file).first
85
93
  image.resize_to_fit!(Mitty.configuration.send("#{size}_image_size"))
86
- image.write(image_output_path)
94
+ image.strip! if Mitty.configuration.strip_color_profiles
95
+
96
+ image.write(image_output_path) { self.quality = Mitty.configuration.normal_quality_value }
87
97
 
88
98
  if Mitty.configuration.generate_low_quality
89
99
  lq_image_output_path = image_output_path(jpg_file, resized_images_output_path, "_#{size}_lq")
@@ -1,3 +1,3 @@
1
1
  module Mitty
2
- VERSION = '0.1.0.pre'
2
+ VERSION = '0.1.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mitty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Downey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-05 00:00:00.000000000 Z
11
+ date: 2015-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -179,12 +179,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
179
179
  version: '2.1'
180
180
  required_rubygems_version: !ruby/object:Gem::Requirement
181
181
  requirements:
182
- - - ">"
182
+ - - ">="
183
183
  - !ruby/object:Gem::Version
184
- version: 1.3.1
184
+ version: '0'
185
185
  requirements: []
186
186
  rubyforge_project:
187
- rubygems_version: 2.2.2
187
+ rubygems_version: 2.4.8
188
188
  signing_key:
189
189
  specification_version: 4
190
190
  summary: Mitty is a command line utility that lets you create thumbnails, resize