behind_the_name 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.travis.yml +6 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +54 -0
- data/README.md +45 -0
- data/Rakefile +6 -0
- data/behind_the_name.gemspec +26 -0
- data/bin/console +15 -0
- data/bin/scrape_appendices +29 -0
- data/bin/setup +8 -0
- data/lib/behind_the_name.rb +100 -0
- data/lib/behind_the_name/appendix1.yml +2387 -0
- data/lib/behind_the_name/appendix2.yml +754 -0
- data/lib/behind_the_name/refinements.rb +31 -0
- data/lib/behind_the_name/usages.rb +27 -0
- data/lib/behind_the_name/version.rb +3 -0
- metadata +90 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'rest-client'
|
3
|
+
|
4
|
+
module BehindTheName
|
5
|
+
module Refinements
|
6
|
+
refine RestClient::Response do
|
7
|
+
def parse_as_json
|
8
|
+
body.parse_as_json
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
refine String do
|
13
|
+
def parse_as_json
|
14
|
+
JSON.parse(self, symbolize_names: true)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
refine Hash do
|
19
|
+
def compact
|
20
|
+
reject { |_, v| v.nil? }
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_uri_query
|
24
|
+
self
|
25
|
+
.compact
|
26
|
+
.map { |k, v| "#{URI.escape(k.to_s)}=#{v}" }
|
27
|
+
.join('&')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module BehindTheName
|
2
|
+
class Usages
|
3
|
+
def self.from(filename)
|
4
|
+
require 'yaml'
|
5
|
+
(@usages ||= {})[filename] ||= new(YAML.load_file(File.join(__dir__, "#{filename}.yml")))
|
6
|
+
end
|
7
|
+
|
8
|
+
def initialize(yml)
|
9
|
+
@data = yml
|
10
|
+
generate_indices!
|
11
|
+
end
|
12
|
+
|
13
|
+
private def generate_indices!
|
14
|
+
@by_code = @data.map { |datum| datum[:code].to_sym }
|
15
|
+
@by_full = @data.group_by { |datum| datum[:full] }
|
16
|
+
end
|
17
|
+
|
18
|
+
def normalize(usage)
|
19
|
+
return usage.to_sym if @by_code.include?(usage.to_sym)
|
20
|
+
@by_full.fetch(usage).first.fetch(:code).to_sym
|
21
|
+
end
|
22
|
+
|
23
|
+
def include?(key)
|
24
|
+
@by_code.include?(key) || @by_full.include?(key)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: behind_the_name
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Michael Chui
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-12-19 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rest-client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: yaml
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description:
|
42
|
+
email:
|
43
|
+
- saraid216@gmail.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- ".gitignore"
|
49
|
+
- ".rspec"
|
50
|
+
- ".travis.yml"
|
51
|
+
- Gemfile
|
52
|
+
- Gemfile.lock
|
53
|
+
- README.md
|
54
|
+
- Rakefile
|
55
|
+
- behind_the_name.gemspec
|
56
|
+
- bin/console
|
57
|
+
- bin/scrape_appendices
|
58
|
+
- bin/setup
|
59
|
+
- lib/behind_the_name.rb
|
60
|
+
- lib/behind_the_name/appendix1.yml
|
61
|
+
- lib/behind_the_name/appendix2.yml
|
62
|
+
- lib/behind_the_name/refinements.rb
|
63
|
+
- lib/behind_the_name/usages.rb
|
64
|
+
- lib/behind_the_name/version.rb
|
65
|
+
homepage: https://github.com/saraid/behind_the_name
|
66
|
+
licenses:
|
67
|
+
- MIT
|
68
|
+
metadata:
|
69
|
+
homepage_uri: https://github.com/saraid/behind_the_name
|
70
|
+
post_install_message:
|
71
|
+
rdoc_options: []
|
72
|
+
require_paths:
|
73
|
+
- lib
|
74
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
requirements: []
|
85
|
+
rubyforge_project:
|
86
|
+
rubygems_version: 2.7.6
|
87
|
+
signing_key:
|
88
|
+
specification_version: 4
|
89
|
+
summary: Unofficial Ruby Client for BehindTheName.com
|
90
|
+
test_files: []
|