web_function 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8699012072dba58c29800e828b4fd2b5805943b174e8337b94d42d84f8429608
4
- data.tar.gz: 8e15d51256a8ee847983cdf1c354bcddf8295698ad3a47357e251678606fe083
3
+ metadata.gz: 9884aca52c6ecf876a98ad979dabe109a30b1243238af1abb4bd42d76fbe3a9c
4
+ data.tar.gz: ee0208280fdc2918884de3206a1bfc79d4086f13c0b072b925d2008d0ef024a0
5
5
  SHA512:
6
- metadata.gz: ad6f0306060921364ae8f2adf8c426d211fbf9fc7daed884868c1317c35b165af9833c596e82492e76bff6d2ef6a229d29916887e51de7ea64a724495c8c54ca
7
- data.tar.gz: 191cd221a27797e9eee811fe921ceb99d71d1dfb7ad61a60f8a0e77eed29af7061b71b2b7d8a6637da43b3f89afa3e01064ce22ffc0e855e51e8bd91da8792b2
6
+ metadata.gz: 1d2eb14f9d599d6e43c27da2a08276e6e874d125f5b7d6de0e0b5ca14404afb143498fced7ab1a2101f8412a25ccf079281cf6741ba91118b00cb29c535c64c8
7
+ data.tar.gz: 0f157e34a23c7c45a5c48423014fe0ae707419bd73500d89d18fb08fb907ce93acf147e6b52cb22557c84b4cc748c30fb03683ac29479d4f0aa25f90dffd2396
@@ -14,6 +14,10 @@ module WebFunction
14
14
  @argument["type"]
15
15
  end
16
16
 
17
+ def choices
18
+ @argument["choices"]
19
+ end
20
+
17
21
  def flags
18
22
  @argument["flags"]
19
23
  end
@@ -21,9 +25,5 @@ module WebFunction
21
25
  def docs
22
26
  @argument["docs"]
23
27
  end
24
-
25
- def to_s
26
- [" - #{name} (#{type}):", docs].join(" ")
27
- end
28
28
  end
29
29
  end
@@ -0,0 +1,15 @@
1
+ module WebFunction
2
+ class DocumentedError
3
+ def initialize(error)
4
+ @error = error
5
+ end
6
+
7
+ def code
8
+ @error["code"]
9
+ end
10
+
11
+ def docs
12
+ @error["docs"]
13
+ end
14
+ end
15
+ end
@@ -61,12 +61,28 @@ module WebFunction
61
61
  @endpoint["flags"]
62
62
  end
63
63
 
64
+ def group
65
+ @endpoint["group"]
66
+ end
67
+
64
68
  def docs
65
69
  @endpoint["docs"]
66
70
  end
67
71
 
68
72
  def arguments
73
+ unless @endpoint["arguments"].is_a?(Array)
74
+ return []
75
+ end
76
+
69
77
  @endpoint["arguments"].map { |argument| Argument.new(argument) }
70
78
  end
79
+
80
+ def errors
81
+ unless @endpoint["errors"].is_a?(Array)
82
+ return []
83
+ end
84
+
85
+ @endpoint["errors"].map { |argument| DocumentedError.new(error) }
86
+ end
71
87
  end
72
88
  end
@@ -6,10 +6,6 @@ module WebFunction
6
6
  @package = package
7
7
  end
8
8
 
9
- def documentation
10
- Documentation.new(self)
11
- end
12
-
13
9
  def base_url
14
10
  @package["base_url"]
15
11
  end
@@ -27,7 +23,19 @@ module WebFunction
27
23
  end
28
24
 
29
25
  def endpoints
26
+ unless @package["endpoints"].is_a?(Array)
27
+ return []
28
+ end
29
+
30
30
  @package["endpoints"].map { |endpoint| Endpoint.new(endpoint) }
31
31
  end
32
+
33
+ def errors
34
+ unless @package["errors"].is_a?(Array)
35
+ return []
36
+ end
37
+
38
+ @package["errors"].map { |argument| DocumentedError.new(error) }
39
+ end
32
40
  end
33
41
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WebFunction
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
data/lib/web_function.rb CHANGED
@@ -9,7 +9,6 @@ require_relative "web_function/client"
9
9
  require_relative "web_function/package"
10
10
  require_relative "web_function/endpoint"
11
11
  require_relative "web_function/argument"
12
- require_relative "web_function/documentation"
13
12
 
14
13
  module WebFunction
15
14
  class Error < StandardError
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web_function
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robin Clart
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-04-02 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: excon
@@ -57,7 +57,7 @@ files:
57
57
  - lib/web_function.rb
58
58
  - lib/web_function/argument.rb
59
59
  - lib/web_function/client.rb
60
- - lib/web_function/documentation.rb
60
+ - lib/web_function/documented_error.rb
61
61
  - lib/web_function/endpoint.rb
62
62
  - lib/web_function/package.rb
63
63
  - lib/web_function/version.rb
@@ -85,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
85
  - !ruby/object:Gem::Version
86
86
  version: '0'
87
87
  requirements: []
88
- rubygems_version: 3.6.6
88
+ rubygems_version: 3.6.9
89
89
  specification_version: 4
90
90
  summary: A Web Function Client for Ruby
91
91
  test_files: []
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module WebFunction
4
- class Documentation
5
- def initialize(package)
6
- @package = package
7
- end
8
-
9
- def generate
10
- buffer = ""
11
-
12
- buffer << @package.docs.strip
13
- buffer << "\n\n"
14
- @package.endpoints.each do |endpoint|
15
- arguments = endpoint.arguments
16
- buffer << endpoint.docs.strip
17
- buffer << "\n\n"
18
- buffer << "Signature:"
19
- buffer << "\n"
20
- buffer << "```"
21
- buffer << "\n"
22
- buffer << endpoint.name
23
- buffer << " { "
24
- buffer << arguments.map { |a| "#{a.name}: #{a.type}" }.join(", ")
25
- buffer << " } -> ("
26
- buffer << endpoint.returns.join(" | ")
27
- buffer << ")"
28
- buffer << "\n"
29
- buffer << "```"
30
- buffer << "\n\n"
31
- buffer << "Arguments:"
32
- buffer << "\n"
33
- arguments.each do |argument|
34
- buffer << " - "
35
- buffer << "#{argument.name} (#{argument.type}): "
36
- if argument.flags.include?("required")
37
- buffer << "**Required.** "
38
- else
39
- buffer << "**Optional.** "
40
- end
41
- buffer << argument.docs.strip
42
- buffer << "\n"
43
- end
44
- buffer << "\n"
45
- end
46
-
47
- buffer
48
- end
49
- end
50
- end