imageomatic 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/concerns/imageomatic/opengraph.rb +6 -2
- data/app/models/imageomatic/opengraph/model.rb +1 -1
- data/exe/imageomatic +4 -0
- data/lib/generators/imageomatic/install/install_generator.rb +4 -0
- data/lib/generators/imageomatic/install/templates/imageomatic.rb.tt +14 -0
- data/lib/imageomatic/cli.rb +23 -0
- data/lib/imageomatic/client.rb +13 -0
- data/lib/imageomatic/configuration.rb +18 -0
- data/lib/imageomatic/key_generator.rb +43 -0
- data/lib/imageomatic/version.rb +1 -1
- data/lib/imageomatic.rb +20 -2
- metadata +25 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56c3cad53d8ab41c03d1062ff85f3d0616680c1703a57592d33a92878921e485
|
4
|
+
data.tar.gz: 787aef08807389181b223c5f9a27b41af680954425d80afd9b767699963590f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0addd92d5d109f408285aa777d9234a69652472a9a5cb0e12809baa9a15b5565c04640458f2acd879897b125df544586a37cfed6571c5cf711e4d3fb04f2455a
|
7
|
+
data.tar.gz: b3047ca8ec7f5394bd1e8a4c4b15fd281a17cb6b9ff9630dc38aaa53a06ff9629682a86de45141365d86a560b1dda41e2a8292bac8306548c6e7944a9d589060
|
@@ -2,6 +2,9 @@ module Imageomatic
|
|
2
2
|
module Opengraph
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
|
+
DEFAULT_OPENGRAPH_TYPE = "website".freeze
|
6
|
+
|
7
|
+
DEFAULT_OPENGRAPH_FALLBACK_FORMATS = [ :opengraph, :html ]
|
5
8
|
included do
|
6
9
|
before_action :assign_opengraph_fallback_formats, if: :opengraph_request?
|
7
10
|
before_action :assign_opengraph_defaults
|
@@ -13,7 +16,7 @@ module Imageomatic
|
|
13
16
|
|
14
17
|
protected
|
15
18
|
def assign_opengraph_fallback_formats
|
16
|
-
request.formats =
|
19
|
+
request.formats = DEFAULT_OPENGRAPH_FALLBACK_FORMATS
|
17
20
|
end
|
18
21
|
|
19
22
|
def opengraph_request?
|
@@ -21,7 +24,7 @@ module Imageomatic
|
|
21
24
|
end
|
22
25
|
|
23
26
|
def url_for_opengraph_image
|
24
|
-
url_for(format: :opengraph)
|
27
|
+
Imageomatic.client.url_signature.url_for "opengraph", url: url_for(format: :opengraph)
|
25
28
|
end
|
26
29
|
|
27
30
|
def opengraph
|
@@ -30,6 +33,7 @@ module Imageomatic
|
|
30
33
|
|
31
34
|
def assign_opengraph_defaults
|
32
35
|
opengraph.image ||= url_for_opengraph_image
|
36
|
+
opengraph.type ||= DEFAULT_OPENGRAPH_TYPE
|
33
37
|
end
|
34
38
|
end
|
35
39
|
end
|
data/exe/imageomatic
ADDED
@@ -12,4 +12,8 @@ class Imageomatic::InstallGenerator < Rails::Generators::Base
|
|
12
12
|
def copy_layout
|
13
13
|
copy_file "application.opengraph.erb", "app/views/layouts/application.opengraph.erb"
|
14
14
|
end
|
15
|
+
|
16
|
+
def copy_configuration_file
|
17
|
+
template "imageomatic.rb.tt", "config/initializers/imageomatic.rb"
|
18
|
+
end
|
15
19
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Imageomatic.configure do |config|
|
2
|
+
if Rails.env.production?
|
3
|
+
# For production deployments, set the following environment keys:
|
4
|
+
#
|
5
|
+
# ```
|
6
|
+
# IMAGEOMATIC_SECRET_KEY=
|
7
|
+
# IMAGEOMATIC_PUBLIC_KEY=
|
8
|
+
# ```
|
9
|
+
config.load_env
|
10
|
+
else
|
11
|
+
config.secret_key = "<%= Imageomatic.key_generator.secret_key %>"
|
12
|
+
config.public_key = "<%= Imageomatic.key_generator.public_key %>"
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require "thor"
|
2
|
+
|
3
|
+
module Imageomatic
|
4
|
+
class CLI < Thor
|
5
|
+
include Thor::Actions
|
6
|
+
|
7
|
+
desc "install", "Install Imageomatic to the Rails application"
|
8
|
+
def install
|
9
|
+
run "./bin/bundle add imageomatic"
|
10
|
+
run "./bin/rails generate imageomatic:install"
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "version", "Prints the version of imageomatic"
|
14
|
+
def version
|
15
|
+
puts Imageomatic::VERSION
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "environment [ENVIRONMENT]", "Generates environment variables for target enrivonment"
|
19
|
+
def environment(environment = Imageomatic::KeyGenerator::ENVIRONMENT)
|
20
|
+
puts Imageomatic.key_generator(environment: environment).env_vars
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Imageomatic
|
2
|
+
class Client
|
3
|
+
delegate :secret_key, :public_key, to: :configuration
|
4
|
+
|
5
|
+
def url_signature
|
6
|
+
@url_signature ||= UrlSignature.new(secret_key: secret_key, public_key: public_key)
|
7
|
+
end
|
8
|
+
|
9
|
+
def configuration
|
10
|
+
@configuration ||= Configuration.new
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Imageomatic
|
2
|
+
class Configuration
|
3
|
+
attr_accessor :secret_key, :public_key
|
4
|
+
|
5
|
+
def load_secret_key_env
|
6
|
+
self.secret_key = ENV.fetch("IMAGEOMATIC_SECRET_KEY")
|
7
|
+
end
|
8
|
+
|
9
|
+
def load_public_key_env
|
10
|
+
self.public_key = ENV.fetch("IMAGEOMATIC_PUBLIC_KEY")
|
11
|
+
end
|
12
|
+
|
13
|
+
def load_env
|
14
|
+
load_secret_key_env
|
15
|
+
load_public_key_env
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require "securerandom"
|
2
|
+
|
3
|
+
module Imageomatic
|
4
|
+
# Generates random keys for environments.
|
5
|
+
class KeyGenerator
|
6
|
+
LENGTH = 14
|
7
|
+
DELIMITER = "_".freeze
|
8
|
+
ENVIRONMENT = :development
|
9
|
+
|
10
|
+
attr_reader :environment
|
11
|
+
|
12
|
+
def initialize(environment: ENVIRONMENT)
|
13
|
+
@environment = environment
|
14
|
+
end
|
15
|
+
|
16
|
+
def public_key
|
17
|
+
generate :public
|
18
|
+
end
|
19
|
+
|
20
|
+
def secret_key
|
21
|
+
generate :secret
|
22
|
+
end
|
23
|
+
|
24
|
+
def env_vars
|
25
|
+
<<~ENVARS
|
26
|
+
IMAGEOMATIC_SECRET_KEY=#{secret_key}
|
27
|
+
IMAGEOMATIC_PUBLIC_KEY=#{public_key}
|
28
|
+
ENVARS
|
29
|
+
end
|
30
|
+
|
31
|
+
def generate(*scopes)
|
32
|
+
scopes
|
33
|
+
.prepend(environment)
|
34
|
+
.append(random)
|
35
|
+
.join(DELIMITER)
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
def random
|
40
|
+
SecureRandom.hex(LENGTH)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/imageomatic/version.rb
CHANGED
data/lib/imageomatic.rb
CHANGED
@@ -1,6 +1,24 @@
|
|
1
1
|
require "imageomatic/version"
|
2
|
-
require "imageomatic/engine"
|
2
|
+
require "imageomatic/engine" if defined? Rails
|
3
3
|
|
4
4
|
module Imageomatic
|
5
|
-
autoload :
|
5
|
+
autoload :CLI, "imageomatic/cli"
|
6
|
+
autoload :Client, "imageomatic/client"
|
7
|
+
autoload :Configuration, "imageomatic/configuration"
|
8
|
+
autoload :KeyGenerator, "imageomatic/key_generator"
|
9
|
+
autoload :UrlSignature, "imageomatic/url_signature"
|
10
|
+
|
11
|
+
class << self
|
12
|
+
def client
|
13
|
+
@client ||= Client.new
|
14
|
+
end
|
15
|
+
|
16
|
+
def key_generator(environment: Rails.env)
|
17
|
+
@key_generator ||= KeyGenerator.new(environment: environment)
|
18
|
+
end
|
19
|
+
|
20
|
+
def configure(&block)
|
21
|
+
block.call client.configuration
|
22
|
+
end
|
23
|
+
end
|
6
24
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: imageomatic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brad Gessler
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-06-
|
11
|
+
date: 2022-06-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -24,10 +24,25 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 7.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: thor
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.0.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.0.0
|
27
41
|
description: Easiest way to generate fresh images for Rails applications.
|
28
42
|
email:
|
29
43
|
- brad@imageomatic.com
|
30
|
-
executables:
|
44
|
+
executables:
|
45
|
+
- imageomatic
|
31
46
|
extensions: []
|
32
47
|
extra_rdoc_files: []
|
33
48
|
files:
|
@@ -48,11 +63,17 @@ files:
|
|
48
63
|
- app/views/layouts/imageomatic/application.html.erb
|
49
64
|
- config/initializers/mime_types.rb
|
50
65
|
- config/routes.rb
|
66
|
+
- exe/imageomatic
|
51
67
|
- lib/generators/imageomatic/install/USAGE
|
52
68
|
- lib/generators/imageomatic/install/install_generator.rb
|
53
69
|
- lib/generators/imageomatic/install/templates/application.opengraph.erb
|
70
|
+
- lib/generators/imageomatic/install/templates/imageomatic.rb.tt
|
54
71
|
- lib/imageomatic.rb
|
72
|
+
- lib/imageomatic/cli.rb
|
73
|
+
- lib/imageomatic/client.rb
|
74
|
+
- lib/imageomatic/configuration.rb
|
55
75
|
- lib/imageomatic/engine.rb
|
76
|
+
- lib/imageomatic/key_generator.rb
|
56
77
|
- lib/imageomatic/url_signature.rb
|
57
78
|
- lib/imageomatic/version.rb
|
58
79
|
- lib/tasks/imageomatic_tasks.rake
|