Skip to content

Commit

Permalink
feat: use zeitwrek as autoloader (#49)
Browse files Browse the repository at this point in the history
Release-as:0.100.0
  • Loading branch information
seuros committed Jan 12, 2024
1 parent 176f8af commit a0be743
Show file tree
Hide file tree
Showing 9 changed files with 22 additions and 224 deletions.
1 change: 1 addition & 0 deletions lib/trailblazer-finder.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
require_relative 'trailblazer/finder'
47 changes: 15 additions & 32 deletions lib/trailblazer/finder.rb
Original file line number Diff line number Diff line change
@@ -1,45 +1,28 @@
# frozen_string_literal: true

require "forwardable"
require "trailblazer"
require "dry-types"
require "ostruct"
require 'forwardable'
require 'dry-types'
require 'ostruct'
require 'zeitwerk'
require 'trailblazer/operation'
require 'trailblazer/macro'

require_relative "finder/utils/array"
require_relative "finder/utils/hash"
require_relative "finder/utils/string"
require_relative "finder/utils/splitter"
require_relative "finder/utils/extra"
require_relative "finder/adapters/active_record/predicates"
require_relative "finder/adapters/active_record/paging"
require_relative "finder/adapters/active_record/sorting"
require_relative "finder/adapters/kaminari/paging"
require_relative "finder/adapters/will_paginate/paging"
require_relative "finder/adapters/sequel/predicates"
require_relative "finder/adapters/sequel/paging"
require_relative "finder/adapters/sequel/sorting"
require_relative "finder/adapters/basic/predicates"
require_relative "finder/adapters/basic/paging"
require_relative "finder/adapters/basic/sorting"
require_relative "finder/activities/prepare"
require_relative "finder/activities/process"
require_relative "finder/activities/find"
require_relative "finder/helpers/basic"
require_relative "finder/helpers/sorting"
require_relative "finder/dsl"
require_relative "finder/find"
require_relative "finder/base"
require_relative "operation/finder"
loader = Zeitwerk::Loader.for_gem_extension(Trailblazer)
adapters = "#{__dir__}/finder/adapters"
loader.do_not_eager_load(adapters)
loader.setup

module Trailblazer
class Finder
module Types
include Dry.Types(default: :nominal)
end
EXT_ORM_ADAPTERS = Types::Strict::String.enum("ActiveRecord", "Sequel")
ORM_ADAPTERS = EXT_ORM_ADAPTERS | Types::Strict::String.enum("Basic")
PAGING_ADAPTERS = Types::Strict::String.enum("Kaminari", "WillPaginate")
EXT_ORM_ADAPTERS = Types::Strict::String.enum('ActiveRecord', 'Sequel')
ORM_ADAPTERS = EXT_ORM_ADAPTERS | Types::Strict::String.enum('Basic')
PAGING_ADAPTERS = Types::Strict::String.enum('Kaminari', 'WillPaginate')

include Base
end
end

loader.eager_load
8 changes: 0 additions & 8 deletions lib/trailblazer/finder/activities/prepare.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
# frozen_string_literal: true

require_relative "prepare_adapter"
require_relative "prepare_entity"
require_relative "prepare_properties"
require_relative "prepare_filters"
require_relative "prepare_params"
require_relative "prepare_paging"
require_relative "prepare_sorting"

module Trailblazer
class Finder
module Activities
Expand Down
6 changes: 0 additions & 6 deletions lib/trailblazer/finder/activities/process.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
# frozen_string_literal: true

require_relative "process_adapters"
require_relative "process_predicates"
require_relative "process_paging"
require_relative "process_sorting"
require_relative "process_filters"

module Trailblazer
class Finder
module Activities
Expand Down
2 changes: 1 addition & 1 deletion lib/trailblazer/finder/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ module Base
def self.included(base)
base.include Helpers::Basic
base.include Helpers::Sorting
base.extend Finder::Dsl
base.extend Dsl
end

attr_reader :signal, :errors
Expand Down
4 changes: 2 additions & 2 deletions lib/trailblazer/operation/finder.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module Trailblazer
class Operation
def self.Finder(finder_class, action = nil, entity = nil)
task = Trailblazer::Activity::Circuit::TaskAdapter.for_step(Finder.new, binary: true)
task = Activity::Circuit::TaskAdapter.for_step(Finder.new, binary: true)
injections = [
:params,
{:"finder.class" => ->(*) { finder_class }},
Expand All @@ -17,7 +17,7 @@ def call(ctx, **options)
builder = Finder::Builder.new
ctx[:finder] = finder = builder.call(options, options[:params])
ctx[:model] = finder # Don't like it, but somehow it's needed if contracts are loaded
ctx[:"result.finder"] = Trailblazer::Operation::Result.new(!finder.nil?, {})
ctx[:"result.finder"] = Result.new(!finder.nil?, {})

ctx[:"result.finder"].success?
end
Expand Down
3 changes: 1 addition & 2 deletions test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@

require 'bundler/setup'
require 'trailblazer/developer'
require 'trailblazer/activity'
require 'trailblazer/activity/testing'
require 'trailblazer/finder'
require 'trailblazer-finder'
require 'minitest-trailblazer'
require 'minitest/trailblazer_spec'

Expand Down
173 changes: 0 additions & 173 deletions test/trailblazer/finder/dsl_test.rb

This file was deleted.

2 changes: 2 additions & 0 deletions trailblazer-finder.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ Gem::Specification.new do |spec|
spec.metadata['changelog_uri'] = 'https://github.com/trailblazer/trailblazer-finder/blob/master/CHANGELOG.md'

spec.add_dependency "dry-types", ">= 1.0.0"
spec.add_dependency "trailblazer-macro", ">= 2.1.15"
spec.add_dependency "trailblazer-activity", ">= 0.13.0"
spec.add_dependency "zeitwerk", ">= 2.6.0"

spec.add_development_dependency "activerecord"
spec.add_development_dependency "bundler"
Expand Down

0 comments on commit a0be743

Please sign in to comment.