camaleon_image_optimizer 0.3.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +10 -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/routes.rb +15 -11
- data/lib/camaleon_image_optimizer/engine.rb +2 -0
- data/lib/camaleon_image_optimizer/version.rb +3 -1
- data/lib/camaleon_image_optimizer.rb +2 -0
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63c0637156a18c434f3cf55f18aebbbd2b588c96ce4d74c318390e0c7e64640d
|
4
|
+
data.tar.gz: e10bee82fac13c798a0229a93bfb139a864ac7f1408061b5ebed80d2c538d71d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ea712828780ac059ae02185010acb39b84197a3e3b8d995b2b2c5d4f11bc7428fe7e78c5d50fcb8770789b34ba119ef75f88a970f087d24b0a568c75bf26a0c
|
7
|
+
data.tar.gz: af1a279deb1a77b62dd6f701415dbd7aac04b4ee0c5ebe18aa899df9bf4088437475d4620d8c3910e518bbad95b61509705e1f96ca0e454cb392fa382b5ff53b
|
data/README.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
![](https://img.shields.io/badge/ruby-2.6%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](https://github.com/brian-kephart/camaleon_image_optimizer/actions/workflows/build.yml/badge.svg)](https://github.com/brian-kephart/camaleon_image_optimizer/actions/workflows/build.yml)
|
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
|
|
@@ -41,5 +48,8 @@ SVGO_BIN='node_modules/svgo/bin/svgo'
|
|
41
48
|
## Usage
|
42
49
|
Just activate the plugin in Camaleon's admin panel.
|
43
50
|
|
51
|
+
## Contributing
|
52
|
+
See CONTRIBUTING.md
|
53
|
+
|
44
54
|
## License
|
45
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")), permitted_classes: [Range]
|
50
53
|
end
|
51
54
|
end
|
52
|
-
|
53
55
|
end
|
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:
|
4
|
+
version: 1.1.0
|
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: 2022-01-19 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
|
@@ -93,7 +93,8 @@ metadata:
|
|
93
93
|
homepage_uri: https://www.github.com/brian-kephart/camaleon_image_optimizer
|
94
94
|
changelog_uri: https://www.github.com/brian-kephart/camaleon_image_optimizer/blob/master/CHANGELOG.md
|
95
95
|
source_code_uri: https://www.github.com/brian-kephart/camaleon_image_optimizer
|
96
|
-
|
96
|
+
rubygems_mfa_required: 'true'
|
97
|
+
post_install_message:
|
97
98
|
rdoc_options: []
|
98
99
|
require_paths:
|
99
100
|
- lib
|
@@ -101,16 +102,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
101
102
|
requirements:
|
102
103
|
- - ">="
|
103
104
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
105
|
+
version: '2.6'
|
105
106
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
107
|
requirements:
|
107
108
|
- - ">="
|
108
109
|
- !ruby/object:Gem::Version
|
109
110
|
version: '0'
|
110
111
|
requirements: []
|
111
|
-
|
112
|
-
|
113
|
-
signing_key:
|
112
|
+
rubygems_version: 3.2.32
|
113
|
+
signing_key:
|
114
114
|
specification_version: 4
|
115
115
|
summary: Compress uploaded images for faster page loads and better SEO.
|
116
116
|
test_files: []
|