camaleon_image_optimizer 0.3.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +23 -0
- data/Rakefile +16 -14
- data/app/controllers/plugins/camaleon_image_optimizer/admin_controller.rb +3 -1
- data/app/helpers/plugins/camaleon_image_optimizer/main_helper.rb +14 -12
- data/config/camaleon_plugin.json +1 -0
- data/config/routes.rb +15 -11
- data/lib/camaleon_image_optimizer.rb +2 -1
- data/lib/camaleon_image_optimizer/engine.rb +2 -0
- data/lib/camaleon_image_optimizer/version.rb +3 -1
- metadata +16 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea86f69f0f3ed35a2200b76b67fc4138f8e5970d932ea52cc870a9c45d71a8b0
|
4
|
+
data.tar.gz: 33af3d85ac320d0c92208f64e069cf7b28a47e872de05847e21ce7d4ed0b4628
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee5d5987c3290a815ecffcd1c5028a9cda2666a0064ce81ee9f6378da1e73d4756e96915a5825d0e7fbe895ffd8608acb4cfe3f18dc7b38623cca9eeb09f8d6a
|
7
|
+
data.tar.gz: 985fcee951cc6c1545aca3e6bb33bcb34f650a32860090b051280a0cfb7af6a16cd272ff8d91cf795d5d672a0cbdc6647ee318f220632ae75da9e416267930d7
|
data/README.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
![](https://img.shields.io/badge/ruby-2.5%2B-red.svg)
|
2
|
+
![Gem Version](https://img.shields.io/gem/v/camaleon_image_optimizer.svg?colorB=blue)
|
3
|
+
[![Ruby Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://github.com/testdouble/standard)
|
4
|
+
[![Build Status](https://travis-ci.org/brian-kephart/camaleon_image_optimizer.svg?branch=master)](https://travis-ci.org/brian-kephart/camaleon_image_optimizer)
|
5
|
+
|
6
|
+
|
7
|
+
|
1
8
|
# Camaleon Image Optimizer
|
2
9
|
This is a convenient image optimizer plugin for Camaleon CMS. Compressing images improves load times and thus SEO. It uses the [image_optim gem](https://github.com/toy/image_optim) under the hood. This gem contains multiple utilities for compressing GIF, JPEG, PNG, and SVG files. My experience has been that GIFs JPEGs are easily crushable with these tools, but using multiple PNG compressors is extremely slow. Thus, only one of the PNG compressors is enabled here.
|
3
10
|
|
@@ -25,8 +32,24 @@ If you need support for compressing SVG files, install [SVGO](https://github.com
|
|
25
32
|
$ npm install -g svgo
|
26
33
|
```
|
27
34
|
|
35
|
+
If you instead install SVGO locally:
|
36
|
+
```bash
|
37
|
+
$ npm install svgo
|
38
|
+
```
|
39
|
+
or:
|
40
|
+
```bash
|
41
|
+
$ yarn add svgo
|
42
|
+
```
|
43
|
+
...then you must add this variable to your Production environment:
|
44
|
+
```
|
45
|
+
SVGO_BIN='node_modules/svgo/bin/svgo'
|
46
|
+
```
|
47
|
+
|
28
48
|
## Usage
|
29
49
|
Just activate the plugin in Camaleon's admin panel.
|
30
50
|
|
51
|
+
## Contributing
|
52
|
+
See CONTRIBUTING.md
|
53
|
+
|
31
54
|
## License
|
32
55
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/Rakefile
CHANGED
@@ -1,31 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
begin
|
2
|
-
require
|
4
|
+
require "bundler/setup"
|
3
5
|
rescue LoadError
|
4
|
-
puts
|
6
|
+
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
|
5
7
|
end
|
6
8
|
|
7
|
-
require
|
9
|
+
require "rdoc/task"
|
8
10
|
|
9
11
|
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
-
rdoc.rdoc_dir =
|
11
|
-
rdoc.title
|
12
|
-
rdoc.options <<
|
13
|
-
rdoc.rdoc_files.include(
|
14
|
-
rdoc.rdoc_files.include(
|
12
|
+
rdoc.rdoc_dir = "rdoc"
|
13
|
+
rdoc.title = "CamaleonImageOptimizer"
|
14
|
+
rdoc.options << "--line-numbers"
|
15
|
+
rdoc.rdoc_files.include("README.md")
|
16
|
+
rdoc.rdoc_files.include("lib/**/*.rb")
|
15
17
|
end
|
16
18
|
|
17
19
|
APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)
|
18
|
-
load
|
20
|
+
load "rails/tasks/engine.rake"
|
19
21
|
|
20
|
-
load
|
22
|
+
load "rails/tasks/statistics.rake"
|
21
23
|
|
22
|
-
require
|
24
|
+
require "bundler/gem_tasks"
|
23
25
|
|
24
|
-
require
|
26
|
+
require "rake/testtask"
|
25
27
|
|
26
28
|
Rake::TestTask.new(:test) do |t|
|
27
|
-
t.libs <<
|
28
|
-
t.pattern =
|
29
|
+
t.libs << "test"
|
30
|
+
t.pattern = "test/**/*_test.rb"
|
29
31
|
t.verbose = false
|
30
32
|
end
|
31
33
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class Plugins::CamaleonImageOptimizer::AdminController < CamaleonCms::Apps::PluginsAdminController
|
2
4
|
include Plugins::CamaleonImageOptimizer::MainHelper
|
3
5
|
def index
|
@@ -12,6 +14,6 @@ class Plugins::CamaleonImageOptimizer::AdminController < CamaleonCms::Apps::Plug
|
|
12
14
|
@plugin.set_options(params[:options]) if params[:options].present? # save option values
|
13
15
|
@plugin.set_metas(params[:metas]) if params[:metas].present? # save meta values
|
14
16
|
@plugin.set_field_values(params[:field_options]) if params[:field_options].present? # save custom field values
|
15
|
-
redirect_to url_for(action: :settings), notice:
|
17
|
+
redirect_to url_for(action: :settings), notice: "Settings Saved Successfully"
|
16
18
|
end
|
17
19
|
end
|
@@ -1,8 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# This modules public methods are called via hooks defined in config/camaleon_plugin.json
|
1
4
|
module Plugins::CamaleonImageOptimizer::MainHelper
|
2
|
-
require
|
5
|
+
require "image_optim"
|
3
6
|
|
4
7
|
def self.included(klass)
|
5
|
-
# klass.helper_method [:my_helper_method] rescue "" #
|
8
|
+
# klass.helper_method [:my_helper_method] rescue "" # methods accessible from views
|
6
9
|
end
|
7
10
|
|
8
11
|
def camaleon_image_optimizer_on_active(plugin)
|
@@ -17,7 +20,7 @@ module Plugins::CamaleonImageOptimizer::MainHelper
|
|
17
20
|
end
|
18
21
|
|
19
22
|
def camaleon_image_optimizer_on_plugin_options(args)
|
20
|
-
args[:links] << link_to(
|
23
|
+
args[:links] << link_to("Settings", admin_plugins_camaleon_image_optimizer_settings_path)
|
21
24
|
end
|
22
25
|
|
23
26
|
def cama_optimize_image(settings)
|
@@ -26,28 +29,27 @@ module Plugins::CamaleonImageOptimizer::MainHelper
|
|
26
29
|
settings[:uploaded_io] = File.open settings[:uploaded_io].path
|
27
30
|
end
|
28
31
|
|
29
|
-
private
|
32
|
+
private
|
30
33
|
|
31
34
|
def camaleon_image_optimizer_options(plugin)
|
32
|
-
plugin.set_option(
|
35
|
+
plugin.set_option("quality", camaleon_image_optimizer_default_settings["jpegoptim"]["max_quality"]) unless plugin.get_option("quality").present?
|
33
36
|
end
|
34
37
|
|
35
38
|
def camaleon_image_optimizer_settings
|
36
39
|
@camaleon_image_optimizer_settings ||= camaleon_image_optimizer_default_settings.tap do |cios|
|
37
|
-
unless current_plugin.get_option(
|
38
|
-
cios[
|
39
|
-
cios[
|
40
|
+
unless current_plugin.get_option("quality").blank?
|
41
|
+
cios["jpegoptim"]["max_quality"] = current_plugin.get_option "quality"
|
42
|
+
cios["pngquant"]["quality"] = (0..current_plugin.get_option("quality"))
|
40
43
|
end
|
41
44
|
end
|
42
45
|
end
|
43
46
|
|
47
|
+
# default settings in config/image_optim.yml
|
44
48
|
def camaleon_image_optimizer_default_settings
|
45
49
|
@camaleon_image_optimizer_default_settings ||= begin
|
46
|
-
|
47
|
-
spec = Gem::Specification.find_by_name 'camaleon_image_optimizer'
|
50
|
+
spec = Gem::Specification.find_by_name "camaleon_image_optimizer"
|
48
51
|
gem_root = Pathname.new spec.gem_dir
|
49
|
-
YAML.
|
52
|
+
YAML.safe_load File.open(gem_root.join("config", "image_optim.yml")), [Range]
|
50
53
|
end
|
51
54
|
end
|
52
|
-
|
53
55
|
end
|
data/config/camaleon_plugin.json
CHANGED
@@ -8,6 +8,7 @@
|
|
8
8
|
"hooks": {
|
9
9
|
"on_active": ["camaleon_image_optimizer_on_active"],
|
10
10
|
"on_inactive": ["camaleon_image_optimizer_on_inactive"],
|
11
|
+
"on_upgrade": ["camaleon_image_optimizer_on_upgrade"],
|
11
12
|
"plugin_options": ["camaleon_image_optimizer_on_plugin_options"],
|
12
13
|
"before_upload": ["cama_optimize_image"]
|
13
14
|
}
|
data/config/routes.rb
CHANGED
@@ -1,17 +1,21 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "plugin_routes"
|
4
|
+
require "camaleon_cms/engine"
|
2
5
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
6
|
+
Rails.application.routes.draw do
|
7
|
+
scope PluginRoutes.system_info["relative_url_root"] do
|
8
|
+
# Admin Panel
|
9
|
+
scope :admin, as: "admin", path: PluginRoutes.system_info["admin_path_name"] do
|
10
|
+
namespace "plugins" do
|
11
|
+
namespace "camaleon_image_optimizer" do
|
12
|
+
controller :admin do
|
13
|
+
get :index
|
14
|
+
get :settings
|
15
|
+
post :save_settings
|
13
16
|
end
|
14
17
|
end
|
15
18
|
end
|
16
19
|
end
|
17
20
|
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: camaleon_image_optimizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Kephart
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: camaleon_cms
|
@@ -56,16 +56,16 @@ dependencies:
|
|
56
56
|
name: sqlite3
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '1.4'
|
62
62
|
type: :development
|
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: '
|
68
|
+
version: '1.4'
|
69
69
|
description: Compress uploaded images for faster page loads and better SEO.
|
70
70
|
email:
|
71
71
|
- briantkephart@gmail.com
|
@@ -86,11 +86,14 @@ files:
|
|
86
86
|
- lib/camaleon_image_optimizer.rb
|
87
87
|
- lib/camaleon_image_optimizer/engine.rb
|
88
88
|
- lib/camaleon_image_optimizer/version.rb
|
89
|
-
homepage:
|
89
|
+
homepage: https://www.github.com/brian-kephart/camaleon_image_optimizer
|
90
90
|
licenses:
|
91
91
|
- MIT
|
92
|
-
metadata:
|
93
|
-
|
92
|
+
metadata:
|
93
|
+
homepage_uri: https://www.github.com/brian-kephart/camaleon_image_optimizer
|
94
|
+
changelog_uri: https://www.github.com/brian-kephart/camaleon_image_optimizer/blob/master/CHANGELOG.md
|
95
|
+
source_code_uri: https://www.github.com/brian-kephart/camaleon_image_optimizer
|
96
|
+
post_install_message:
|
94
97
|
rdoc_options: []
|
95
98
|
require_paths:
|
96
99
|
- lib
|
@@ -98,16 +101,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
98
101
|
requirements:
|
99
102
|
- - ">="
|
100
103
|
- !ruby/object:Gem::Version
|
101
|
-
version: '
|
104
|
+
version: '2.5'
|
102
105
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
106
|
requirements:
|
104
107
|
- - ">="
|
105
108
|
- !ruby/object:Gem::Version
|
106
109
|
version: '0'
|
107
110
|
requirements: []
|
108
|
-
|
109
|
-
|
110
|
-
signing_key:
|
111
|
+
rubygems_version: 3.2.3
|
112
|
+
signing_key:
|
111
113
|
specification_version: 4
|
112
114
|
summary: Compress uploaded images for faster page loads and better SEO.
|
113
115
|
test_files: []
|