Class: String
- Inherits:
-
Object
- Object
- String
- Defined in:
- lib/mumuki/domain/extensions/string.rb,
app/models/concerns/submittable/solvable.rb
Instance Method Summary collapse
-
#ensure_newline ⇒ Object
Adds a newline character unless this string is empty or already ends with a newline See unix.stackexchange.com/a/18789.
- #file_extension ⇒ Object
- #friendlish ⇒ Object
- #markdown_paragraphs ⇒ Object
- #normalize_whitespaces ⇒ Object
- #to_mumuki_solution(language) ⇒ Object
Instance Method Details
#ensure_newline ⇒ Object
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_extension ⇒ Object
26 27 28 |
# File 'lib/mumuki/domain/extensions/string.rb', line 26 def file_extension File.extname(self).delete '.' end |
#friendlish ⇒ Object
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_paragraphs ⇒ Object
18 19 20 |
# File 'lib/mumuki/domain/extensions/string.rb', line 18 def markdown_paragraphs split(/\n\s*\n/) end |
#normalize_whitespaces ⇒ Object
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 |