module PageParts::Extension
Public Instance Methods
find_or_build_page_part(attr_name)
click to toggle source
Find page part by key or build new record
# File lib/page_parts/extension.rb, line 44 def find_or_build_page_part(attr_name) key = normalize_page_part_key(attr_name) page_parts.detect { |record| record.key.to_s == key } || page_parts.build(key: key) end
reload(*args)
click to toggle source
Calls superclass method
# File lib/page_parts/extension.rb, line 49 def reload(*args) @cached_page_parts = nil super(*args) end
Protected Instance Methods
_page_part(attr_name)
click to toggle source
Save page parts records into one hash
# File lib/page_parts/extension.rb, line 57 def _page_part(attr_name) key = normalize_page_part_key(attr_name) @cached_page_parts ||= {} @cached_page_parts[key] ||= find_or_build_page_part(key) end
normalize_page_part_key(value)
click to toggle source
# File lib/page_parts/extension.rb, line 63 def normalize_page_part_key(value) key = value.to_s.downcase.strip unless page_parts_definitions[:keys].include?(key) raise NoMethodError, "Page part #{key} not registered" end key end