Module: Compass::Frameworks
Defined Under Namespace
Classes: Framework
Constant Summary collapse
- ALL =
[]
- DEFAULT_FRAMEWORKS_PATH =
File.join(Compass.lib_directory, 'compass', 'frameworks')
Instance Method Summary collapse
- #[](name) ⇒ Object
- #discover(frameworks_directory) ⇒ Object
- #register(name, *arguments) ⇒ Object
- #register_directory(directory) ⇒ Object
- #template_exists?(template) ⇒ Boolean
- #template_usage(template) ⇒ Object
Instance Method Details
#[](name) ⇒ Object
38 39 40 |
# File 'lib/compass/frameworks.rb', line 38 def [](name) ALL.detect{|f| f.name.to_s == name.to_s} end |
#discover(frameworks_directory) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/compass/frameworks.rb', line 42 def discover(frameworks_directory) frameworks_directory = DEFAULT_FRAMEWORKS_PATH if frameworks_directory == :defaults frameworks_directory = Dir.new(frameworks_directory) unless frameworks_directory.is_a?(Dir) frameworks_directory.entries.reject{|e| e[0] == ?.}.each do |framework| register_directory File.join(frameworks_directory.path, framework) end end |
#register(name, *arguments) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/compass/frameworks.rb', line 30 def register(name, *arguments) if idx = ALL.index(self[name]) ALL[idx] = Framework.new(name, *arguments) else ALL << Framework.new(name, *arguments) end end |
#register_directory(directory) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/compass/frameworks.rb', line 50 def register_directory(directory) loaders = [ File.join(directory, "compass_init.rb"), File.join(directory, 'lib', File.basename(directory)+".rb"), File.join(directory, File.basename(directory)+".rb") ] loader = loaders.detect{|l| File.exists?(l)} if loader require loader else register File.basename(directory), directory end end |
#template_exists?(template) ⇒ Boolean
64 65 66 67 68 69 70 71 |
# File 'lib/compass/frameworks.rb', line 64 def template_exists?(template) framework_name, template = template.split(%r{/}, 2) template ||= "project" if framework = self[framework_name] return File.directory?(File.join(framework.templates_directory, template)) end false end |
#template_usage(template) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/compass/frameworks.rb', line 73 def template_usage(template) framework_name, template = template.split(%r{/}, 2) framework = self[framework_name] template ||= "project" usage_file = File.join(framework.templates_directory, template, "USAGE.markdown") if File.exists?(usage_file) File.read(usage_file) elsif help = framework.manifest(template).help help else <<-END.gsub(/^ {8}/, '') No Usage! END end end |