Sha256: 04ed987e6d5e7937a24fdb8fc134d49cb7a83b72dbe6c334284450d5a354ae13

Contents?: true

Size: 742 Bytes

Versions: 2

Compression:

Stored size: 742 Bytes

Contents

require 'seory'
require 'seory/page'

module Seory
  module Dsl
    class PageBuilder
      def initialize(*conditions)
        @page_contents =
          if conditions.size == 1 && (block = conditions.first).is_a?(Proc)
            Page.new(&block)
          else
            Page.new(*conditions)
          end
      end

      def build!(&block)
        instance_exec(&block)

        @page_contents
      end

      def misc(name, val = nil, &block)
        @page_contents.define(name, val, &block)
      end

      def assign_reader(*names)
        @page_contents.assign_reader(*names)
      end

      Seory::CONTENTS.each do |name|
        define_method(name) {|val = nil, &block| misc(name, val, &block) }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
seory-0.2.0 lib/seory/dsl/page_builder.rb
seory-0.1.0 lib/seory/dsl/page_builder.rb