photish 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZWMyMTJmOTViNGQwNzY4ODI5NDIxNjZhNWJhYzY3ZWY2MWY0OGI4NQ==
4
+ MjhjN2EzYzNmNjVkNGI0YjVlYmU5OWUxYjJmYjBkZDgzODY5NWMzMg==
5
5
  data.tar.gz: !binary |-
6
- OTJhMzAyOWVmOTE5NTdiOGQ0MmI0ZGU4NTY0YTFiZjliMjM0OWUwMg==
6
+ NzEwNmIxNzdjNDkwOTkzMTYyOGZlMDJlYjViMjUyNTlkYTdlOWZhNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MmE0Yjg5ZmNhODY1NDJhZDQxNTE0MTdjNDNkZTE5ZmUxMDgxMGYwODcxYTk1
10
- MTlmODRiMzE2ZGU5YjcyZmUyODk2ZDU3YWQ4NWQyMTZkYzBiM2VmMjM4ZTE1
11
- MTQ0YThjMjMxZGMyMjFkYzI0NDkzNjQ0MDMzNzQzMGVmYWZmZTc=
9
+ ZGRjOGY1Nzg4Mjk3OThjOWQ2MTEwNzVkZjk3MzQ3MDkwMTJlYjdhMTFmYWQw
10
+ ZmMzZTU3NjJiMmYzYzNiZDk5NWNmNmFkOTRmN2I5ZTNjNDg0YWZiZDNjOGFm
11
+ YTQ4NmUzYzUwN2UyYTc1YmQxOWU0OWFkY2MxOTRkNzJmODhkZjE=
12
12
  data.tar.gz: !binary |-
13
- YTg2MmEyYWMwNGVkYTMwMTA1MmY5ZDE4YjI5Mjc4NTZlNzc3NDUxNGY4NmNh
14
- M2VkMTZmMzQ5MjNhN2I5OGM3NDZmNzM4ZjE4ZmRlZjVhYTBkMjJlYjM4Zjc0
15
- ODkzYmVmOTkzOWRkYmZlNTc5ZWI0NGYxODU5MTY2YzRhNzFmNDQ=
13
+ YTk3NTM5ZTE1MjY5ZDYyYzFiZGI0ZjM5NzUyZTcyNGM0YTU1NmVhODY0NzE1
14
+ OWU5Yjg1NzE5ZjQ2YWJjNTJmYjNjNmU3ZTMxM2M3YjExZmZhMzE4YTg5OTA0
15
+ ZGQ4MzFjZjBiYWI0MWUxZmU0OTk1YmY4ZmU4OWUyZGI0N2U2YzY=
data/.travis.yml CHANGED
@@ -13,32 +13,26 @@ addons:
13
13
  cache: bundler
14
14
  matrix:
15
15
  include:
16
- - rvm: ruby-head
17
16
  - rvm: 2.3.0
18
17
  env: COVERAGE=1 DEPLOY=1
19
18
  - rvm: 2.2
20
19
  - rvm: 2.1
21
20
  - rvm: 2.0
22
21
 
23
- - rvm: jruby-head
24
22
  - rvm: jruby-9.0
25
23
  env: SMOKE_TEST_ONLY=1
26
24
 
27
- - rvm: rbx
28
25
  - rvm: rbx-3.2
29
26
  env: SMOKE_TEST_ONLY=1
30
27
  - rvm: rbx-2.7
31
28
  env: SMOKE_TEST_ONLY=1
32
29
  fast_finish: true
33
- allow_failures:
34
- - rvm: ruby-head
35
- - rvm: jruby-head
36
- - rvm: rbx
37
30
  deploy:
38
31
  provider: rubygems
39
32
  on:
40
33
  repo: henrylawson/photish
41
34
  condition: "$DEPLOY = 1"
35
+ branch: master
42
36
  tags: true
43
37
  api_key:
44
38
  secure: nFNY85dNmvdhc8H2t/tIiv0xTeWctitZSs2WtlVzOFpbNFac9rqd4ZhNQb/l2QiukquMdbWVzSr2uPZ+gJwhV/yWtX+xNbnPHdW/u5upX5PO9SNZImx8iVS95bViW+zygp3rZvVS6oVeIg4xAzuBMlviomYhp8lGRISWAM5efznK+NkLw16BiiDVQQ3KKLst0Ydo2TIzjkpfeFyNK9qj0Joxqllojo+QVBFUN+vHQcC2VgOQIJjCKshlRKDtMwvvt5+qjBPs5IsTwWkySkkum3WRLxwUXHoMqKqxbYfgXtr2A7KUKiGkK9L2zVYOYCErKDuS+YgQ3AgxnFsToOR8hp6SRv1WhR8Vix67u3A7dRmJ1hdyt0Re5+LyvHAuKXuUB6gJ8rbWpf56i4fbGCjl9IVE4YB+PfwRDwBAttXQTtYZE7AuseH+qdUYPRq3zLlYIcFxEliyNhh5Ud8aBh+ciM2R7ql0wA2Fu8tOK/2beoBWjifZc0z/B/hDHO4JGsphJaz59wPk/3DV6sCmaS4iMPAKtoyRdTyUN/hnzpq99LOEoQLCWUteWet5saV0svOQ3THRTZYO2mUX18Yb1Xjrm6iGhpjOMueBn+X12WLSXgHLuWV07/30cFdUOuhrGGu68weoMUY060PIdslUFtygSWIVVtvDpX1W52MLZyINeaA=
