module Ferris::Region
Public Instance Methods
base_url(url = nil)
click to toggle source
# File lib/ferris/core.rb, line 13 def base_url(url = nil) @base_url ||= url end
region(name, class_name, &blk)
click to toggle source
# File lib/ferris/core.rb, line 17 def region(name, class_name, &blk) define_method("#{name}_region_object") do class_name.base_url = self.class.base_url class_name.new.tap do |region| if block_given? root = self.instance_exec(&blk) return root.map {|root| class_name.new.tap {|region| region.root = root} } if root.respond_to?(:to_a) region.root = root end end end self.instance_eval { private "#{name}_region_object" } define_method("#{name}!") { self.class.region_list["@_#{name}"] ||= send("#{name}_region_object") } define_method(name) { self.class.region_list["@_#{name}"] = send("#{name}_region_object") } # TODO: Convert to .present? use define_method("#{name}_present?") { [send(name)].flatten.map(&:root).map(&:present?).all? } end
Also aliased as: page
region_list()
click to toggle source
# File lib/ferris/core.rb, line 38 def region_list @regions ||= {} end