Module: Prependers

Defined in:
lib/prependers.rb,
lib/prependers/errors.rb,
lib/prependers/loader.rb,
lib/prependers/version.rb,
lib/prependers/prepender.rb,
lib/prependers/annotate/verify.rb,
lib/prependers/annotate/namespace.rb

Defined Under Namespace

Modules: Annotate Classes: Error, Loader, NoPrependerError, OutdatedPrependerError, Prepender

Constant Summary collapse

VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.load_paths(*paths, **options) ⇒ Object



13
14
15
16
17
# File 'lib/prependers.rb', line 13

def self.load_paths(*paths, **options)
  paths.flatten.each do |path|
    Loader.new(path, options).load
  end
end

.prependable_for(prepender) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/prependers.rb', line 31

def self.prependable_for(prepender)
  prependable = prepender.name.split('::')[0..-2].join('::')

  if prepender.respond_to?(:__prependers_namespace__)
    prependable = (prependable[(prepender.__prependers_namespace__.name.length + 2)..-1]).to_s
  end

  Object.const_get(prependable)
end

.setup_for_rails(load_options = {}) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/prependers.rb', line 19

def self.setup_for_rails(load_options = {})
  prependers_directories = Rails.root.join('app', 'prependers').glob('*')

  Rails.application.config.tap do |config|
    config.autoload_paths += prependers_directories

    config.to_prepare do
      Prependers.load_paths(prependers_directories, load_options)
    end
  end
end