monikers 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,38 @@
1
+ require "monikers/version"
2
+
3
+ module Monikers
4
+ @dataset = eval(File.read(File.expand_path("../../lib/data/monikers_hash.rb", __FILE__)))
5
+
6
+ def self.moniker_list(name)
7
+ name_down = name.downcase
8
+
9
+ if @dataset.key?(name.downcase)
10
+ return @dataset[name_down]<< name_down
11
+ else
12
+ return Array.new<< name_down
13
+ end
14
+ end
15
+
16
+ def self.moniker_equivalents?(name1, name2)
17
+ name1_down = name1.downcase
18
+ name2_down = name2.downcase
19
+
20
+ if name1_down == name2_down
21
+ return true
22
+ end
23
+
24
+ if @dataset.key?(name1_down)
25
+ if @dataset[name1_down].include?(name2_down)
26
+ return true
27
+ end
28
+ end
29
+
30
+ if @dataset.key?(name2_down)
31
+ if@dataset[name2_down].include?(name1_down)
32
+ return true
33
+ end
34
+ end
35
+
36
+ return false
37
+ end
38
+ end
@@ -0,0 +1,42 @@
1
+ require 'pp'
2
+
3
+ module Monikers
4
+ module Generator
5
+ CSV_FILE_PATH = '../../data/monikers_list.csv'.freeze
6
+ OUT_FILE_PATH = '../../data/monikers_hash.rb'.freeze
7
+
8
+ def self.generate_cache
9
+ monikers = Hash.new
10
+
11
+ File.open(Monikers::Generator::CSV_FILE_PATH, 'r') do |file_handle|
12
+ file_handle.each do |line|
13
+ split_line = line.split(/,/)
14
+
15
+ name = split_line[1].strip.downcase
16
+ moniker = split_line[2].strip.downcase
17
+
18
+ if monikers.key?(name)
19
+ if !monikers[name].include?(moniker)
20
+ monikers[name]<< moniker
21
+ end
22
+ else
23
+ monikers[name] = Array.new<< moniker
24
+ end
25
+
26
+ if monikers.key?(moniker)
27
+ if !monikers[moniker].include?(name)
28
+ monikers[moniker]<< name
29
+ end
30
+ else
31
+ monikers[moniker] = Array.new<< name
32
+ end
33
+ end
34
+ end
35
+
36
+ File.open(OUT_FILE_PATH, 'w') { |out_file| PP.pp(monikers, out_file) }
37
+
38
+ return monikers
39
+ end
40
+
41
+ end
42
+ end
@@ -0,0 +1,3 @@
1
+ module Monikers
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'monikers/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "monikers"
8
+ gem.version = Monikers::VERSION
9
+ gem.authors = ["Ben Di"]
10
+ gem.email = ["bdifrancesco@ascensionpress.com"]
11
+ gem.description = %q{Cached List of First Name Monikers}
12
+ gem.summary = %q{Gem contains a precached data structure of first name monikers & convenience methods for access & comparison}
13
+ gem.homepage = ""
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+
20
+ gem.add_development_dependency 'rspec', '~> 2.10'
21
+ end
metadata ADDED
@@ -0,0 +1,73 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: monikers
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ben Di
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-12-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '2.10'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '2.10'
30
+ description: Cached List of First Name Monikers
31
+ email:
32
+ - bdifrancesco@ascensionpress.com
33
+ executables: []
34
+ extensions: []
35
+ extra_rdoc_files: []
36
+ files:
37
+ - .gitignore
38
+ - Gemfile
39
+ - LICENSE.txt
40
+ - README.md
41
+ - Rakefile
42
+ - lib/data/monikers_hash.rb
43
+ - lib/data/monikers_list.csv
44
+ - lib/monikers.rb
45
+ - lib/monikers/generator/generator.rb
46
+ - lib/monikers/version.rb
47
+ - monikers.gemspec
48
+ homepage: ''
49
+ licenses: []
50
+ post_install_message:
51
+ rdoc_options: []
52
+ require_paths:
53
+ - lib
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ! '>='
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ required_rubygems_version: !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ requirements: []
67
+ rubyforge_project:
68
+ rubygems_version: 1.8.24
69
+ signing_key:
70
+ specification_version: 3
71
+ summary: Gem contains a precached data structure of first name monikers & convenience
72
+ methods for access & comparison
73
+ test_files: []