dad_jokes 0.1.1 → 0.1.2
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 +4 -4
- data/.gitignore +1 -0
- data/README.md +47 -12
- data/dad_jokes.gemspec +5 -6
- data/lib/dad_jokes.rb +32 -6
- data/lib/dad_jokes/version.rb +1 -1
- metadata +17 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a1ca86fccc05f9065e9b065c7669e0034661554
|
4
|
+
data.tar.gz: bb45121a2a6acf3ea48a7c673ea67e69881b9948
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: baa66da84ea54254ea6ae94c65024e925f664e681b90ec5bc157a5faedba9bbebccdfcdd17a55ac09774b4ceec67b622e40710741dad5d2d41f877248aad6a65
|
7
|
+
data.tar.gz: 8e247ae1fdc2d7901917317c548cb524f11f869e22b31225de2cdc837c45785e2c5f93a408d03502c0bc96145dd798a3fab26eaa78bf2a3868da0fef512202b7
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -5,56 +5,91 @@
|
|
5
5
|
<br/>
|
6
6
|
|
7
7
|
Welcome to <b>Dad Jokes</b>! <br/>
|
8
|
+
_( Wait, [what's a Dad joke?](https://en.wikipedia.org/wiki/Dad_joke) )_ <br/>
|
9
|
+
|
8
10
|
Generate random dad jokes using this gem.
|
9
11
|
|
10
12
|
## Installation
|
11
13
|
|
12
|
-
Add this line to your application's Gemfile:
|
14
|
+
<b>1.</b> Add this line to your application's Gemfile:
|
13
15
|
|
14
16
|
``` ruby
|
15
17
|
gem 'dad_jokes'
|
16
18
|
```
|
17
19
|
|
18
|
-
|
20
|
+
and then execute:
|
19
21
|
|
20
22
|
$ bundle
|
21
23
|
|
22
|
-
|
24
|
+
<b>OR,</b>
|
25
|
+
|
26
|
+
<b>2.</b> Install it yourself as:
|
23
27
|
|
24
28
|
$ gem install dad_jokes
|
25
29
|
|
30
|
+
and require in your script as :
|
31
|
+
```ruby
|
32
|
+
require 'dad_jokes'
|
33
|
+
```
|
34
|
+
|
26
35
|
## Usage
|
27
36
|
|
28
|
-
####
|
37
|
+
#### 1. Get a random Dad joke
|
29
38
|
|
30
39
|
``` ruby
|
40
|
+
# Get a random joke
|
31
41
|
DadJokes.random
|
32
42
|
```
|
33
43
|
|
34
|
-
Sample Output #1 : ``"Dad, I'm hungry." "Hello, Hungry. I'm Dad."``
|
44
|
+
Sample Output #1 : ``'"Dad, I'm hungry." "Hello, Hungry. I'm Dad."'``
|
35
45
|
|
36
|
-
Sample Output #2 : ``
|
46
|
+
Sample Output #2 : ``'My dog used to chase people on a bike a lot. It got so bad I had to take his bike away.'``
|
37
47
|
|
38
|
-
####
|
48
|
+
#### 2. Search for Dad jokes
|
39
49
|
|
40
50
|
``` ruby
|
41
|
-
|
51
|
+
# Get array of jokes by passing a search term ; and setting limit(optional)
|
52
|
+
DadJokes.search(term: "cannibal", limit: 1)
|
42
53
|
```
|
43
54
|
|
44
|
-
|
55
|
+
Output : ``["A cannibal is someone who is fed up with people."]``
|
56
|
+
|
57
|
+
* _term :_
|
45
58
|
- (**required*)
|
46
59
|
- Search term goes here
|
47
|
-
* _limit:_
|
60
|
+
* _limit :_
|
48
61
|
- (**optional*)
|
49
62
|
- Set limit for the number of jokes (because, obviously you're tired of laughing!).
|
50
|
-
-
|
63
|
+
- By default : <b>5 jokes</b>
|
64
|
+
|
65
|
+
#### 3. Generate & save a random joke as image (in .png format)
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
# Saves a random joke in png format
|
69
|
+
DadJokes.random_image
|
70
|
+
```
|
51
71
|
|
72
|
+
_Sample Vector image :_ <br>
|
73
|
+

|
74
|
+
|
75
|
+
_Output to console :_ <br>
|
76
|
+
``"Dad died because he couldn't remember his blood type. I will never forget his last words. Be positive. ( Saved as image in location: joke_vX8MeFdUDlb.png !)"``
|
77
|
+
|
78
|
+
|
79
|
+
<b>NOTE:</b> If you're inside a Rails project, image will be saved to root of the directory. Otherwise, if you're running the method in a ruby script, the image will be saved in the relative directory.
|
80
|
+
|
52
81
|
## Contributing
|
53
82
|
|
54
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/aswinsanakan/dad_jokes. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
83
|
+
[Bug reports](https://github.com/aswinsanakan/dad_jokes/issues) and pull requests are welcome on GitHub at https://github.com/aswinsanakan/dad_jokes. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
55
84
|
|
85
|
+
Thanks to [icanhazdadjoke](https://icanhazdadjoke.com/) for the free API.
|
86
|
+
You can submit new jokes [here](https://icanhazdadjoke.com/submit).
|
56
87
|
|
57
88
|
## License
|
58
89
|
|
59
90
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
60
91
|
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
data/dad_jokes.gemspec
CHANGED
@@ -6,11 +6,11 @@ require 'dad_jokes/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "dad_jokes"
|
8
8
|
spec.version = DadJokes::VERSION
|
9
|
-
spec.authors = ["
|
9
|
+
spec.authors = ["Aswin Sanakan"]
|
10
10
|
spec.email = ["aswinsanakan@gmail.com"]
|
11
11
|
|
12
12
|
spec.summary = %q{Gem to generate random popular Dad Jokes.}
|
13
|
-
spec.description = %q{Gem to generate random popular Dad Jokes.}
|
13
|
+
spec.description = %q{Gem to generate random popular Dad Jokes. Features include: Generating jokes, Search for jokes, Save a random joke as image (as .png), etc}
|
14
14
|
spec.homepage = "https://github.com/aswinsanakan/dad_jokes"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
@@ -34,8 +34,7 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_development_dependency "rake", "~> 10.0"
|
35
35
|
spec.add_development_dependency "minitest", "~> 5.0"
|
36
36
|
|
37
|
-
spec.add_dependency "json"
|
38
|
-
spec.add_dependency "faraday"
|
39
|
-
spec.add_dependency "faraday_middleware"
|
40
|
-
spec.add_dependency "pry"
|
37
|
+
spec.add_dependency "json", '~> 1.8'
|
38
|
+
spec.add_dependency "faraday", '~> 0.13.1'
|
39
|
+
spec.add_dependency "faraday_middleware", '~> 0.12.2'
|
41
40
|
end
|
data/lib/dad_jokes.rb
CHANGED
@@ -2,11 +2,11 @@ require "dad_jokes/version"
|
|
2
2
|
require "faraday"
|
3
3
|
require "faraday_middleware"
|
4
4
|
require "json"
|
5
|
-
require '
|
5
|
+
require 'open-uri'
|
6
6
|
|
7
7
|
module DadJokes
|
8
8
|
|
9
|
-
API_URL = "https://icanhazdadjoke.com
|
9
|
+
API_URL = "https://icanhazdadjoke.com".freeze
|
10
10
|
API_HEADERS = {"Accept": "application/json"}
|
11
11
|
DEFAULT_LIMIT = 5
|
12
12
|
|
@@ -16,6 +16,18 @@ module DadJokes
|
|
16
16
|
get_joke(joke_object)
|
17
17
|
end
|
18
18
|
|
19
|
+
def self.random_image
|
20
|
+
uri = "/"
|
21
|
+
joke_object = parse_response(uri)
|
22
|
+
joke_id = get_id(joke_object)
|
23
|
+
image_uri = "/j/#{joke_id}.png"
|
24
|
+
url = File.join(API_URL, image_uri).to_s
|
25
|
+
download = open(url)
|
26
|
+
path = get_image_save_path(joke_id)
|
27
|
+
IO.copy_stream(download, path)
|
28
|
+
"#{get_joke(joke_object)} ( Saved as image in location: #{path} !)"
|
29
|
+
end
|
30
|
+
|
19
31
|
def self.fetch(joke_id:)
|
20
32
|
uri = "/j/#{joke_id}"
|
21
33
|
joke_object = parse_response(uri)
|
@@ -41,9 +53,12 @@ module DadJokes
|
|
41
53
|
joke_object['joke']
|
42
54
|
end
|
43
55
|
|
56
|
+
def self.get_id(joke_object)
|
57
|
+
joke_object['id']
|
58
|
+
end
|
59
|
+
|
44
60
|
def self.filter_jokes(jokes_hash)
|
45
|
-
|
46
|
-
jokes_arr = jokes_hash['results']
|
61
|
+
jokes_arr = jokes_hash['results'] || []
|
47
62
|
jokes = []
|
48
63
|
jokes_arr.each do |joke|
|
49
64
|
jokes << joke['joke']
|
@@ -55,8 +70,19 @@ module DadJokes
|
|
55
70
|
Faraday.new(url: API_URL, headers: API_HEADERS)
|
56
71
|
end
|
57
72
|
|
58
|
-
def self.
|
59
|
-
|
73
|
+
def self.get_image_save_path(joke_id)
|
74
|
+
if in_rails_app?
|
75
|
+
File.join(Rails.root,"public","dadjokes","joke_#{joke_id}.png")
|
76
|
+
else
|
77
|
+
"joke_#{joke_id}.png"
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def self.in_rails_app?
|
82
|
+
klass = Module.const_get("Rails")
|
83
|
+
return klass.is_a?(Module)
|
84
|
+
rescue NameError
|
85
|
+
return false
|
60
86
|
end
|
61
87
|
|
62
88
|
end
|
data/lib/dad_jokes/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dad_jokes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Aswin Sanakan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -56,59 +56,46 @@ dependencies:
|
|
56
56
|
name: json
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '1.8'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '1.8'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: faraday
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 0.13.1
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 0.13.1
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: faraday_middleware
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: pry
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
87
|
+
- - "~>"
|
102
88
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
89
|
+
version: 0.12.2
|
104
90
|
type: :runtime
|
105
91
|
prerelease: false
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
107
93
|
requirements:
|
108
|
-
- - "
|
94
|
+
- - "~>"
|
109
95
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
111
|
-
description: Gem to generate random popular Dad Jokes.
|
96
|
+
version: 0.12.2
|
97
|
+
description: 'Gem to generate random popular Dad Jokes. Features include: Generating
|
98
|
+
jokes, Search for jokes, Save a random joke as image (as .png), etc'
|
112
99
|
email:
|
113
100
|
- aswinsanakan@gmail.com
|
114
101
|
executables: []
|