namefyi 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/lib/namefyi.rb +107 -0
- metadata +46 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 34a00411afe636ca98df9f95764a383d952ee2f72fd8d3b41ede9084213f2332
|
|
4
|
+
data.tar.gz: f0942160d2e476816bc7f1f3953ddc8d67490e45241e579f4afd7ca9b69e4ae3
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: d8de88c0ef31efae8cae81c0b20bc6f919fa83a4866494008604bb4b5f3619e2c4e2d8650c53552a7a1194a10d9db343238d2bd8cf6c4f440eda26ed40758d75
|
|
7
|
+
data.tar.gz: a4b6791328ea0e5a3e3c70224d8a5ad1f5488aba98f35b422a4bd9165c6be2e71c1454a5fe1fba91591ebe7f61c8304025ac39a629d3ea07feaba1c2c25a620f
|
data/lib/namefyi.rb
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "net/http"
|
|
4
|
+
require "json"
|
|
5
|
+
require "uri"
|
|
6
|
+
|
|
7
|
+
# Ruby client for NameFYI REST API (namefyi.com).
|
|
8
|
+
#
|
|
9
|
+
# client = NameFYI::Client.new
|
|
10
|
+
# result = client.search("query")
|
|
11
|
+
#
|
|
12
|
+
module NameFYI
|
|
13
|
+
class Client
|
|
14
|
+
BASE_URL = "https://namefyi.com"
|
|
15
|
+
|
|
16
|
+
def initialize(base_url: BASE_URL)
|
|
17
|
+
@base_url = base_url
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def search(query)
|
|
21
|
+
get("/api/v1/search/", q: query)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# List all characters.
|
|
25
|
+
def list_characters
|
|
26
|
+
get("/api/v1/characters/")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Get character by slug.
|
|
30
|
+
def get_character(slug)
|
|
31
|
+
get("/api/v1/characters/#{slug}/")
|
|
32
|
+
end
|
|
33
|
+
# List all cultures.
|
|
34
|
+
def list_cultures
|
|
35
|
+
get("/api/v1/cultures/")
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Get culture by slug.
|
|
39
|
+
def get_culture(slug)
|
|
40
|
+
get("/api/v1/cultures/#{slug}/")
|
|
41
|
+
end
|
|
42
|
+
# List all faqs.
|
|
43
|
+
def list_faqs
|
|
44
|
+
get("/api/v1/faqs/")
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Get faq by slug.
|
|
48
|
+
def get_faq(slug)
|
|
49
|
+
get("/api/v1/faqs/#{slug}/")
|
|
50
|
+
end
|
|
51
|
+
# List all given names.
|
|
52
|
+
def list_given_names
|
|
53
|
+
get("/api/v1/given-names/")
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Get given name by slug.
|
|
57
|
+
def get_given_name(slug)
|
|
58
|
+
get("/api/v1/given-names/#{slug}/")
|
|
59
|
+
end
|
|
60
|
+
# List all glossary.
|
|
61
|
+
def list_glossary
|
|
62
|
+
get("/api/v1/glossary/")
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Get term by slug.
|
|
66
|
+
def get_term(slug)
|
|
67
|
+
get("/api/v1/glossary/#{slug}/")
|
|
68
|
+
end
|
|
69
|
+
# List all guides.
|
|
70
|
+
def list_guides
|
|
71
|
+
get("/api/v1/guides/")
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Get guide by slug.
|
|
75
|
+
def get_guide(slug)
|
|
76
|
+
get("/api/v1/guides/#{slug}/")
|
|
77
|
+
end
|
|
78
|
+
# List all meaning tags.
|
|
79
|
+
def list_meaning_tags
|
|
80
|
+
get("/api/v1/meaning-tags/")
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# Get meaning tag by slug.
|
|
84
|
+
def get_meaning_tag(slug)
|
|
85
|
+
get("/api/v1/meaning-tags/#{slug}/")
|
|
86
|
+
end
|
|
87
|
+
# List all surnames.
|
|
88
|
+
def list_surnames
|
|
89
|
+
get("/api/v1/surnames/")
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Get surname by slug.
|
|
93
|
+
def get_surname(slug)
|
|
94
|
+
get("/api/v1/surnames/#{slug}/")
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
private
|
|
98
|
+
|
|
99
|
+
def get(path, **params)
|
|
100
|
+
uri = URI.join(@base_url, path)
|
|
101
|
+
uri.query = URI.encode_www_form(params) unless params.empty?
|
|
102
|
+
response = Net::HTTP.get_response(uri)
|
|
103
|
+
raise "HTTP #{response.code}" unless response.is_a?(Net::HTTPSuccess)
|
|
104
|
+
JSON.parse(response.body)
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: namefyi
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- FYIPedia
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2026-03-21 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: Ruby client for the NameFYI REST API at namefyi.com. Zero external dependencies.
|
|
14
|
+
email: dev@fyipedia.com
|
|
15
|
+
executables: []
|
|
16
|
+
extensions: []
|
|
17
|
+
extra_rdoc_files: []
|
|
18
|
+
files:
|
|
19
|
+
- lib/namefyi.rb
|
|
20
|
+
homepage: https://namefyi.com
|
|
21
|
+
licenses:
|
|
22
|
+
- MIT
|
|
23
|
+
metadata:
|
|
24
|
+
source_code_uri: https://github.com/fyipedia/namefyi-rb
|
|
25
|
+
documentation_uri: https://namefyi.com/api/v1/schema/
|
|
26
|
+
homepage_uri: https://namefyi.com
|
|
27
|
+
post_install_message:
|
|
28
|
+
rdoc_options: []
|
|
29
|
+
require_paths:
|
|
30
|
+
- lib
|
|
31
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
32
|
+
requirements:
|
|
33
|
+
- - ">="
|
|
34
|
+
- !ruby/object:Gem::Version
|
|
35
|
+
version: '3.0'
|
|
36
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
41
|
+
requirements: []
|
|
42
|
+
rubygems_version: 3.0.3.1
|
|
43
|
+
signing_key:
|
|
44
|
+
specification_version: 4
|
|
45
|
+
summary: Ruby client for NameFYI API
|
|
46
|
+
test_files: []
|