Sha256: b28b7b7e18934bbb1c0516f764d53f0354f7ce5640856ed6eb87721ebe194a16

Contents?: true

Size: 1.27 KB

Versions: 13

Compression:

Stored size: 1.27 KB

Contents

# frozen_string_literal: true

require 'logcabin'

##
# Tool and DSL for checking expected vs actual state
module Prospectus
  class << self
    ##
    # Insert a helper .new() method for creating a new Cache object
    def new(*args)
      self::List.new(*args)
    end

    def load(*args)
      self::Loader.new(*args).load
    end

    ##
    # Method for loading list from DSL
    def load_from_file(params = {})
      file = params[:file] || raise('File path required for load_from_file')
      list = List.new(params)
      dsl = ListDSL.new(list, params)
      dsl.instance_eval(File.read(file), File.realpath(file, Dir.pwd))
      list
    end

    def modules
      @modules ||= LogCabin.new(load_path: load_path(:modules))
    end

    def helpers
      @helpers ||= LogCabin.new(load_path: load_path(:helpers))
    end

    def extra_dep(name, dep)
      require dep
    rescue LoadError
      raise("The #{name} module requires the #{dep} gem")
    end

    private

    def gem_dir
      Gem::Specification.find_by_name('prospectus').gem_dir
    end

    def load_path(type)
      File.join(gem_dir, 'lib', 'prospectus', type.to_s)
    end
  end
end

require 'prospectus/version'
require 'prospectus/loader'
require 'prospectus/list'
require 'prospectus/item'
require 'prospectus/state'

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
prospectus-0.9.0 lib/prospectus.rb
prospectus-0.8.1 lib/prospectus.rb
prospectus-0.8.0 lib/prospectus.rb
prospectus-0.6.0 lib/prospectus.rb
prospectus-0.5.8 lib/prospectus.rb
prospectus-0.5.7 lib/prospectus.rb
prospectus-0.5.6 lib/prospectus.rb
prospectus-0.5.5 lib/prospectus.rb
prospectus-0.5.4 lib/prospectus.rb
prospectus-0.5.2 lib/prospectus.rb
prospectus-0.5.1 lib/prospectus.rb
prospectus-0.5.0 lib/prospectus.rb
prospectus-0.4.0 lib/prospectus.rb