Class: String

Inherits:
Object
  • Object
show all
Defined in:
lib/mumuki/domain/extensions/string.rb,
app/models/concerns/submittable/solvable.rb

Instance Method Summary collapse

Instance Method Details

#ensure_newlineObject

Adds a newline character unless this string is empty or already ends with a newline See unix.stackexchange.com/a/18789



6
7
8
# File 'lib/mumuki/domain/extensions/string.rb', line 6

def ensure_newline
  empty? || ends_with?("\n") ? self : self + "\n"
end

#file_extensionObject



26
27
28
# File 'lib/mumuki/domain/extensions/string.rb', line 26

def file_extension
  File.extname(self).delete '.'
end

#friendlishObject



10
11
12
13
14
15
16
# File 'lib/mumuki/domain/extensions/string.rb', line 10

def friendlish
  I18n.transliterate(self).
    downcase.
    gsub(/[^0-9a-z ]/, '').
    squish.
    gsub(' ', '-')
end

#markdown_paragraphsObject



18
19
20
# File 'lib/mumuki/domain/extensions/string.rb', line 18

def markdown_paragraphs
  split(/\n\s*\n/)
end

#normalize_whitespacesObject



22
23
24
# File 'lib/mumuki/domain/extensions/string.rb', line 22

def normalize_whitespaces
  gsub(/([^[:ascii:]])/) { $1.blank? ? ' ' : $1 }
end

#to_mumuki_solution(language) ⇒ Object



20
21
22
# File 'app/models/concerns/submittable/solvable.rb', line 20

def to_mumuki_solution(language)
  Mumuki::Domain::Submission::Solution.new content: normalize_whitespaces
end