1
0
mirror of https://github.com/danbee/danbarberphoto synced 2025-03-04 08:49:07 +00:00
danbarberphoto/vendor/plugins/typus/lib/typus.rb

117 lines
2.9 KiB
Ruby

# coding: utf-8
module Typus
class << self
def root
File.dirname(__FILE__) + "/../"
end
def locales
{ "ca" => "Català",
"de" => "German",
"en" => "English",
"es" => "Español",
"fr" => "Français",
"hu" => "Magyar",
"pt-BR" => "Portuguese",
"ru" => "Russian" }
end
def applications
Typus::Configuration.config.collect { |i| i.last["application"] }.compact.uniq.sort
end
# List of the modules of an application.
def application(name)
Typus::Configuration.config.collect { |i| i.first if i.last["application"] == name }.compact.uniq.sort
end
# Gets a list of all the models on the configuration file.
def models
Typus::Configuration.config.map { |i| i.first }.sort
end
def models_on_header
models.collect { |m| m if m.constantize.typus_options_for(:on_header) }.compact
end
# List of resources, which are tableless models.
def resources
Typus::Configuration.roles.keys.map do |key|
Typus::Configuration.roles[key].keys
end.flatten.sort.uniq.delete_if { |x| models.include?(x) }
end
# Gets a list of models under app/models
def discover_models
all_models = []
Dir.chdir(File.join(Rails.root, "app/models")) do
Dir["**/*.rb"].each do |m|
class_name = m.sub(/\.rb$/,"").camelize
klass = class_name.split("::").inject(Object){ |klass,part| klass.const_get(part) }
all_models << "#{class_name}" if klass < ActiveRecord::Base && !klass.abstract_class?
end
end
return all_models
end
def user_class
Typus::Configuration.options[:user_class_name].constantize
end
def user_fk
Typus::Configuration.options[:user_fk]
end
def relationship
Typus::Configuration.options[:relationship]
end
def testing?
Rails.env.test? && Dir.pwd == "#{Rails.root}/vendor/plugins/typus"
end
def plugin?
File.directory?("#{Rails.root}/vendor/plugins/typus")
end
def boot!
if testing?
Typus::Configuration.options[:config_folder] = "vendor/plugins/typus/test/config/working"
end
# Ruby/Rails Extensions
require "extensions/array"
require "extensions/hash"
require "extensions/object"
require "extensions/string"
require "extensions/active_record"
# Load configuration and roles.
Typus::Configuration.config!
Typus::Configuration.roles!
# Active Record Extensions.
require "typus/active_record"
# Typus mixins.
require "typus/authentication"
require "typus/format"
require "typus/preferences"
require "typus/reloader"
require "typus/quick_edit"
require "typus/user"
# Vendor.
require "vendor/paginator"
require "vendor/inherit_views"
end
end
end