class Cheatset::DSL::Base
Public Class Methods
new(&block)
click to toggle source
# File lib/cheatset/dsl/base.rb, line 15 def initialize(&block) instance_eval(&block) end
Private Class Methods
define_attrs(*names)
click to toggle source
# File lib/cheatset/dsl/base.rb, line 25 def self.define_attrs(*names) names.each do |name| define_method(name) do |val = nil| instance_variable_set("@#{name}", val) if val instance_variable_get("@#{name}") end end end
define_list_attrs(*names)
click to toggle source
# File lib/cheatset/dsl/base.rb, line 33 def self.define_list_attrs(*names) names.each do |name| define_method(name) do |val = nil| if val array = instance_variable_get("@#{name}") if !array instance_variable_set("@#{name}", [val]) else instance_variable_set("@#{name}", array << val) end end instance_variable_get("@#{name}") end end end
define_markdown_attrs(*names)
click to toggle source
# File lib/cheatset/dsl/base.rb, line 65 def self.define_markdown_attrs(*names) names.each do |name| define_method(name) do |val = nil| if val val = val.unindent val = parse_markdown(val) instance_variable_set("@#{name}", val) end instance_variable_get("@#{name}") end define_method("tags_stripped_#{name}") do CGI.unescapeHTML(Sanitize.clean(send(name).gsub("\n", ' ').squeeze(' '))) end end end
define_markdown_list_attrs(*names)
click to toggle source
# File lib/cheatset/dsl/base.rb, line 48 def self.define_markdown_list_attrs(*names) names.each do |name| define_method(name) do |val = nil| if val val = val.unindent val = parse_markdown(val) array = instance_variable_get("@#{name}") if !array instance_variable_set("@#{name}", [val]) else instance_variable_set("@#{name}", array << val) end end instance_variable_get("@#{name}") end end end
Private Instance Methods
parse_markdown(str)
click to toggle source
# File lib/cheatset/dsl/base.rb, line 20 def parse_markdown(str) markdown = Redcarpet::Markdown.new(HTML, :autolink => true, :hard_wrap =>true, :disable_indented_code_blocks => true, :fenced_code_blocks => true, :tables => true) markdown.render(str) end