Skip to content

Instantly share code, notes, and snippets.

@parndt
Forked from ugisozols/gist:4125166
Created November 21, 2012 20:02
Show Gist options
  • Save parndt/4127297 to your computer and use it in GitHub Desktop.
Save parndt/4127297 to your computer and use it in GitHub Desktop.
Stop subclassing array
diff --git a/core/lib/refinery/plugins.rb b/core/lib/refinery/plugins.rb
index a22497f..cef123e 100644
--- a/core/lib/refinery/plugins.rb
+++ b/core/lib/refinery/plugins.rb
@@ -1,5 +1,10 @@
module Refinery
- class Plugins < Array
+ class Plugins
+ include Enumerable
+
+ def initialize(*args)
+ @plugins = Array.new(*args)
+ end
def find_by_model(model)
model = model.constantize if model.is_a? String
@@ -31,6 +36,8 @@ module Refinery
map(&:title)
end
+ delegate :<<, :delete_if, :each, :to => :plugins
+
class << self
def active
@active_plugins ||= new
@@ -61,5 +68,8 @@ module Refinery
end
end
+ private
+ attr_reader :plugins
+
end
end
@moretea
Copy link

moretea commented Nov 22, 2012

Enumerable FTW!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment