Sha256: 38c603d9f57b75f5c910ada1003a2c6cf9c3838ef19025dabb0cae7586bc2f4a
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
module CanTango class Configuration class Models autoload_modules :Generic, :ActiveRecord, :DataMapper, :MongoMapper, :Mongoid include Singleton include ClassExt def by_reg_exp reg_exp raise "Must be a Regular Expression like: /xyz/ was #{reg_exp.inspect}" if !reg_exp.kind_of? Regexp grep(reg_exp).map do |model_string| try_model(model_string) end end def by_category label categories[label].map do |model| model.class == String ? try_model(model) : model end end def exclude *names @excluded = names.flatten.select_labels end def excluded @excluded ||= [] end def available_models all_models - excluded.map {|m| m.to_s.camelize} end protected def all_models CanTango.config.orms.inject([]) do |result, orm| result << adapter_for(orm).models.map(&:name) result end.flatten.compact end private def adapter_for orm "CanTango::Configuration::Models::#{orm.to_s.camlize}".constantize.new end def try_model model_string model = try_class(model_string.singularize) || try_class(model_string) raise "No model #{model_string} defined!" if !model model end def grep reg_exp available_models.grep reg_exp end def ar_models # Sugar-high #to_strings didn't work here! ActiveRecord::Base.descendants end def categories CanTango.config.categories end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cantango-0.9.4 | lib/cantango/configuration/models.rb |