Sha256: 9799aa031de866f601b0d24dd381059e5c5e32acc3fff048c6db25684593d180

Contents?: true

Size: 621 Bytes

Versions: 3

Compression:

Stored size: 621 Bytes

Contents

class Snippet < ActiveRecord::Base
  validates_uniqueness_of :slug
  validates_presence_of :slug

  before_save :compile_text

  class << self
    def get(slug, options = {})
      snippet = find_by_slug(slug.to_s.downcase) || create!(options.merge(:slug => slug))
      snippet.compiled_text.to_s if snippet
    end

    def parse(text, parser = nil)
      parser = 'html' if parser.blank?
      klass = Snippets::Parsers.const_get(parser.to_s.classify)
      klass.parse(text)
    end
  end

  def to_s
    slug
  end

  private

    def compile_text
      self.compiled_text = Snippet.parse(text, parser)
    end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
djanowski-snippets-0.1.1 lib/snippet.rb
djanowski-snippets-0.1.2 lib/snippet.rb
djanowski-snippets-0.1 lib/snippet.rb