class SocialSnippet::Snippet
Attributes
code[R]
core[R]
filepath[R]
flag_no_tag[R]
Public Class Methods
new(new_core, snippet_path)
click to toggle source
Constructor
# File lib/social_snippet/snippet.rb, line 11 def initialize(new_core, snippet_path) @core = new_core @filepath = snippet_path read_file unless filepath.nil? end
new_text(new_core, s)
click to toggle source
Create instance by text
# File lib/social_snippet/snippet.rb, line 49 def new_text(new_core, s) raise "must be passed string" unless s.is_a?(String) snippet = self.new(new_core, nil) snippet.read_text s snippet end
Public Instance Methods
lines()
click to toggle source
# File lib/social_snippet/snippet.rb, line 30 def lines @lines ||= new_lines end
no_tag?()
click to toggle source
# File lib/social_snippet/snippet.rb, line 42 def no_tag? flag_no_tag end
read_file()
click to toggle source
# File lib/social_snippet/snippet.rb, line 17 def read_file begin @code = core.storage.read(filepath).split($/) rescue ::Errno::ENOENT => e @code = ["ERROR: #{e.to_s}"] end end
read_text(s)
click to toggle source
# File lib/social_snippet/snippet.rb, line 25 def read_text(s) raise "must be passed string" unless s.is_a?(String) @code = s.split($/) end
Private Instance Methods
filter(lines)
click to toggle source
@param lines [Array<String>]
# File lib/social_snippet/snippet.rb, line 68 def filter(lines) lines = filter_range_cut(lines) lines = filter_line_cut(lines) lines = resolve_control_tags(lines) lines end
filter_line_cut(lines)
click to toggle source
# File lib/social_snippet/snippet.rb, line 80 def filter_line_cut(lines) lines.select {|s| not Tag.is_cut? s } end
filter_range_cut(lines)
click to toggle source
# File lib/social_snippet/snippet.rb, line 84 def filter_range_cut(lines) cut_level = 0 lines.select do |line| if Tag.is_begin_cut?(line) cut_level += 1 false elsif Tag.is_end_cut?(line) cut_level -= 1 false else cut_level === 0 end end end
new_lines()
click to toggle source
Return filtered and styled lines
# File lib/social_snippet/snippet.rb, line 61 def new_lines tmp = code.clone tmp = filter(tmp) tmp end