Sha256: 2d921aa8218ad6f2ed84babedca035ec5137c2fdf72ac691c27251e2bcf67a2a
Contents?: true
Size: 1.26 KB
Versions: 48
Compression:
Stored size: 1.26 KB
Contents
# frozen_string_literal: true module Alchemy # = Fixed page attributes # # Fixed page attributes are not allowed to be changed by the user. # # Define fixed page attributes on the page layout definition of a page. # # == Example # # # page_layout.yml # - name: Index # unique: true # fixed_attributes: # - public_on: nil # - public_until: nil # class Page::FixedAttributes attr_reader :page def initialize(page) @page = page end # All fixed attributes defined on page # # Aliased as +#all+ # # @return Hash # def attributes @_attributes ||= page.definition.fetch("fixed_attributes", {}).symbolize_keys end alias_method :all, :attributes # True if fixed attributes are defined on page # # Aliased as +#present?+ # # @return Boolean # def any? attributes.present? end alias_method :present?, :any? # True if given attribute name is defined on page # # @return Boolean # def fixed?(name) return false if name.nil? attributes.key?(name.to_sym) end # Returns the attribute by key # def [](name) return nil if name.nil? attributes[name.to_sym] end end end
Version data entries
48 entries across 48 versions & 1 rubygems