Sha256: 37e2d13b9164a0da5fc5802f950431780f05eef8c90afe8224828ed2dcecbee9
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
module Imagine class Config attr_accessor :orm, :plugins, :default_plugin, :engines def initialize(options={}, &block) self.orm = options.delete(:orm) self.plugins = options.delete(:plugins) self.default_plugin = options.delete(:default_plugin) self.engines = [] instance_eval &block if block_given? end def orm(orm=nil) @orm = orm if orm @orm ||= (defined?(Mongoid) && ! defined?(ActiveRecord::Base)) ? :mongoid : :active_record end def plugins(plugins=nil) @plugins = plugins if plugins @plugins ||= load_all_plugins end def default_plugin(default_plugin=nil) @default_plugin = default_plugin if default_plugin @default_plugin ||= load_default_plugin end private def load_all_plugins plugin_path = File.expand_path('../../../plugins/', __FILE__) Dir.entries(plugin_path).sort.each.inject([]) do |plugins, dir| unless [ nil, '.', '..' ].include?(dir.to_s) plugins << dir.to_sym if File.directory? File.join(plugin_path, dir) end plugins end end def load_default_plugin index = self.plugins.index(:basic_list_view) || 0 self.plugins[index] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
imagine-0.3.0 | lib/imagine/config.rb |