wallhaven 0.3.1 → 1.0.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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +11 -6
- data/lib/wallhaven.rb +1 -5
- data/lib/wallhaven/core_ext/hash/deep_merge.rb +20 -0
- data/lib/wallhaven/version.rb +1 -1
- data/lib/wallhaven/wallhaven.rb +36 -0
- metadata +4 -7
- data/lib/wallhaven/client.rb +0 -14
- data/lib/wallhaven/search.rb +0 -8
- data/lib/wallhaven/settings.rb +0 -8
- data/lib/wallhaven/tag.rb +0 -8
- data/lib/wallhaven/wallpaper.rb +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb9976e5499802aebecf6cd8d7dcc4ac1d753e887f532f1a45a0f88ddd5e5323
|
4
|
+
data.tar.gz: 0caee8f54dd0bda864ba5e6059d3cffb8f58623fc074def59e6504248178ad8d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d7bf4988081beaf43df3cfda2b2a946dbf54d5b2dc2a5972747dd351d75360950f698f978c427c64c557493115082bff9818cd730cd81a5e23da780726d1d1a
|
7
|
+
data.tar.gz: 16068a90ee840df863f7d13eb03416ccfc5ba9cdc91868e9d0c00067dfe4fe3ed02646afc0dd74412b34499fe369060dee78e01d753bfb1b7370abdbf01ee155
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
|
5
5
|
A simple gem to interact with Wallhaven's API.
|
6
6
|
|
7
|
+
You can find the official API documentation [here](https://wallhaven.cc/help/api).
|
8
|
+
|
7
9
|
## Installation
|
8
10
|
|
9
11
|
Add this line to your application's Gemfile:
|
@@ -26,14 +28,17 @@ Or install it yourself as:
|
|
26
28
|
## Usage
|
27
29
|
|
28
30
|
1. Setup your API key
|
29
|
-
`Wallhaven::Client.new(api_key: <your_key>)`
|
30
31
|
|
31
|
-
|
32
|
+
`Wallhaven.apikey = "<your_key>"`
|
33
|
+
|
34
|
+
**Note**: You can still make requests without an apikey, but you won't be able to get NSFW results.
|
35
|
+
|
36
|
+
2. Make a request to an endpoint:
|
32
37
|
```ruby
|
33
|
-
Wallhaven
|
34
|
-
Wallhaven
|
35
|
-
Wallhaven
|
36
|
-
Wallhaven
|
38
|
+
Wallhaven.wallpaper(<some_id>)
|
39
|
+
Wallhaven.tag(<some_id>)
|
40
|
+
Wallhaven.search({ filter_1: some_filter, filter_2: some_other_filter })
|
41
|
+
Wallhaven.settings
|
37
42
|
```
|
38
43
|
|
39
44
|
## Gem Development
|
data/lib/wallhaven.rb
CHANGED
@@ -1,9 +1,5 @@
|
|
1
1
|
require 'wallhaven/version'
|
2
|
+
require 'wallhaven/wallhaven'
|
2
3
|
|
3
4
|
module Wallhaven
|
4
|
-
autoload :Client, 'wallhaven/client'
|
5
|
-
autoload :Search, 'wallhaven/search'
|
6
|
-
autoload :Settings, 'wallhaven/settings'
|
7
|
-
autoload :Tag, 'wallhaven/tag'
|
8
|
-
autoload :Wallpaper, 'wallhaven/wallpaper'
|
9
5
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Hash
|
4
|
+
def deep_merge(other_hash, &block)
|
5
|
+
dup.deep_merge!(other_hash, &block)
|
6
|
+
end
|
7
|
+
|
8
|
+
# Same as +deep_merge+, but modifies +self+.
|
9
|
+
def deep_merge!(other_hash, &block)
|
10
|
+
merge!(other_hash) do |key, this_val, other_val|
|
11
|
+
if this_val.is_a?(Hash) && other_val.is_a?(Hash)
|
12
|
+
this_val.deep_merge(other_val, &block)
|
13
|
+
elsif block_given?
|
14
|
+
block.call(key, this_val, other_val)
|
15
|
+
else
|
16
|
+
other_val
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/wallhaven/version.rb
CHANGED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
|
3
|
+
module Wallhaven
|
4
|
+
include HTTParty
|
5
|
+
base_uri 'https://wallhaven.cc/api/v1/'
|
6
|
+
|
7
|
+
class << self
|
8
|
+
attr_accessor :apikey
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.wallpaper(id)
|
12
|
+
parse get("/w/#{id}", query)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.search(params = {})
|
16
|
+
parse get('/search', query(params ))
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.tag(id)
|
20
|
+
parse get("/tag/#{id}", query)
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.settings
|
24
|
+
parse get("/settings", query)
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def self.parse(response)
|
30
|
+
response.parsed_response["data"]
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.query(params = {})
|
34
|
+
{ query: { apikey: apikey }.merge(params) }
|
35
|
+
end
|
36
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wallhaven
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rojo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-06-
|
11
|
+
date: 2019-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -98,12 +98,9 @@ files:
|
|
98
98
|
- bin/console
|
99
99
|
- bin/setup
|
100
100
|
- lib/wallhaven.rb
|
101
|
-
- lib/wallhaven/
|
102
|
-
- lib/wallhaven/search.rb
|
103
|
-
- lib/wallhaven/settings.rb
|
104
|
-
- lib/wallhaven/tag.rb
|
101
|
+
- lib/wallhaven/core_ext/hash/deep_merge.rb
|
105
102
|
- lib/wallhaven/version.rb
|
106
|
-
- lib/wallhaven/
|
103
|
+
- lib/wallhaven/wallhaven.rb
|
107
104
|
- wallhaven.gemspec
|
108
105
|
homepage: https://github.com/soyrojo/wallhaven
|
109
106
|
licenses:
|
data/lib/wallhaven/client.rb
DELETED
data/lib/wallhaven/search.rb
DELETED
data/lib/wallhaven/settings.rb
DELETED
data/lib/wallhaven/tag.rb
DELETED