name: "Main Area" panels { name: "MOVE (1)" path: "Panels/Main/panel_1" clue: "move" answer: "move" proxies { answer: "forward" path: "Panels/Forward/forward_1" } proxies { answer: "back" path: "Panels/Backward/backward_1" } proxies { answer: "up" path: "Panels/Up/up_1" } proxies { answer: "down" path: "Panels/Down/down_1" } proxies { answer: "left" path: "Panels/Left/left_1" } proxies { answer: "right" path: "Panels/Right/right_1" } proxies { answer: "move" path: "Panels/Secret/secret_1" } } panels { name: "MOVE (2)" path: "Panels/Main/panel_2" clue: "move" answer: "move" proxies { answer: "forward" path: "Panels/Forward/forward_2" } proxies { answer: "back" path: "Panels/Backward/backward_2" } proxies { answer: "up" path: "Panels/Up/up_2" } proxies { answer: "down" path: "Panels/Down/down_2" } proxies { answer: "left" path: "Panels/Left/left_2" } proxies { answer: "right" path: "Panels/Right/right_2" } proxies { answer: "move" path: "Panels/Secret/secret_2" } } panels { name: "MOVE (3)" path: "Panels/Main/panel_3" clue: "move" answer: "move" proxies { answer: "forward" path: "Panels/Forward/forward_3" } proxies { answer: "back" path: "Panels/Backward/backward_3" } proxies { answer: "up" path: "Panels/Up/up_3" } proxies { answer: "down" path: "Panels/Down/down_3" } proxies { answer: "left" path: "Panels/Left/left_3" } proxies { answer: "right" path: "Panels/Right/right_3" } proxies { answer: "move" path: "Panels/Secret/secret_3" } } panels { name: "MOVE (4)" path: "Panels/Main/panel_4" clue: "move" answer: "move" proxies { answer: "forward" path: "Panels/Forward/forward_4" } proxies { answer: "back" path: "Panels/Backward/backward_4" } proxies { answer: "up" path: "Panels/Up/up_4" } proxies { answer: "down" path: "Panels/Down/down_4" } proxies { answer: "left" path: "Panels/Left/left_4" } proxies { answer: "right" path: "Panels/Right/right_4" } proxies { answer: "move" path: "Panels/Secret/secret_4" } } panels { name: "MOVE (5)" path: "Panels/Main/panel_5" clue: "move" answer: "move" proxies { answer: "forward" path: "Panels/Forward/forward_5" } proxies { answer: "back" path: "Panels/Backward/backward_5" } proxies { answer: "up" path: "Panels/Up/up_5" } proxies { answer: "down" path: "Panels/Down/down_5" } proxies { answer: "left" path: "Panels/Left/left_5" } proxies { answer: "right" path: "Panels/Right/right_5" } proxies { answer: "move" path: "Panels/Secret/secret_5" } } panels { name: "MOVE (6)" path: "Panels/Main/panel_6" clue: "move" answer: "move" proxies { answer: "forward" path: "Panels/Forward/forward_6" } proxies { answer: "back" path: "Panels/Backward/backward_6" } proxies { answer: "up" path: "Panels/Up/up_6" } proxies { answer: "down" path: "Panels/Down/down_6" } proxies { answer: "left" path: "Panels/Left/left_6" } proxies { answer: "right" path: "Panels/Right/right_6" } proxies { answer: "move" path: "Panels/Secret/secret_6" } } panels { name: "MOVE (7)" path: "Panels/Main/panel_7" clue: "move" answer: "move" proxies { answer: "forward" path: "Panels/Forward/forward_7" } proxies { answer: "back" path: "Panels/Backward/backward_7" } proxies { answer: "up" path: "Panels/Up/up_7" } proxies { answer: "down" path: "Panels/Down/down_7" } proxies { answer: "left" path: "Panels/Left/left_7" } proxies { answer: "right" path: "Panels/Right/right_7" } proxies { answer: "move" path: "Panels/Secret/secret_7" } } panels { name: "MOVE (8)" path: "Panels/Main/panel_8" clue: "move" answer: "move" proxies { answer: "forward" path: "Panels/Forward/forward_8" } proxies { answer: "back" path: "Panels/Backward/backward_8" } proxies { answer: "up" path: "Panels/Up/up_8" } proxies { answer: "down" path: "Panels/Down/down_8" } proxies { answer: "left" path: "Panels/Left/left_8" } proxies { answer: "right" path: "Panels/Right/right_8" } proxies { answer: "move" path: "Panels/Secret/secret_8" } } ports { name: "OWL" path: "Components/Warps/worldport" destination { x: 17 y: 0 z: 41 } rotation: 90 } ports { name: "COLORFUL" path: "Components/Warps/worldport2" destination { x: 17 y: 0 z: -33 } rotation: 90 } a>
835af69 ^






























1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39




                                 


                                                                      






























                                                                                          
class Comment < ApplicationRecord
  extend Enumerize

  belongs_to :blog

  has_many :replies, class_name: "Comment", foreign_key: "reply_to_id"
  belongs_to :reply_to, class_name: "Comment", optional: true

  validates :body, presence: true
  validates :username, presence: true
  validates :email, presence: true, format: URI::MailTo::EMAIL_REGEXP

  scope :published_and_ordered, -> { where(status: :published).order(published_at: :asc) }

  enumerize :status,
    in: [:published, :pending, :rejected],
    default: :published,
    predicates: true

  before_save :set_published_at

  def gravatar_url
    hash = Digest::MD5.hexdigest(email)
    "https://www.gravatar.com/avatar/#{hash}?size=40&default=identicon&rating=g"
  end

  private

    def set_published_at
      if self.published?
        if self.published_at.blank?
          self.published_at = DateTime.now
        end
      else
        self.published_at = nil
      end
    end

end