data/README.md CHANGED
@@ -74,6 +74,7 @@ and running:
74
74
  - [Asset Page](#asset-page)
75
75
  - [Generate](#generate)
76
76
  - [Execution Order](#execution-order)
77
+ - [Image Conversion Tools](#image-conversion-tools)
77
78
  - [Workers and Threads](#workers-and-threads)
78
79
  - [Caching](#caching)
79
80
  - [Automatic Rengeneration](#automatic-regeneration)
@@ -360,6 +361,11 @@ force: false
360
361
  plugins: ['ssh_deploy', 'other_plugin']
361
362
  image_extensions: ['jpg', 'gif']
362
363
  page_extension: 'slim'
364
+ dependencies:
365
+ minimagick:
366
+ cli: 'imagemagick'
367
+ cli_path:
368
+ timeout: 3600
363
369
  ```
364
370
 
365
371
  The meanings and purpose of each field is defined below:
@@ -389,6 +395,11 @@ Field | Purpose
389
395
  `plugins` | an array of plugin names that have been included in your Gemfile and that Photish should require into it's runtime
390
396
  `image_extensions` | by default, Photish has a complete list of image extensions, however if you choose too, you can explicitly list the extensions that Photish should use to find images
391
397
  `page_extension` | the extension of **Pages** files that will live amongst the photo collection
398
+ `dependencies` | this section is for the configuration of third party tools
399
+ `dependencies/minimagick` | configuration for [minimagick](https://github.com/minimagick/minimagick), the wrapping library around [ImageMagick](http://www.imagemagick.org/) or [GraphicsMagick](http://www.graphicsmagick.org/)
400
+ `dependencies/minimagick/cli` | provide `imagemagick`, or `graphicsmagick` depending on your chosen library
401
+ `dependencies/minimagick/cli_path` | if the above executables are not in your PATH, you can provide it explicitly here
402
+ `dependencies/minimagick/timeout` | terminate a command after the provided number of seconds
392
403
 
393
404
  #### Customizing Templates
394
405
 
@@ -651,6 +662,35 @@ The Generate command does the following:
651
662
  1. Converts all Photo(s) to the configured quality versions, writing various
652
663
  images to the `output` folder
653
664
 
665
+ #### Image Conversion Tools
666
+
667
+ Photish supports [ImageMagick](http://www.imagemagick.org/) or
668
+ [GraphicsMagick](http://www.graphicsmagick.org/) for image conversion.
669
+
670
+ By default, Photish will assume [ImageMagick](http://www.imagemagick.org/) is
671
+ installed. To change this, ensure
672
+ [GraphicsMagick](http://www.graphicsmagick.org/) is installed and the utility
673
+ is availabe on the PATH. Then ensure that the [Config File
674
+ Option](#config-file-option) `dependencies/minimagick/cli` is set to
675
+ `graphicsmagick`. For example:
676
+
677
+ ```yaml
678
+ dependencies:
679
+ minimagick:
680
+ cli: graphicsmagick
681
+ ```
682
+
683
+ If [ImageMagick](http://www.imagemagick.org/) or
684
+ [GraphicsMagick](http://www.graphicsmagick.org/) is not available on the PATH
685
+ you can manually specify it's location by setting
686
+ `dependencies/minimagick/cli_path`. For example:
687
+
688
+ ```yaml
689
+ dependencies:
690
+ minimagick:
691
+ cli_path: '/usr/bin/convert'
692
+ ```
693
+
654
694
  #### Workers and Threads
655
695
 
656
696
  In order to achieve maximum utilization of all processors on a computer during
data/TODO.md CHANGED
@@ -2,12 +2,8 @@
2
2
 
3
3
  ## In Progress
4
4
 
5
- 1. Create config to configure mini magick
6
- (http://www.rubydoc.info/github/minimagick/minimagick/MiniMagick/Configuration)
7
5
  1. Create config to configure mini exiftool, also invalid chars
8
6
  (https://github.com/janfri/mini_exiftool#configuration)
9
- 1. Configure releases from travis-ci
10
- (https://docs.travis-ci.com/user/deployment/rubygems)
11
7
  1. Consider adding after release step of bumping and pushing other projects
12
8
  (https://docs.travis-ci.com/user/deployment/custom/)
13
9
 
@@ -19,12 +19,26 @@ module Photish
19
19
  plugins: [],
20
20
  image_extensions: image_extensions,
21
21
  page_extension: 'slim',
22
- soft_failure: false
22
+ soft_failure: false,
23
+ dependencies: {
24
+ minimagick: minimagick
25
+ }
23
26
  }
24
27
  end
25
28
 
26
29
  private
27
30
 
31
+ def minimagick
32
+ {
33
+ cli: 'imagemagick',
34
+ cli_path: nil,
35
+ timeout: 3600,
36
+ validate_on_create: true,
37
+ validate_on_write: true,
38
+ whiny: true
39
+ }
40
+ end
41
+
28
42
  def image_extensions
29
43
  ['aai', 'art', 'avs', 'bgr', 'bgra', 'bgro', 'bmp', 'bmp2', 'bmp3', 'brf', 'cal', 'cals', 'canvas', 'caption', 'cin', 'cip', 'clip', 'cmyk', 'cmyka', 'cur', 'cut', 'data', 'dcm', 'dcx', 'dds', 'dfont', 'dpx', 'dxt1', 'dxt5', 'eps2', 'eps3', 'fax', 'fits', 'fractal', 'fts', 'g3', 'gif', 'gif87', 'gradient', 'gray', 'group4', 'h', 'hald', 'hdr', 'histogram', 'hrz', 'htm', 'html', 'icb', 'ico', 'icon', 'inline', 'ipl', 'isobrl', 'isobrl6', 'jng', 'jnx', 'jpe', 'jpeg', 'jpg', 'jps', 'label', 'mac', 'magick', 'map', 'mask', 'matte', 'miff', 'mng', 'mono', 'mpc', 'msl', 'mtv', 'mvg', 'null', 'otb', 'otf', 'pal', 'palm', 'pam', 'pango', 'pattern', 'pbm', 'pcd', 'pcds', 'pct', 'pcx', 'pdb', 'pes', 'pfa', 'pfb', 'pfm', 'pgm', 'picon', 'pict', 'pix', 'pjpeg', 'plasma', 'png', 'png00', 'png24', 'png32', 'png48', 'png64', 'png8', 'pnm', 'ppm', 'preview', 'ps2', 'ps3', 'psb', 'psd', 'ptif', 'pwp', 'radial-gradient', 'ras', 'rgb', 'rgba', 'rgbo', 'rgf', 'rla', 'rle', 'scr', 'sct', 'sfw', 'sgi', 'shtml', 'six', 'sixel', 'sparse-color', 'stegano', 'sun', 'text', 'tga', 'thumbnail', 'tiff', 'tiff64', 'tile', 'tim', 'ttc', 'ttf', 'ubrl', 'ubrl6', 'uil', 'uyvy', 'vda', 'vicar', 'vid', 'viff', 'vips', 'vst', 'wbmp', 'wpg', 'xbm', 'xc', 'xcf', 'xpm', 'xv', 'ycbcr', 'ycbcra', 'yuv']
30
44
  end
@@ -11,6 +11,7 @@ module Photish
11
11
  def render(images)
12
12
  log.debug "Rendering #{images.count} images across #{threads} threads"
13
13
 
14
+ setup_minimagick
14
15
  cache_load_from_disk
15
16
  threads = spawn_thread_instances(to_queue(images))
16
17
  threads.map(&:join)
@@ -80,7 +81,6 @@ module Photish
80
81
  convert << image.path
81
82
  convert.merge!(image.quality_params)
82
83
  convert << output_path(image)
83
- log.debug "Performing image conversion #{convert.command}"
84
84
  end
85
85
  rescue MiniMagick::Error => e
86
86
  log.warn "Error occured while converting"
@@ -102,6 +102,27 @@ module Photish
102
102
  worker_index,
103
103
  version_hash)
104
104
  end
105
+
106
+ def minimagick_config
107
+ config.dependencies.minimagick
108
+ end
109
+
110
+ def debug?
111
+ config.logging.level == 'debug'
112
+ end
113
+
114
+ def setup_minimagick
115
+ MiniMagick.configure do |config|
116
+ config.cli = minimagick_config.cli.to_sym
117
+ config.cli_path = minimagick_config.cli_path if minimagick_config.cli_path
118
+ config.debug = debug?
119
+ config.logger = MiniMagick::Logger.new(Log::IO.new(log, :debug))
120
+ config.timeout = minimagick_config.timeout
121
+ config.validate_on_create = minimagick_config.validate_on_create
122
+ config.validate_on_write = minimagick_config.validate_on_write
123
+ config.whiny = minimagick_config.whiny
124
+ end
125
+ end
105
126
  end
106
127
  end
107
128
  end
@@ -1,5 +1,5 @@
1
1
  module Photish
2
- VERSION = "0.5.3"
2
+ VERSION = "0.6.0"
3
3
  AUTHOR_NAME = "Henry Lawson"
4
4
  AUTHOR_EMAIL = "henry.lawson@foinq.com"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: photish
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henry Lawson