Sha256: 04a7d07d23dfa5f4677523b5d72eb98854929e5d6baca7afe0009b711a6c31f6

Contents?: true

Size: 1.11 KB

Versions: 2

Compression:

Stored size: 1.11 KB

Contents

module Caramelize
  class Page

    attr_accessor :title, :body, :id, :markup, :latest, :time, :message,
                  :author, :author_name

    def initialize(page = {})
      @id =      page[:id]
      @title =   page.fetch(:title, '')
      @body =    page.fetch(:body, '')
      @syntax =  page[:markup]
      @latest =  page[:latest] || false
      @time =    page.fetch(:time, Time.now)
      @message = page.fetch(:message, '')
      @author =  page[:author]
      @author_name = page[:author_name]
    end

    def author_email
      author.email
    end

    def author_name
      author.name
    end

    def author
      @author ||= OpenStruct.new(name: @author_name || "Caramelize",
                             email: "mail@example.com")
    end

    def latest?
      @latest
    end

    def path
      return @title unless @title.index('/')
      @title.split('/').first + '/' + @title.split('/').last.downcase
    end

    def set_latest
      @latest = true
    end

    def to_s
      @title
    end

    def commit_message
      return "Edit in page #{title}" if message.empty?
      message
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
caramelize-1.1.1 lib/caramelize/page.rb
caramelize-1.1.0 lib/caramelize/page.rb