shimmer 0.0.14 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 737a560e741a968270a0c57bd4185c7063de49d254f5ccb1d180c4d720b3e1e3
4
- data.tar.gz: fcc86365d2676fff9da6dbe1e02c9794ec431225d32fe45a9101857d977ac950
3
+ metadata.gz: 789f3862287d4a4e4ea0ea64429d5855d147853d25a85f896acde0f4a456f805
4
+ data.tar.gz: 5fe592396ee46ae62468f4436835b1a3718fedfe60823287388bbe28cbb51f92
5
5
  SHA512:
6
- metadata.gz: 0f3121eae9bb3df396973ddded3ffb4b7a0f62bbdf0367bd402bc00e1fcda1086ec3b7528a628a8c7473433d66fd17d5c612e6040b8ac983d331c03368845462
7
- data.tar.gz: 72b94b0ebf4ef841d6c544723627fdf69825c04f2ef74739658243dc4bc4c18dde81544db05982f11a279e0a34471d9ff43ee8e7034d999fd6cdd1911f0f39bb
6
+ metadata.gz: 3ca1e5c4a38b5b36da2b9cc20bae29c2a20df60550f8e9904db8de6cca92aea4c02f62cdb57d1c72cbfb0b4d660b2714ac3051e6c9eb8996914d954ba5ec14a4
7
+ data.tar.gz: 50d5ffc3cac315ad169da4da82c621338b565598919930a3f3f72bd32f0321d2c781ba0598020762aaa5492b96a3988d6377ded829e4c650e4ebb3fb48361d5b
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Shimmer
4
+ module MetaHelper
5
+ def meta
6
+ @meta ||= Meta.new.tap do |meta|
7
+ meta.canonical = url_for(only_path: false)
8
+ end
9
+ end
10
+
11
+ def title(value)
12
+ meta.title = value
13
+ end
14
+
15
+ def description(value)
16
+ meta.description = value
17
+ end
18
+
19
+ def image(value)
20
+ meta.image = image_file_url(value, width: 1200)
21
+ end
22
+
23
+ def render_meta
24
+ tags = meta.tags.map do |tag|
25
+ type = tag.delete(:type) || "meta"
26
+ value = tag.delete(:value)
27
+ content_tag(type, value, tag)
28
+ end
29
+ safe_join tags, "\n"
30
+ end
31
+ end
32
+ end
@@ -8,3 +8,11 @@ module Shimmer
8
8
  end
9
9
  end
10
10
  end
11
+
12
+ ActiveSupport.on_load(:action_view) do
13
+ Dir.glob("#{File.expand_path(__dir__)}/helpers/**/*.rb").each do |file|
14
+ load file
15
+ name = file.split("/").last.delete_suffix(".rb").classify
16
+ include "Shimmer::#{name}".constantize
17
+ end
18
+ end
@@ -43,4 +43,13 @@ namespace :db do
43
43
 
44
44
  desc "Download all app data, including assets"
45
45
  task pull: [:pull_data, :pull_assets]
46
+
47
+ desc "Migrates if the database has any tables."
48
+ task migrate_if_tables: :environment do
49
+ if ActiveRecord::Base.connection.tables.any?
50
+ Rake::Task["db:migrate"].invoke
51
+ else
52
+ puts "No tables in database yet, skipping migration"
53
+ end
54
+ end
46
55
  end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :s3 do
