planefyi 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/planefyi.rb +125 -0
- metadata +47 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: fb02656268ede0a182542749cd19bcb42d21bc8dcd759bc9470f10f16369cbc4
|
|
4
|
+
data.tar.gz: b0f6e86bab00df91be13e18c66fc7bf51e2ffb4dd9b8db3af4258c43566406a8
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 713f2a658b3e5141d49bd816f1f8c61591646a538d99f112f69e752a8116804db74c0d28c1cf1992e9f9f3444a4b5369a54e4da66676bbb671f6961f6e751b21
|
|
7
|
+
data.tar.gz: f93b23ef08e3577f38c95e47089fffa8346cde198c787dd08e9728f23b870e9adac84eb0f7d6c69c320883411261b876b3ad985d97f49d0412aadd112cf1b217
|
data/lib/planefyi.rb
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "net/http"
|
|
4
|
+
require "json"
|
|
5
|
+
require "uri"
|
|
6
|
+
|
|
7
|
+
# Ruby client for PlaneFYI REST API (planefyi.com).
|
|
8
|
+
#
|
|
9
|
+
# client = PlaneFYI::Client.new
|
|
10
|
+
# result = client.search("query")
|
|
11
|
+
#
|
|
12
|
+
module PlaneFYI
|
|
13
|
+
class Client
|
|
14
|
+
BASE_URL = "https://planefyi.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 aircraft families.
|
|
25
|
+
def list_aircraft_families
|
|
26
|
+
get("/api/v1/aircraft-families/")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Get aircraft family by slug.
|
|
30
|
+
def get_aircraft_family(slug)
|
|
31
|
+
get("/api/v1/aircraft-families/#{slug}/")
|
|
32
|
+
end
|
|
33
|
+
# List all aircraft systems.
|
|
34
|
+
def list_aircraft_systems
|
|
35
|
+
get("/api/v1/aircraft-systems/")
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Get aircraft system by slug.
|
|
39
|
+
def get_aircraft_system(slug)
|
|
40
|
+
get("/api/v1/aircraft-systems/#{slug}/")
|
|
41
|
+
end
|
|
42
|
+
# List all aircraft types.
|
|
43
|
+
def list_aircraft_types
|
|
44
|
+
get("/api/v1/aircraft-types/")
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Get aircraft type by slug.
|
|
48
|
+
def get_aircraft_type(slug)
|
|
49
|
+
get("/api/v1/aircraft-types/#{slug}/")
|
|
50
|
+
end
|
|
51
|
+
# List all airlines.
|
|
52
|
+
def list_airlines
|
|
53
|
+
get("/api/v1/airlines/")
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Get airline by slug.
|
|
57
|
+
def get_airline(slug)
|
|
58
|
+
get("/api/v1/airlines/#{slug}/")
|
|
59
|
+
end
|
|
60
|
+
# List all aviation terms.
|
|
61
|
+
def list_aviation_terms
|
|
62
|
+
get("/api/v1/aviation-terms/")
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Get aviation term by slug.
|
|
66
|
+
def get_aviation_term(slug)
|
|
67
|
+
get("/api/v1/aviation-terms/#{slug}/")
|
|
68
|
+
end
|
|
69
|
+
# List all engine profiles.
|
|
70
|
+
def list_engine_profiles
|
|
71
|
+
get("/api/v1/engine-profiles/")
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Get engine profile by slug.
|
|
75
|
+
def get_engine_profile(slug)
|
|
76
|
+
get("/api/v1/engine-profiles/#{slug}/")
|
|
77
|
+
end
|
|
78
|
+
# List all faqs.
|
|
79
|
+
def list_faqs
|
|
80
|
+
get("/api/v1/faqs/")
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# Get faq by slug.
|
|
84
|
+
def get_faq(slug)
|
|
85
|
+
get("/api/v1/faqs/#{slug}/")
|
|
86
|
+
end
|
|
87
|
+
# List all fleet.
|
|
88
|
+
def list_fleet
|
|
89
|
+
get("/api/v1/fleet/")
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Get fleet by slug.
|
|
93
|
+
def get_fleet(slug)
|
|
94
|
+
get("/api/v1/fleet/#{slug}/")
|
|
95
|
+
end
|
|
96
|
+
# List all manufacturers.
|
|
97
|
+
def list_manufacturers
|
|
98
|
+
get("/api/v1/manufacturers/")
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# Get manufacturer by slug.
|
|
102
|
+
def get_manufacturer(slug)
|
|
103
|
+
get("/api/v1/manufacturers/#{slug}/")
|
|
104
|
+
end
|
|
105
|
+
# List all seat maps.
|
|
106
|
+
def list_seat_maps
|
|
107
|
+
get("/api/v1/seat-maps/")
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Get seat map by slug.
|
|
111
|
+
def get_seat_map(slug)
|
|
112
|
+
get("/api/v1/seat-maps/#{slug}/")
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
private
|
|
116
|
+
|
|
117
|
+
def get(path, **params)
|
|
118
|
+
uri = URI.join(@base_url, path)
|
|
119
|
+
uri.query = URI.encode_www_form(params) unless params.empty?
|
|
120
|
+
response = Net::HTTP.get_response(uri)
|
|
121
|
+
raise "HTTP #{response.code}" unless response.is_a?(Net::HTTPSuccess)
|
|
122
|
+
JSON.parse(response.body)
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: planefyi
|
|
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 PlaneFYI REST API at planefyi.com. Zero external
|
|
14
|
+
dependencies.
|
|
15
|
+
email: dev@fyipedia.com
|
|
16
|
+
executables: []
|
|
17
|
+
extensions: []
|
|
18
|
+
extra_rdoc_files: []
|
|
19
|
+
files:
|
|
20
|
+
- lib/planefyi.rb
|
|
21
|
+
homepage: https://planefyi.com
|
|
22
|
+
licenses:
|
|
23
|
+
- MIT
|
|
24
|
+
metadata:
|
|
25
|
+
source_code_uri: https://github.com/fyipedia/planefyi-rb
|
|
26
|
+
documentation_uri: https://planefyi.com/api/v1/schema/
|
|
27
|
+
homepage_uri: https://planefyi.com
|
|
28
|
+
post_install_message:
|
|
29
|
+
rdoc_options: []
|
|
30
|
+
require_paths:
|
|
31
|
+
- lib
|
|
32
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
33
|
+
requirements:
|
|
34
|
+
- - ">="
|
|
35
|
+
- !ruby/object:Gem::Version
|
|
36
|
+
version: '3.0'
|
|
37
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
38
|
+
requirements:
|
|
39
|
+
- - ">="
|
|
40
|
+
- !ruby/object:Gem::Version
|
|
41
|
+
version: '0'
|
|
42
|
+
requirements: []
|
|
43
|
+
rubygems_version: 3.0.3.1
|
|
44
|
+
signing_key:
|
|
45
|
+
specification_version: 4
|
|
46
|
+
summary: Ruby client for PlaneFYI API
|
|
47
|
+
test_files: []
|