Sha256: c49ebd23a163ad2e1720cb153eec3689df9d0260a645799e9f7e1b298c3f9444
Contents?: true
Size: 1 KB
Versions: 4
Compression:
Stored size: 1 KB
Contents
# frozen_string_literal: true require_relative "wizard/version" require_relative "wizard/concept_type" require_relative "wizard/concept_generator" require_relative "wizard/file_helper" require_relative "wizard/configuration" module Wizard def self.pool @pool ||= {} end def self.fetch_generator(type) pool[type] ||= ConceptGenerator.new(type: type) end def self.configuration @configuration ||= Configuration.new end def self.configure yield(configuration) end def self.generate(model, **args) raise StandardError, "[model] arg is required" if model.nil? raise StandardError, "[actions] arg is required" unless args.key? :actions concepts = ConceptType::ALL.values actions = args[:actions] concepts -= args[:except] if args.key? :except concepts = args[:only] if args.key? :only actions.each do |action| concepts.each do |concept| fetch_generator(concept.to_s).generate(model, action.to_s, args[:context]&.to_s) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
trailblazer-wizard-0.0.4 | lib/wizard.rb |
trailblazer-wizard-0.0.3 | lib/wizard.rb |
trailblazer-wizard-0.0.2 | lib/wizard.rb |
trailblazer-wizard-0.0.1 | lib/wizard.rb |