random_yiff 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/.gitignore +14 -0
- data/.travis.yml +8 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +92 -0
- data/Rakefile +1 -0
- data/bin/yiff +6 -0
- data/lib/random_yiff.rb +5 -0
- data/lib/random_yiff/cli.rb +14 -0
- data/lib/random_yiff/e621.rb +35 -0
- data/lib/random_yiff/version.rb +3 -0
- data/random_yiff.gemspec +27 -0
- data/spec/fixtures/random_post.json +1 -0
- data/spec/fixtures/random_post.txt +19 -0
- data/spec/fixtures/random_post_response.txt +19 -0
- data/spec/random_yiff/cli_spec.rb +19 -0
- data/spec/random_yiff/e621_spec.rb +57 -0
- data/spec/spec_helper.rb +42 -0
- metadata +167 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9cdbfff59f5fe1ec753aa7e68d0d5ae3e4860d2e
|
4
|
+
data.tar.gz: 4b685a8b90e3a68db2399ea6ad3582b958f9247d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8acb682305358d552b6c56a5b9aeb0c6a063c9656ef5ca7448d4829050439329061d2e6240d0f4e8a9cf5849f63bb11df293e84d158e60e5f4673089be6bd3e6
|
7
|
+
data.tar.gz: fe2f13b8ead9e3d6958018eabe4e51e6203da7487dafbb36381b7946fe6582713f8efc9557c93dac15763839d9a8e7066dc87770cbd2f926baebbcdd910485ad
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 James Awesome
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
# RandomYiff
|
2
|
+
[](https://travis-ci.org/JamesAwesome/random_yiff)
|
3
|
+
[](https://coveralls.io/r/JamesAwesome/random_yiff)
|
4
|
+
|
5
|
+
Bring forth Random Furry pr0n, amaze your friends, scare normal people.
|
6
|
+
|
7
|
+
RandomYiff will provide you with a random post from e621.net via their /post/random route.
|
8
|
+
|
9
|
+
## Installation
|
10
|
+
|
11
|
+
Add this line to your application's Gemfile:
|
12
|
+
|
13
|
+
```ruby
|
14
|
+
gem 'random_yiff'
|
15
|
+
```
|
16
|
+
|
17
|
+
And then execute:
|
18
|
+
|
19
|
+
$ bundle
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
|
23
|
+
$ gem install random_yiff
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
As a cli app
|
28
|
+
|
29
|
+
```bash
|
30
|
+
yiff
|
31
|
+
```
|
32
|
+
|
33
|
+
To return a random post URI
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
RandomYiff::E621.post_uri
|
37
|
+
```
|
38
|
+
|
39
|
+
Return the original post from e621.net
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
yiff = RandomYiff::E621.new
|
43
|
+
yiff.post
|
44
|
+
```
|
45
|
+
|
46
|
+
Get a URI object for the post's file_url
|
47
|
+
|
48
|
+
```ruby
|
49
|
+
yiff = RandomYiff::E621.new
|
50
|
+
yiff.file_uri
|
51
|
+
```
|
52
|
+
|
53
|
+
Download the file from the posts file_url
|
54
|
+
|
55
|
+
```ruby
|
56
|
+
yiff = RandomYiff::E621.new
|
57
|
+
yiff.file
|
58
|
+
```
|
59
|
+
|
60
|
+
Instance methods are available via method_missing for all post parameters
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
yiff = RandomYiff::E621.new
|
64
|
+
yiff.file_url #=> "https://e621.net/foo/bar"
|
65
|
+
yiff.md5 #=> "b95477fdff6cb77ade50c7e0389c84a0"
|
66
|
+
yiff.source #=> "http://www.deviantart.com/foo/bar"
|
67
|
+
```
|
68
|
+
|
69
|
+
If provided a block yields self
|
70
|
+
|
71
|
+
```ruby
|
72
|
+
RandomYiff::E621.new do |yiff|
|
73
|
+
File.open("#{yiff.md5}.#{yiff.file_ext}", 'w') do |f|
|
74
|
+
f.write yiff.file
|
75
|
+
end
|
76
|
+
end
|
77
|
+
```
|
78
|
+
|
79
|
+
## Testing
|
80
|
+
```ruby
|
81
|
+
bundle install
|
82
|
+
|
83
|
+
rake
|
84
|
+
```
|
85
|
+
|
86
|
+
## Contributing
|
87
|
+
|
88
|
+
1. Fork it ( https://github.com/jamesawesome/random_yiff/fork )
|
89
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
90
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
91
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
92
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
data/bin/yiff
ADDED
data/lib/random_yiff.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'launchy'
|
3
|
+
|
4
|
+
module RandomYiff
|
5
|
+
class Cli < Thor
|
6
|
+
desc 'open', 'Default action, open furry pr0n in webbrowser'
|
7
|
+
def open
|
8
|
+
RandomYiff::E621.new do |yiff|
|
9
|
+
Launchy.open(yiff.file_url)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
default_task :open
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'net/http'
|
3
|
+
|
4
|
+
module RandomYiff
|
5
|
+
class E621
|
6
|
+
def self.post_uri
|
7
|
+
res = Net::HTTP.get_response(URI('https://e621.net/post/random'))
|
8
|
+
URI(res['location'] + '?format=json')
|
9
|
+
end
|
10
|
+
|
11
|
+
attr_reader :post_uri, :post
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
@post_uri = self.class.post_uri
|
15
|
+
@post = JSON.load(Net::HTTP.get(post_uri))
|
16
|
+
yield self if block_given?
|
17
|
+
end
|
18
|
+
|
19
|
+
def file_uri
|
20
|
+
URI(file_url)
|
21
|
+
end
|
22
|
+
|
23
|
+
def file_name
|
24
|
+
"#{md5}.#{file_ext}"
|
25
|
+
end
|
26
|
+
|
27
|
+
def file
|
28
|
+
Net::HTTP.get(file_uri)
|
29
|
+
end
|
30
|
+
|
31
|
+
def method_missing(m, *args, &block)
|
32
|
+
post["#{m}"] || super(m, *args, &block)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/random_yiff.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'random_yiff/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'random_yiff'
|
8
|
+
spec.version = RandomYiff::VERSION
|
9
|
+
spec.authors = ['James Awesome']
|
10
|
+
spec.email = ['james@wesome.nyc']
|
11
|
+
spec.summary = 'Get random furry pr0n from e621.net'
|
12
|
+
spec.homepage = 'https://github.com/jamesawesome/random_yiff'
|
13
|
+
spec.license = 'MIT'
|
14
|
+
|
15
|
+
spec.files = `git ls-files -z`.split("\x0")
|
16
|
+
spec.executables = spec.files.grep(/^bin\//) { |f| File.basename(f) }
|
17
|
+
spec.test_files = spec.files.grep(/^(test|spec|features)\//)
|
18
|
+
spec.require_paths = ['lib']
|
19
|
+
|
20
|
+
spec.add_dependency 'thor'
|
21
|
+
spec.add_dependency 'launchy'
|
22
|
+
spec.add_development_dependency 'bundler', '~> 1.7'
|
23
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
24
|
+
spec.add_development_dependency 'rspec', '~> 3.2'
|
25
|
+
spec.add_development_dependency 'webmock', '~> 1.20'
|
26
|
+
spec.add_development_dependency 'coveralls'
|
27
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{
|
2
|
"artist": [
|
1
3
|
"nitzleplick"
|
2
4
|
],
|
3
5
|
"author": "Azazial",
|
4
6
|
"change": 2369768,
|
5
7
|
"children": "",
|
6
8
|
"created_at": {
|
7
9
|
"json_class": "Time",
|
8
10
|
"n": 180941000,
|
9
11
|
"s": 1307623046
|
10
12
|
},
|
11
13
|
"creator_id": 11962,
|
12
14
|
"description": "",
|
13
15
|
"file_ext": "jpg",
|
14
16
|
"file_size": 578141,
|
15
17
|
"file_url": "https://static1.e621.net/data/d7/74/d7745463ef599bb21702fd173c103d41.jpg",
|
16
18
|
"has_children": false,
|
17
19
|
"has_comments": true,
|
18
20
|
"has_notes": false,
|
19
21
|
"height": 1000,
|
20
22
|
"id": 141529,
|
21
23
|
"md5": "d7745463ef599bb21702fd173c103d41",
|
22
24
|
"parent_id": null,
|
23
25
|
"preview_height": 150,
|
24
26
|
"preview_url": "https://static1.e621.net/data/preview/d7/74/d7745463ef599bb21702fd173c103d41.jpg",
|
25
27
|
"preview_width": 150,
|
26
28
|
"rating": "s",
|
27
29
|
"sample_height": 800,
|
28
30
|
"sample_url": "https://static1.e621.net/data/sample/d7/74/d7745463ef599bb21702fd173c103d41.jpg",
|
29
31
|
"sample_width": 800,
|
30
32
|
"score": 2,
|
31
33
|
"source": "http://furaffinity.net/full/4314346",
|
32
34
|
"sources": [
|
33
35
|
"http://furaffinity.net/full/4314346"
|
34
36
|
],
|
35
37
|
"status": "active",
|
36
38
|
"tags": "azazial breasts cellphone claws clothed clothing feline female hair long_hair mammal nitzleplick phone solo stripes tiger wings",
|
37
39
|
"width": 1000
|
@@ -0,0 +1,19 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Server: cloudflare-nginx
|
3
|
+
Date: Wed, 11 Mar 2015 02:05:31 GMT
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Content-Length: 1001
|
6
|
+
Connection: keep-alive
|
7
|
+
Set-Cookie: __cfduid=d19a066db48d4ea1ded86b954457e173b1426039530; expires=Thu, 10-Mar-16 02:05:30 GMT; path=/; domain=.e621.net; HttpOnly
|
8
|
+
Status: 200 OK
|
9
|
+
Cache-Control: private, max-age=0, must-revalidate
|
10
|
+
ETag: "54e9e0dac5b2350ef3e004da5f506313"
|
11
|
+
X-Runtime: 317
|
12
|
+
Set-Cookie: blacklist_avatars=true; path=/
|
13
|
+
Set-Cookie:
|
14
|
+
Set-Cookie: blacklist_users=false; path=/
|
15
|
+
Set-Cookie: e621=BAh7BjoPc2Vzc2lvbl9pZCIlZDk5Y2MxNDZkOGVlNGM2ZTZjMDJjMmUxYzdhNjBiMDI%3D--7d67f45485d155594ffc7d3de96ecd0290038616; path=/; expires=Wed, 18-Mar-2015 02:05:31 GMT; HttpOnly
|
16
|
+
X-Powered-By: Phusion Passenger 4.0.33
|
17
|
+
CF-RAY: 1c53b1d953d6184c-EWR
|
18
|
+
|
19
|
+
{"preview_width":150,"score":2,"tags":"azazial breasts cellphone claws clothed clothing feline female hair long_hair mammal nitzleplick phone solo stripes tiger wings","sources":["http://furaffinity.net/full/4314346"],"file_url":"https://static1.e621.net/data/d7/74/d7745463ef599bb21702fd173c103d41.jpg","md5":"d7745463ef599bb21702fd173c103d41","status":"active","children":"","preview_height":150,"height":1000,"sample_width":800,"artist":["nitzleplick"],"has_comments":true,"file_ext":"jpg","file_size":578141,"description":"","sample_height":800,"width":1000,"source":"http://furaffinity.net/full/4314346","sample_url":"https://static1.e621.net/data/sample/d7/74/d7745463ef599bb21702fd173c103d41.jpg","preview_url":"https://static1.e621.net/data/preview/d7/74/d7745463ef599bb21702fd173c103d41.jpg","has_notes":false,"parent_id":null,"rating":"s","change":2369768,"author":"Azazial","created_at":{"json_class":"Time","n":180941000,"s":1307623046},"id":141529,"has_children":false,"creator_id":11962}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
HTTP/1.1 302 Found
|
2
|
+
Server: cloudflare-nginx
|
3
|
+
Date: Wed, 11 Mar 2015 00:21:40 GMT
|
4
|
+
Content-Type: text/html; charset=utf-8
|
5
|
+
Transfer-Encoding: chunked
|
6
|
+
Connection: keep-alive
|
7
|
+
Set-Cookie: __cfduid=d821549144e2fb2e0c692617234a62e101426033300; expires=Thu, 10-Mar-16 00:21:40 GMT; path=/; domain=.e621.net; HttpOnly
|
8
|
+
Status: 302 Found
|
9
|
+
Cache-Control: no-cache
|
10
|
+
X-Runtime: 31
|
11
|
+
Set-Cookie: blacklist_avatars=true; path=/
|
12
|
+
Set-Cookie:
|
13
|
+
Set-Cookie: blacklist_users=false; path=/
|
14
|
+
Set-Cookie: e621=BAh7BjoPc2Vzc2lvbl9pZCIlNWE1M2I3NjE3Mjg3ZjdkZDBjYTZjNDYwMGQzNmRhMTI%3D--2c5b27baaaffa5c30147935d029987e446373c5c; path=/; expires=Wed, 18-Mar-2015 00:21:40 GMT; HttpOnly
|
15
|
+
Location: https://e621.net/post/show/141529/azazial-breasts-cellphone-claws-clothed-clothing-f
|
16
|
+
X-Powered-By: Phusion Passenger 4.0.33
|
17
|
+
CF-RAY: 1c5319c13f0006a3-EWR
|
18
|
+
|
19
|
+
<html><body>You are being <a href="https://e621.net/post/show/141529/azazial-breasts-cellphone-claws-clothed-clothing-f">redirected</a>.</body></html>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'random_yiff/cli'
|
3
|
+
|
4
|
+
$0 = 'yiff'
|
5
|
+
ARGV.clear
|
6
|
+
|
7
|
+
describe RandomYiff::Cli do
|
8
|
+
include_context :e621
|
9
|
+
|
10
|
+
let(:launchy) { double(Launchy) }
|
11
|
+
|
12
|
+
describe '#open' do
|
13
|
+
it 'opens random furry pr0n via Launchy' do
|
14
|
+
allow(Launchy).to receive(:open).with(e621_image_url)
|
15
|
+
RandomYiff::Cli.start
|
16
|
+
expect(Launchy).to have_received(:open).with(e621_image_url)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RandomYiff::E621 do
|
4
|
+
include_context :e621
|
5
|
+
subject(:yiff) { RandomYiff::E621.new }
|
6
|
+
|
7
|
+
describe '.post_uri' do
|
8
|
+
it 'Returns a uri object for a random e621 post' do
|
9
|
+
RandomYiff::E621.post_uri
|
10
|
+
expect(WebMock).to have_requested(:get, e621_random_route)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '#post_uri' do
|
15
|
+
it 'Returns a uri object for a random e621 post' do
|
16
|
+
expect(yiff.post_uri).to eq(URI(e621_post_url))
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe '#post' do
|
21
|
+
it 'Returns a json object for a random post from e621' do
|
22
|
+
expect(yiff.post).to eq(e621_post_json)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe '#file_uri' do
|
27
|
+
it 'Returns a uri object for a random furry pr0n file' do
|
28
|
+
expect(yiff.file_uri).to eq(URI(e621_image_url))
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe '#file' do
|
33
|
+
it 'Download random furry pr0n file' do
|
34
|
+
yiff.file
|
35
|
+
expect(WebMock).to have_requested(:get, e621_image_url)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe '#file_name' do
|
40
|
+
it 'Returns the file name' do
|
41
|
+
expect(yiff.file_name).to eq(e621_image_name)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe '#initialize' do
|
46
|
+
it 'yields self if block given' do
|
47
|
+
expect { |b| RandomYiff::E621.new(&b) }
|
48
|
+
.to yield_with_args(RandomYiff::E621)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe '#not_a_method' do
|
53
|
+
it 'Raises NoMethodError' do
|
54
|
+
expect { yiff.not_a_method }.to raise_error(NoMethodError)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'coveralls'
|
2
|
+
Coveralls.wear!
|
3
|
+
|
4
|
+
require 'rspec'
|
5
|
+
require 'webmock/rspec'
|
6
|
+
require 'random_yiff'
|
7
|
+
|
8
|
+
RSpec.shared_context :e621 do
|
9
|
+
let(:e621_random_route) do
|
10
|
+
'https://e621.net/post/random'
|
11
|
+
end
|
12
|
+
|
13
|
+
let(:e621_post_response) do
|
14
|
+
File.read('spec/fixtures/random_post_response.txt')
|
15
|
+
end
|
16
|
+
|
17
|
+
let(:e621_post_raw) do
|
18
|
+
File.read('spec/fixtures/random_post.txt')
|
19
|
+
end
|
20
|
+
|
21
|
+
let(:e621_post_json) do
|
22
|
+
JSON.load(File.read('spec/fixtures/random_post.json'))
|
23
|
+
end
|
24
|
+
|
25
|
+
let(:e621_post_url) do
|
26
|
+
'https://e621.net/post/show/141529/azazial-breasts-cellphone-claws-clothed-clothing-f?format=json'
|
27
|
+
end
|
28
|
+
|
29
|
+
let(:e621_image_url) do
|
30
|
+
'https://static1.e621.net/data/d7/74/d7745463ef599bb21702fd173c103d41.jpg'
|
31
|
+
end
|
32
|
+
|
33
|
+
let(:e621_image_name) do
|
34
|
+
'd7745463ef599bb21702fd173c103d41.jpg'
|
35
|
+
end
|
36
|
+
|
37
|
+
before do
|
38
|
+
stub_request(:get, e621_random_route).to_return(e621_post_response)
|
39
|
+
stub_request(:get, e621_post_url).to_return(e621_post_raw)
|
40
|
+
stub_request(:get, e621_image_url)
|
41
|
+
end
|
42
|
+
end
|
metadata
ADDED
@@ -0,0 +1,167 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: random_yiff
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- James Awesome
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-03-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: launchy
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.7'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.7'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '10.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.2'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.2'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: webmock
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.20'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.20'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: coveralls
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
description:
|
112
|
+
email:
|
113
|
+
- james@wesome.nyc
|
114
|
+
executables:
|
115
|
+
- yiff
|
116
|
+
extensions: []
|
117
|
+
extra_rdoc_files: []
|
118
|
+
files:
|
119
|
+
- ".gitignore"
|
120
|
+
- ".travis.yml"
|
121
|
+
- Gemfile
|
122
|
+
- LICENSE.txt
|
123
|
+
- README.md
|
124
|
+
- Rakefile
|
125
|
+
- bin/yiff
|
126
|
+
- lib/random_yiff.rb
|
127
|
+
- lib/random_yiff/cli.rb
|
128
|
+
- lib/random_yiff/e621.rb
|
129
|
+
- lib/random_yiff/version.rb
|
130
|
+
- random_yiff.gemspec
|
131
|
+
- spec/fixtures/random_post.json
|
132
|
+
- spec/fixtures/random_post.txt
|
133
|
+
- spec/fixtures/random_post_response.txt
|
134
|
+
- spec/random_yiff/cli_spec.rb
|
135
|
+
- spec/random_yiff/e621_spec.rb
|
136
|
+
- spec/spec_helper.rb
|
137
|
+
homepage: https://github.com/jamesawesome/random_yiff
|
138
|
+
licenses:
|
139
|
+
- MIT
|
140
|
+
metadata: {}
|
141
|
+
post_install_message:
|
142
|
+
rdoc_options: []
|
143
|
+
require_paths:
|
144
|
+
- lib
|
145
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '0'
|
155
|
+
requirements: []
|
156
|
+
rubyforge_project:
|
157
|
+
rubygems_version: 2.4.5
|
158
|
+
signing_key:
|
159
|
+
specification_version: 4
|
160
|
+
summary: Get random furry pr0n from e621.net
|
161
|
+
test_files:
|
162
|
+
- spec/fixtures/random_post.json
|
163
|
+
- spec/fixtures/random_post.txt
|
164
|
+
- spec/fixtures/random_post_response.txt
|
165
|
+
- spec/random_yiff/cli_spec.rb
|
166
|
+
- spec/random_yiff/e621_spec.rb
|
167
|
+
- spec/spec_helper.rb
|