Class: String

Inherits:
Object
  • Object
show all
Defined in:
lib/prose.rb

Overview

Ruby string class

Instance Method Summary collapse

Instance Method Details

#char_belongs_to_language?(char, language_ranges) ⇒ Boolean

Returns:

  • (Boolean)

32
33
34
35
36
# File 'lib/prose.rb', line 32

def char_belongs_to_language?(char, language_ranges)
  return true if char == ' '

  language_ranges.map { |range| char_in_range?(char.ord, range) }.include? true
end

#char_in_range?(ordinal, range) ⇒ Boolean

Returns:

  • (Boolean)

26
27
28
29
30
# File 'lib/prose.rb', line 26

def char_in_range?(ordinal, range)
  min_range, max_range = range.split('-')

  (min_range.to_i(16) < ordinal) && (max_range.to_i(16) > ordinal)
end

#find_origins_in(word) ⇒ Object


54
55
56
# File 'lib/prose.rb', line 54

def find_origins_in(word)
  word.chars.map { |letter| languages_of(letter) unless letter.empty? }.flatten.compact.uniq
end

#languages_of(letter) ⇒ Object


46
47
48
49
50
51
52
# File 'lib/prose.rb', line 46

def languages_of(letter)
  ranges = CHAR_CODES['ranges']

  ranges.keys.map do |key|
    ranges[key] if char_in_range?(letter.ord, key)
  end
end

#percentage_of(language) ⇒ Object


38
39
40
41
42
43
44
# File 'lib/prose.rb', line 38

def percentage_of(language)
  total_languages = find_origins_in(self)

  occurance_of_language = total_languages.count(language).to_f

  ((occurance_of_language / total_languages.count.to_f) * 100.0).to_i
end

#proseObject


10
11
12
# File 'lib/prose.rb', line 10

def prose
  find_origins_in(self)
end