4
+ desc "Creates a new S3 bucket and outputs or uploads the credentials."
5
+ task :create_bucket do
6
+ puts "Please enter the name for your new bucket"
7
+ name = $stdin.gets.strip
8
+ region = "eu-central-1"
9
+ sh "aws s3 mb s3://#{name} --region #{region}"
10
+ sh "aws iam create-user --user-name #{name}"
11
+ policy = <<~JSON
12
+ {
13
+ "Version": "2012-10-17",
14
+ "Statement": [
15
+ {
16
+ "Effect": "Allow",
17
+ "Action": [
18
+ "s3:CreateBucket",
19
+ "s3:DeleteObject",
20
+ "s3:Put*",
21
+ "s3:Get*",
22
+ "s3:List*"
23
+ ],
24
+ "Resource": [
25
+ "arn:aws:s3:::#{name}",
26
+ "arn:aws:s3:::#{name}/*"
27
+ ]
28
+ }
29
+ ]
30
+ }
31
+ JSON
32
+ File.write("policy.json", policy)
33
+ sh "aws iam put-user-policy --user-name #{name} --policy-name #{name} --policy-document file://policy.json"
34
+ File.delete("policy.json")
35
+ content = JSON.parse `aws iam create-access-key --user-name #{name}`
36
+ id = content.dig("AccessKey", "AccessKeyId")
37
+ secret = content.dig("AccessKey", "SecretAccessKey")
38
+ puts "Credentials and bucket were generated. Automatically assign them to the associated Heroku project? This will override and delete all current keys on Heroku. (y/n)"
39
+ vars = {AWS_REGION: region, AWS_BUCKET: name, AWS_ACCESS_KEY_ID: id, AWS_SECRET_ACCESS_KEY: secret}
40
+ if $stdin.gets.strip == "y"
41
+ sh "heroku config:set #{vars.map { |k, v| "#{k}=#{v}" }.join(" ")}"
42
+ else
43
+ vars.each { |k, v| puts "#{k}=#{v}" }
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Shimmer
4
+ class Meta
5
+ class_attribute :app_name
6
+ attr_accessor :title, :description, :image, :canonical
7
+
8
+ def tags
9
+ tags = []
10
+ title = self.title.present? ? "#{self.title} | #{app_name}" : app_name
11
+ tags.push(type: :title, value: title)
12
+ tags.push(property: "og:title", content: title)
13
+ if description.present?
14
+ tags.push(name: :description, content: description)
15
+ tags.push(property: "og:description", content: description)
16
+ end
17
+ if image.present?
18
+ tags.push(property: "og:image", content: image)
19
+ end
20
+ if canonical.present?
21
+ tags.push(type: :link, rel: :canonical, href: canonical)
22
+ tags.push(property: "og:url", content: canonical)
23
+ end
24
+ tags.push(property: "og:type", content: :website)
25
+ tags.push(property: "og:locale", content: I18n.locale)
26
+ tags.push(name: "twitter:card", content: :summary_large_image)
27
+ tags
28
+ end
29
+ end
30
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Shimmer
4
- VERSION = "0.0.14"
4
+ VERSION = "0.0.15"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shimmer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jens Ravens
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-22 00:00:00.000000000 Z
11
+ date: 2022-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -145,16 +145,19 @@ files:
145
145
  - lib/shimmer/auth/user.rb
146
146
  - lib/shimmer/controllers/files_controller.rb
147
147
  - lib/shimmer/controllers/sitemaps_controller.rb
148
+ - lib/shimmer/helpers/meta_helper.rb
148
149
  - lib/shimmer/jobs/sitemap_job.rb
149
150
  - lib/shimmer/middlewares/cloudflare.rb
150
151
  - lib/shimmer/railtie.rb
151
152
  - lib/shimmer/tasks/auth.rake
152
153
  - lib/shimmer/tasks/db.rake
153
154
  - lib/shimmer/tasks/lint.rake
155
+ - lib/shimmer/tasks/s3.rake
154
156
  - lib/shimmer/utils/config.rb
155
157
  - lib/shimmer/utils/file_helper.rb
156
158
  - lib/shimmer/utils/file_proxy.rb
157
159
  - lib/shimmer/utils/localizable.rb
160
+ - lib/shimmer/utils/meta.rb
158
161
  - lib/shimmer/utils/remote_navigation.rb
159
162
  - lib/shimmer/utils/sitemap_adapter.rb
160
163
  - lib/shimmer/version.rb