dadjoke 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 98e0f5b576e1ce67495f76941878ed442c92f2d36f8cbc1c278904012ff47308
4
+ data.tar.gz: 1efe4705a506028ee8c7c7cc3c5a12a80a34f69c63ca92e2553a6f75a5816342
5
+ SHA512:
6
+ metadata.gz: 667692e7e3e1bf63d79be4249c7fd6f5a4f3cea7026f65565a8276d53cd3024d3c30616e810bdefb083cc1c022430f5795c963ff1f91992bca1dc8806f37bcc6
7
+ data.tar.gz: b0ebdb56dec586645cd0d0edf45b8dcd3e4c4326ab85ffb1f1385ff391b95aac16508847e123a971c96a19581914e47f15280dfe47f2b1924a4360be5bd51fbd
data/exe/dadjoke ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "dadjoke"
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dadjoke
4
+ VERSION = "0.0.1"
5
+ end
data/lib/dadjoke.rb ADDED
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "httparty"
4
+
5
+ require_relative "dadjoke/version"
6
+
7
+ module Dadjoke
8
+ class Error < StandardError; end
9
+
10
+ # Fetch dad jokes from icanhazdadjoke.com
11
+ class Joke
12
+ @url = "https://icanhazdadjoke.com/"
13
+ @headers = {
14
+ "Accept" => "application/json",
15
+ "User-Agent" => "dadjoke Ruby Gem #{Dadjoke::VERSION}"
16
+ }
17
+
18
+ # Fetch a random joke
19
+ #
20
+ # @return [String] a dad joke
21
+ def self.random
22
+ HTTParty.get(@url, headers: @headers)["joke"]
23
+ end
24
+
25
+ # Search for jokes based on a term
26
+ #
27
+ # @param term [String] the search term
28
+ # @param limit [Integer] the number of jokes to return (default: 3, max: 30)
29
+ # @return [Array<String>] an array of jokes
30
+ def self.search(term, limit = 3)
31
+ query = { term:, limit: }
32
+ response = HTTParty.get(
33
+ "#{@url}/search",
34
+ headers: @headers,
35
+ query:
36
+ )
37
+ response["results"].map { |result| result["joke"] }
38
+ end
39
+ end
40
+ end
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dadjoke
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - meleu
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2024-05-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httparty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.21'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.21'
27
+ description: A gem created just to show how to create Ruby Gems. It fetches dad jokes
28
+ from icanhazdadjoke.com.
29
+ email:
30
+ - meleu@users.noreply.github.com
31
+ executables:
32
+ - dadjoke
33
+ extensions: []
34
+ extra_rdoc_files: []
35
+ files:
36
+ - exe/dadjoke
37
+ - lib/dadjoke.rb
38
+ - lib/dadjoke/version.rb
39
+ homepage: https://github.com/meleu/dadjoke
40
+ licenses:
41
+ - MIT
42
+ metadata:
43
+ homepage_uri: https://github.com/meleu/dadjoke
44
+ source_code_uri: https://github.com/meleu/dadjoke
45
+ changelog_uri: https://github.com/meleu/dadjoke/releases
46
+ post_install_message:
47
+ rdoc_options: []
48
+ require_paths:
49
+ - lib
50
+ required_ruby_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 3.1.0
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ requirements: []
61
+ rubygems_version: 3.4.10
62
+ signing_key:
63
+ specification_version: 4
64
+ summary: Get dad jokes from icanhazdadjoke.com
65
+ test_files: []