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