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
|
||||
rom_config = target["persistence.config"]
|
||||
rom_config.auto_registration(
|
||||
target.root.join("lib/adamantium/persistence"),
|
||||
namespace: "Adamantium::Persistence"
|
||||
target.root.join("app"),
|
||||
namespace: Hanami.app.namespace.to_s
|
||||
)
|
||||
|
||||
register "rom", ROM.container(rom_config)
|
||||
end
|
||||
|
||||
stop do
|
||||
target["persistence.rom"].disconnect
|
||||
end
|
||||
|
||||
define_method(:silence_warnings) do |&block|
|
||||
orig_verbose = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
|
@@ -1,17 +1,47 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
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
|
||||
|
||||
#
|
||||
# Environment and port
|
||||
#
|
||||
port ENV.fetch("HANAMI_PORT", 2300)
|
||||
environment ENV.fetch("HANAMI_ENV", "development")
|
||||
workers ENV.fetch("HANAMI_WEB_CONCURRENCY", 2)
|
||||
|
||||
on_worker_boot do
|
||||
Hanami.shutdown
|
||||
end
|
||||
#
|
||||
# Threads within each Puma/Ruby process (aka worker)
|
||||
#
|
||||
|
||||
pidfile ENV.fetch("PIDFILE", "tmp/pids/puma.pid")
|
||||
# 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 }
|
||||
|
||||
preload_app!
|
||||
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
|
||||
end
|
||||
end
|
@@ -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