Module: NobleNames

Defined in:
lib/noble_names.rb,
lib/noble_names/config.rb,
lib/noble_names/version.rb,
lib/noble_names/initializer.rb,
lib/noble_names/core_ext/string.rb

Defined Under Namespace

Modules: CoreExt Classes: Configuration

Constant Summary collapse

SUPPORTED_LANGUAGES =
[:german, :english, :french, :spanish, :portuguese].freeze
DATA_PATH =
File.expand_path('../../data/', __FILE__).freeze
PARTICLES =
YAML.load_file(File.expand_path(
                             'particles.yml', DATA_PATH
))['particles'].freeze
VERSION =
'0.1.1'.freeze

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



5
6
7
# File 'lib/noble_names/config.rb', line 5

def configuration
  @configuration ||= Configuration.new
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



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

def self.configure
  yield(configuration)
end

.in_particle_list?(word) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
# File 'lib/noble_names.rb', line 19

def self.in_particle_list?(word)
  particles = PARTICLES
              .select { |lang| NobleNames.configuration.languages.include?(lang.to_sym) }
              .values.flatten
  particles.include? word
end

.initializeObject

This is wrapped in a method so it isn’t immediatly evaluated when its loaded



6
7
8
9
10
# File 'lib/noble_names/initializer.rb', line 6

def self.initialize
  String.class_eval do
    include NobleNames::CoreExt::String
  end
end

.noble_capitalize(word) ⇒ Object



15
16
17
# File 'lib/noble_names.rb', line 15

def self.noble_capitalize(word)
  in_particle_list?(word) ? word : word.capitalize
end