Skip to content

Commit

Permalink
[Extensions] Don't force an extension to register itself just because…
Browse files Browse the repository at this point in the history
… it has ruby code.
  • Loading branch information
chriseppstein committed Feb 15, 2010
1 parent 3dd2a90 commit 925938c
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions lib/compass/frameworks.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,20 @@ def manifest(pattern, options = {})
end
end

def detect_registration
@registered = nil
yield
@registered
ensure
@registered = nil
end

def register(name, *arguments)
@registered = Framework.new(name, *arguments)
if idx = ALL.index(self[name])
ALL[idx] = Framework.new(name, *arguments)
ALL[idx] = @registered
else
ALL << Framework.new(name, *arguments)
ALL << @registered
end
end

Expand All @@ -54,9 +63,10 @@ def register_directory(directory)
File.join(directory, File.basename(directory)+".rb")
]
loader = loaders.detect{|l| File.exists?(l)}
if loader
require loader
else
registered_framework = detect_registration do
require loader if loader
end
unless registered_framework
register File.basename(directory), directory
end
end
Expand Down

0 comments on commit 925938c

Please sign in to comment.