Module: Ksk::Markdown

Extended by:
ActiveSupport::Concern
Defined in:
app/models/concerns/ksk/markdown.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.parse_regex(type) ⇒ Object



71
72
73
# File 'app/models/concerns/ksk/markdown.rb', line 71

def self.parse_regex(type)
  /(\{#{type}_(\d{1,2})_?(\w+)?\})/i
end

.parse_text(text, type) ⇒ Object



75
76
77
# File 'app/models/concerns/ksk/markdown.rb', line 75

def self.parse_text(text, type)
  text.to_s.scan(parse_regex(type))
end

Instance Method Details

#content_has_more?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'app/models/concerns/ksk/markdown.rb', line 66

def content_has_more?
  !hidden_text.blank?
end

#content_longObject



45
46
47
# File 'app/models/concerns/ksk/markdown.rb', line 45

def content_long
  "#{intro} #{hidden_text}"
end

#content_shortObject



49
50
51
# File 'app/models/concerns/ksk/markdown.rb', line 49

def content_short
  intro
end

#hidden_textObject



57
58
59
# File 'app/models/concerns/ksk/markdown.rb', line 57

def hidden_text
  split_content[1]
end

#introObject



53
54
55
# File 'app/models/concerns/ksk/markdown.rb', line 53

def intro
  split_content[0]
end

#markdown_textObject



41
42
43
# File 'app/models/concerns/ksk/markdown.rb', line 41

def markdown_text
  content
end

#split_contentObject



61
62
63
64
# File 'app/models/concerns/ksk/markdown.rb', line 61

def split_content
  return [] if read_attribute(:content).blank?
  read_attribute(:content).split('@@@')
end

#text_unused_content(all_files, type, preselected = []) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/models/concerns/ksk/markdown.rb', line 10

def text_unused_content(all_files, type, preselected = [])
  all_numbers = []
  all_files.each_with_index { |a, i| all_numbers << i+1 }
  
  unused_numbers = all_numbers - (text_used_content(type)+preselected)
  
  unused_files = []
  all_files.each_with_index do |a, i|
    unused_files << a if unused_numbers.include?(i+1)
  end
  
  unused_files
end

#text_unused_data_filesObject



36
37
38
# File 'app/models/concerns/ksk/markdown.rb', line 36

def text_unused_data_files
  text_unused_content(assets.only_data_files, 'file')
end

#text_unused_imagesObject



28
29
30
# File 'app/models/concerns/ksk/markdown.rb', line 28

def text_unused_images
  text_unused_content(assets.only_images, 'img', respond_to?(:markdown_preselect) && markdown_preselect || [])
end

#text_used_content(type) ⇒ Object



4
5
6
7
8
# File 'app/models/concerns/ksk/markdown.rb', line 4

def text_used_content(type)
  Ksk::Markdown.parse_text(markdown_text, type).each_with_object([]) do |match, used_numbers|
    used_numbers << match[1].to_i
  end
end

#text_used_data_filesObject



32
33
34
# File 'app/models/concerns/ksk/markdown.rb', line 32

def text_used_data_files
  text_used_content('file')
end

#text_used_imagesObject



24
25
26
# File 'app/models/concerns/ksk/markdown.rb', line 24

def text_used_images
  text_used_content('img')
end