module DynaModel::Tasks
Public Instance Methods
included_models()
click to toggle source
# File lib/dyna_model/tasks.rb, line 6 def included_models dir = ENV['DIR'].to_s != '' ? ENV['DIR'] : Rails.root.join("app/models") DynaModel::Config.logger.info "Loading models from: #{dir}" included = [] Dir.glob(File.join("#{dir}/**/*.rb")).each do |path| model_filename = path[/#{Regexp.escape(dir.to_s)}\/([^\.]+).rb/, 1] next if model_filename.match(/^concerns\//i) # Skip concerns/ folder begin klass = model_filename.camelize.constantize rescue NameError require(path) ? retry : raise rescue LoadError => e # Try non-namespaced class name instead... klass = model_filename.camelize.split("::").last.constantize end # Skip if the class doesn't have DynaModel integration next unless klass.respond_to?(:dynamo_db_table) included << klass end included end