Bring app in line with Hanami 2.1.0 base
This commit is contained in:
15
app/relations/auto_taggings.rb
Normal file
15
app/relations/auto_taggings.rb
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Adamantium
|
||||||
|
module Relations
|
||||||
|
class AutoTaggings < ROM::Relation[:sql]
|
||||||
|
schema :auto_taggings, infer: true do
|
||||||
|
associations do
|
||||||
|
belongs_to :tag
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
auto_struct(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
11
app/relations/movies.rb
Normal file
11
app/relations/movies.rb
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Adamantium
|
||||||
|
module Relations
|
||||||
|
class Movies < ROM::Relation[:sql]
|
||||||
|
schema :movies, infer: true
|
||||||
|
|
||||||
|
auto_struct(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
11
app/relations/podcasts.rb
Normal file
11
app/relations/podcasts.rb
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Adamantium
|
||||||
|
module Relations
|
||||||
|
class Podcasts < ROM::Relation[:sql]
|
||||||
|
schema :podcasts, infer: true
|
||||||
|
|
||||||
|
auto_struct(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
16
app/relations/post_tags.rb
Normal file
16
app/relations/post_tags.rb
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Adamantium
|
||||||
|
module Relations
|
||||||
|
class PostTags < ROM::Relation[:sql]
|
||||||
|
schema :post_tags, infer: true do
|
||||||
|
associations do
|
||||||
|
belongs_to :post
|
||||||
|
belongs_to :tag
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
auto_struct(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
16
app/relations/post_trips.rb
Normal file
16
app/relations/post_trips.rb
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Adamantium
|
||||||
|
module Relations
|
||||||
|
class PostTrips < ROM::Relation[:sql]
|
||||||
|
schema :post_trips, infer: true do
|
||||||
|
associations do
|
||||||
|
belongs_to :post
|
||||||
|
belongs_to :trip
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
auto_struct(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
40
app/relations/posts.rb
Normal file
40
app/relations/posts.rb
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Adamantium
|
||||||
|
module Relations
|
||||||
|
class Posts < ROM::Relation[:sql]
|
||||||
|
schema :posts, infer: true do
|
||||||
|
associations do
|
||||||
|
has_many :post_tags
|
||||||
|
has_many :tags, through: :post_tags
|
||||||
|
|
||||||
|
has_many :post_trips
|
||||||
|
has_many :trips, through: :post_trips
|
||||||
|
|
||||||
|
has_many :webmentions
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
auto_struct(true)
|
||||||
|
|
||||||
|
def published
|
||||||
|
where(self[:published_at] <= Time.now)
|
||||||
|
end
|
||||||
|
|
||||||
|
def weekly
|
||||||
|
ref = post_tags.where(tag_id: "70").select(:post_id).dataset
|
||||||
|
where(id: ref)
|
||||||
|
end
|
||||||
|
|
||||||
|
def non_weekly
|
||||||
|
ref = post_tags.where(tag_id: "70").select(:post_id).dataset
|
||||||
|
exclude(id: ref)
|
||||||
|
end
|
||||||
|
|
||||||
|
def published_between(start_date, end_date)
|
||||||
|
where(self[:published_at] >= start_date)
|
||||||
|
.where(self[:published_at] <= end_date)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
16
app/relations/tags.rb
Normal file
16
app/relations/tags.rb
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Adamantium
|
||||||
|
module Relations
|
||||||
|
class Tags < ROM::Relation[:sql]
|
||||||
|
schema :tags, infer: true do
|
||||||
|
associations do
|
||||||
|
has_many :post_tags
|
||||||
|
has_many :posts, through: :post_tags
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
auto_struct(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
11
app/relations/top_tracks.rb
Normal file
11
app/relations/top_tracks.rb
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Adamantium
|
||||||
|
module Relations
|
||||||
|
class TopTracks < ROM::Relation[:sql]
|
||||||
|
schema :top_tracks, infer: true
|
||||||
|
|
||||||
|
auto_struct(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
20
app/relations/trips.rb
Normal file
20
app/relations/trips.rb
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Adamantium
|
||||||
|
module Relations
|
||||||
|
class Trips < ROM::Relation[:sql]
|
||||||
|
schema :trips, infer: true do
|
||||||
|
associations do
|
||||||
|
has_many :post_trips
|
||||||
|
has_many :posts, through: :post_trips
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
auto_struct(true)
|
||||||
|
|
||||||
|
def published
|
||||||
|
where(self[:start_date] <= Time.now)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
19
app/relations/webmentions.rb
Normal file
19
app/relations/webmentions.rb
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Adamantium
|
||||||
|
module Relations
|
||||||
|
class Webmentions < ROM::Relation[:sql]
|
||||||
|
schema :webmentions, infer: true do
|
||||||
|
associations do
|
||||||
|
belongs_to :post
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
auto_struct(true)
|
||||||
|
|
||||||
|
def published
|
||||||
|
where(self[:published_at] <= Time.now)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
11
app/relations/workouts.rb
Normal file
11
app/relations/workouts.rb
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Adamantium
|
||||||
|
module Relations
|
||||||
|
class Workouts < ROM::Relation[:sql]
|
||||||
|
schema :workouts, infer: true
|
||||||
|
|
||||||
|
auto_struct(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@@ -24,13 +24,17 @@ Hanami.app.register_provider :persistence, namespace: true do
|
|||||||
start do
|
start do
|
||||||
rom_config = target["persistence.config"]
|
rom_config = target["persistence.config"]
|
||||||
rom_config.auto_registration(
|
rom_config.auto_registration(
|
||||||
target.root.join("lib/adamantium/persistence"),
|
target.root.join("app"),
|
||||||
namespace: "Adamantium::Persistence"
|
namespace: Hanami.app.namespace.to_s
|
||||||
)
|
)
|
||||||
|
|
||||||
register "rom", ROM.container(rom_config)
|
register "rom", ROM.container(rom_config)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
stop do
|
||||||
|
target["persistence.rom"].disconnect
|
||||||
|
end
|
||||||
|
|
||||||
define_method(:silence_warnings) do |&block|
|
define_method(:silence_warnings) do |&block|
|
||||||
orig_verbose = $VERBOSE
|
orig_verbose = $VERBOSE
|
||||||
$VERBOSE = nil
|
$VERBOSE = nil
|
||||||
|
@@ -1,17 +1,47 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
max_threads_count = ENV.fetch("HANAMI_MAX_THREADS", 5)
|
#
|
||||||
min_threads_count = ENV.fetch("HANAMI_MIN_THREADS") { max_threads_count }
|
# Environment and port
|
||||||
threads min_threads_count, max_threads_count
|
#
|
||||||
|
|
||||||
port ENV.fetch("HANAMI_PORT", 2300)
|
port ENV.fetch("HANAMI_PORT", 2300)
|
||||||
environment ENV.fetch("HANAMI_ENV", "development")
|
environment ENV.fetch("HANAMI_ENV", "development")
|
||||||
workers ENV.fetch("HANAMI_WEB_CONCURRENCY", 2)
|
|
||||||
|
|
||||||
on_worker_boot do
|
#
|
||||||
|
# Threads within each Puma/Ruby process (aka worker)
|
||||||
|
#
|
||||||
|
|
||||||
|
# Configure the minimum and maximum number of threads to use to answer requests.
|
||||||
|
max_threads_count = ENV.fetch("HANAMI_MAX_THREADS", 5)
|
||||||
|
min_threads_count = ENV.fetch("HANAMI_MIN_THREADS") { max_threads_count }
|
||||||
|
|
||||||
|
threads min_threads_count, max_threads_count
|
||||||
|
|
||||||
|
#
|
||||||
|
# Workers (aka Puma/Ruby processes)
|
||||||
|
#
|
||||||
|
|
||||||
|
puma_concurrency = Integer(ENV.fetch("HANAMI_WEB_CONCURRENCY", 0))
|
||||||
|
puma_cluster_mode = puma_concurrency > 1
|
||||||
|
|
||||||
|
# How many worker (Puma/Ruby) processes to run.
|
||||||
|
# Typically this is set to the number of available cores.
|
||||||
|
workers puma_concurrency
|
||||||
|
|
||||||
|
#
|
||||||
|
# Cluster mode (aka multiple workers)
|
||||||
|
#
|
||||||
|
|
||||||
|
if puma_cluster_mode
|
||||||
|
# Preload the application before starting the workers. Only in cluster mode.
|
||||||
|
preload_app!
|
||||||
|
|
||||||
|
# Code to run immediately before master process forks workers (once on boot).
|
||||||
|
#
|
||||||
|
# These hooks can block if necessary to wait for background operations unknown
|
||||||
|
# to puma to finish before the process terminates. This can be used to close
|
||||||
|
# any connections to remote servers (database, redis, …) that were opened when
|
||||||
|
# preloading the code.
|
||||||
|
before_fork do
|
||||||
Hanami.shutdown
|
Hanami.shutdown
|
||||||
end
|
end
|
||||||
|
end
|
||||||
pidfile ENV.fetch("PIDFILE", "tmp/pids/puma.pid")
|
|
||||||
|
|
||||||
preload_app!
|
|
@@ -1,17 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module Adamantium
|
|
||||||
module Persistence
|
|
||||||
module Relations
|
|
||||||
class AutoTaggings < ROM::Relation[:sql]
|
|
||||||
schema :auto_taggings, infer: true do
|
|
||||||
associations do
|
|
||||||
belongs_to :tag
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
auto_struct(true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@@ -1,13 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module Adamantium
|
|
||||||
module Persistence
|
|
||||||
module Relations
|
|
||||||
class Movies < ROM::Relation[:sql]
|
|
||||||
schema :movies, infer: true
|
|
||||||
|
|
||||||
auto_struct(true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@@ -1,13 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module Adamantium
|
|
||||||
module Persistence
|
|
||||||
module Relations
|
|
||||||
class Podcasts < ROM::Relation[:sql]
|
|
||||||
schema :podcasts, infer: true
|
|
||||||
|
|
||||||
auto_struct(true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@@ -1,18 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module Adamantium
|
|
||||||
module Persistence
|
|
||||||
module Relations
|
|
||||||
class PostTags < ROM::Relation[:sql]
|
|
||||||
schema :post_tags, infer: true do
|
|
||||||
associations do
|
|
||||||
belongs_to :post
|
|
||||||
belongs_to :tag
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
auto_struct(true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@@ -1,18 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module Adamantium
|
|
||||||
module Persistence
|
|
||||||
module Relations
|
|
||||||
class PostTrips < ROM::Relation[:sql]
|
|
||||||
schema :post_trips, infer: true do
|
|
||||||
associations do
|
|
||||||
belongs_to :post
|
|
||||||
belongs_to :trip
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
auto_struct(true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@@ -1,42 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module Adamantium
|
|
||||||
module Persistence
|
|
||||||
module Relations
|
|
||||||
class Posts < ROM::Relation[:sql]
|
|
||||||
schema :posts, infer: true do
|
|
||||||
associations do
|
|
||||||
has_many :post_tags
|
|
||||||
has_many :tags, through: :post_tags
|
|
||||||
|
|
||||||
has_many :post_trips
|
|
||||||
has_many :trips, through: :post_trips
|
|
||||||
|
|
||||||
has_many :webmentions
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
auto_struct(true)
|
|
||||||
|
|
||||||
def published
|
|
||||||
where(self[:published_at] <= Time.now)
|
|
||||||
end
|
|
||||||
|
|
||||||
def weekly
|
|
||||||
ref = post_tags.where(tag_id: "70").select(:post_id).dataset
|
|
||||||
where(id: ref)
|
|
||||||
end
|
|
||||||
|
|
||||||
def non_weekly
|
|
||||||
ref = post_tags.where(tag_id: "70").select(:post_id).dataset
|
|
||||||
exclude(id: ref)
|
|
||||||
end
|
|
||||||
|
|
||||||
def published_between(start_date, end_date)
|
|
||||||
where(self[:published_at] >= start_date)
|
|
||||||
.where(self[:published_at] <= end_date)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@@ -1,18 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module Adamantium
|
|
||||||
module Persistence
|
|
||||||
module Relations
|
|
||||||
class Tags < ROM::Relation[:sql]
|
|
||||||
schema :tags, infer: true do
|
|
||||||
associations do
|
|
||||||
has_many :post_tags
|
|
||||||
has_many :posts, through: :post_tags
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
auto_struct(true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@@ -1,13 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module Adamantium
|
|
||||||
module Persistence
|
|
||||||
module Relations
|
|
||||||
class TopTracks < ROM::Relation[:sql]
|
|
||||||
schema :top_tracks, infer: true
|
|
||||||
|
|
||||||
auto_struct(true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@@ -1,22 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module Adamantium
|
|
||||||
module Persistence
|
|
||||||
module Relations
|
|
||||||
class Trips < ROM::Relation[:sql]
|
|
||||||
schema :trips, infer: true do
|
|
||||||
associations do
|
|
||||||
has_many :post_trips
|
|
||||||
has_many :posts, through: :post_trips
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
auto_struct(true)
|
|
||||||
|
|
||||||
def published
|
|
||||||
where(self[:start_date] <= Time.now)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@@ -1,21 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module Adamantium
|
|
||||||
module Persistence
|
|
||||||
module Relations
|
|
||||||
class Webmentions < ROM::Relation[:sql]
|
|
||||||
schema :webmentions, infer: true do
|
|
||||||
associations do
|
|
||||||
belongs_to :post
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
auto_struct(true)
|
|
||||||
|
|
||||||
def published
|
|
||||||
where(self[:published_at] <= Time.now)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@@ -1,13 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module Adamantium
|
|
||||||
module Persistence
|
|
||||||
module Relations
|
|
||||||
class Workouts < ROM::Relation[:sql]
|
|
||||||
schema :workouts, infer: true
|
|
||||||
|
|
||||||
auto_struct(true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
Reference in New Issue
Block a user