Sha256: 54a96f1a9275b1fba73ce9b486a7cf94e9ff1e0f4cc95615fff5ba2287d765f5

Contents?: true

Size: 1.16 KB

Versions: 4

Compression:

Stored size: 1.16 KB

Contents

require 'alki'

module Alki
  module Rails
    module Instance
      def self.build_assembly
        unless File.exist? ::Rails.root.join('config','assembly.rb').to_s
          raise "Alki::Rails requires a config/assembly.rb file to exist!!"
        end
        Alki.create_assembly(config_dir: ::Rails.root.join('config').to_s, name: 'alki_rails_assembly')
      end

      def self.alki_module
        @module ||= build_assembly
      end

      def self.instance
        @instance ||= alki_module.new do
          mount :reloader, 'alki/reload' do
            set(:root_dir) { ::Rails.root }
            set(:enable) { !::Rails.application.config.cache_classes }
          end
        end.tap do |instance|
          ActiveSupport::Reloader.after_class_unload do
            instance.reloader.reload
          end
        end
      end
    end

    def respond_to_missing?(name,_include_all)
      Alki::Rails::Instance.instance.respond_to? name
    end

    def method_missing(name,*args,&blk)
      if Alki::Rails::Instance.instance.respond_to? name
        Alki::Rails::Instance.instance.send name, *args, &blk
      else
        super
      end
    end

    extend self
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
alki-rails-0.4.1 lib/alki/rails.rb
alki-rails-0.5.0 lib/alki/rails.rb
alki-rails-0.4.0 lib/alki/rails.rb
alki-rails-0.3.0 lib/alki/rails.rb