app/models/pageflow/widget.rb in pageflow-13.0.0.beta7 vs app/models/pageflow/widget.rb in pageflow-13.0.0.rc1
- old
+ new
@@ -12,18 +12,13 @@
record = dup
record.subject = subject
record.save!
end
- def enabled?(options)
- if options[:scope] == :editor
- widget_type.enabled_in_editor?
- elsif options[:scope] == :preview
- widget_type.enabled_in_preview?
- else
- true
- end
+ def matches?(options)
+ enabled_for_scope?(options[:scope]) &&
+ for_insert_point?(options.fetch(:insert_point, :any))
end
def self.copy_all_to(subject)
all.each do |widget|
widget.copy_to(subject)
@@ -38,13 +33,29 @@
def self.resolve(config, options = {})
Resolver.new(config, options).result
end
+ private
+
+ def enabled_for_scope?(scope)
+ if scope == :editor
+ widget_type.enabled_in_editor?
+ elsif scope == :preview
+ widget_type.enabled_in_preview?
+ else
+ true
+ end
+ end
+
+ def for_insert_point?(insert_point)
+ insert_point == :any || widget_type.insert_point == insert_point
+ end
+
Resolver = Struct.new(:config, :options) do
def result
assign_widget_types(all).select do |widget|
- widget.enabled?(options)
+ widget.matches?(options)
end
end
private