random_yiff 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 +13 -5
- data/.travis.yml +10 -4
- data/lib/random_yiff/cli.rb +36 -0
- data/lib/random_yiff/version.rb +1 -1
- data/random_yiff.gemspec +1 -0
- data/spec/random_yiff/cli_spec.rb +43 -2
- data/spec/spec_helper.rb +1 -1
- metadata +34 -20
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YTI3ZDM4MjA4NDE3ZWRiMjFhOTY1YjFmNjk4MjQ0MDFiMDMzN2M3NA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NmJjMTY5MDA3Yzc1MThhNGI5MGQ5OTlmYjg0NWQyNTAwNTFhMDc1YQ==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YjMyOTgzYmQyODFiODc5ZDJiNGI3N2E4ZDMyZjE4MDdlZmE3NmM3OTBhMjQz
|
10
|
+
MTZkZGFjNmQzMTRjYTc1YjE3N2NjNWRkYzA0MGMyZDcwMGE4YzBmZjczYThi
|
11
|
+
YmU2MjVmZThiZTJjMDg3NjgyODg1NTlmOTdkOTAwN2FhMDU1NDc=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZWNjYjZmNzhlMzZjOWYxNmRjMzRmNjE4MzY1ODY5OTRjZTFmMDY1MDBiOWY5
|
14
|
+
ODhlNGE1NmM0YTcxM2RhYjM3YmIxNGI5NTIxNTlhYzM1NGVjNmEzOTkwN2I2
|
15
|
+
YTdkNjE0N2MwOTRlMmUyNTgwY2FiYjVjYWU0YzAzOGUwMjc5ZDc=
|
data/.travis.yml
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
|
4
|
-
bundler_args: --jobs 7
|
3
|
+
- 2.2.0
|
4
|
+
bundler_args: "--jobs 7"
|
5
5
|
gemfile:
|
6
|
-
|
6
|
+
- Gemfile
|
7
7
|
script:
|
8
|
-
|
8
|
+
- rspec --format documentation --color
|
9
|
+
deploy:
|
10
|
+
provider: rubygems
|
11
|
+
api_key:
|
12
|
+
secure: A5brsfww6hOoGIlYcEihr3AIohFmJKJj4oRVwnonXq2sZ366wDETkQblV3hgss0/CnD18WWn/H8ncu9qLpefSDjsdzYF1/Cz5utsh8rMpE41OTsRQtaFozefJ1PyVY194M4ifVhUZr+i8RsQqHhS5NsgnBSqsoFtF7Ji3/NoSn8=
|
13
|
+
on:
|
14
|
+
tags: true
|
data/lib/random_yiff/cli.rb
CHANGED
@@ -1,14 +1,50 @@
|
|
1
1
|
require 'thor'
|
2
2
|
require 'launchy'
|
3
|
+
require 'asciiart'
|
3
4
|
|
4
5
|
module RandomYiff
|
5
6
|
class Cli < Thor
|
6
7
|
desc 'open', 'Default action, open furry pr0n in webbrowser'
|
8
|
+
|
7
9
|
def open
|
8
10
|
RandomYiff::E621.new do |yiff|
|
9
11
|
Launchy.open(yiff.file_url)
|
10
12
|
end
|
11
13
|
end
|
14
|
+
|
15
|
+
desc 'ascii', 'Print furry pr0n as ascii'
|
16
|
+
|
17
|
+
def ascii
|
18
|
+
yiff = random_image
|
19
|
+
puts AsciiArt.new(yiff.file_url).to_ascii_art(color: true, width: 160)
|
20
|
+
end
|
21
|
+
|
22
|
+
desc 'download', 'Download furry pr0n'
|
23
|
+
|
24
|
+
method_option :path,
|
25
|
+
desc: 'path of directory to download furry pr0n into',
|
26
|
+
type: :string,
|
27
|
+
default: './'
|
28
|
+
|
29
|
+
def download
|
30
|
+
RandomYiff::E621.new do |yiff|
|
31
|
+
path = File.join(options[:path], yiff.file_name)
|
32
|
+
File.write(path, yiff.file)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
12
36
|
default_task :open
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
class NotAnImage < StandardError; end
|
41
|
+
|
42
|
+
def random_image
|
43
|
+
RandomYiff::E621.new do |yiff|
|
44
|
+
fail NotAnImage if yiff.file_ext == 'flv'
|
45
|
+
end
|
46
|
+
rescue NotAnImage
|
47
|
+
random_image
|
48
|
+
end
|
13
49
|
end
|
14
50
|
end
|
data/lib/random_yiff/version.rb
CHANGED
data/random_yiff.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.add_dependency 'thor'
|
21
21
|
spec.add_dependency 'launchy'
|
22
|
+
spec.add_dependency 'asciiart'
|
22
23
|
spec.add_development_dependency 'bundler', '~> 1.7'
|
23
24
|
spec.add_development_dependency 'rake', '~> 10.0'
|
24
25
|
spec.add_development_dependency 'rspec', '~> 3.2'
|
@@ -7,8 +7,6 @@ ARGV.clear
|
|
7
7
|
describe RandomYiff::Cli do
|
8
8
|
include_context :e621
|
9
9
|
|
10
|
-
let(:launchy) { double(Launchy) }
|
11
|
-
|
12
10
|
describe '#open' do
|
13
11
|
it 'opens random furry pr0n via Launchy' do
|
14
12
|
allow(Launchy).to receive(:open).with(e621_image_url)
|
@@ -16,4 +14,47 @@ describe RandomYiff::Cli do
|
|
16
14
|
expect(Launchy).to have_received(:open).with(e621_image_url)
|
17
15
|
end
|
18
16
|
end
|
17
|
+
|
18
|
+
describe '#download' do
|
19
|
+
before do
|
20
|
+
allow(File).to receive(:write).and_return(true)
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'When called without options' do
|
24
|
+
it 'downloads random furry pr0n to pwd' do
|
25
|
+
RandomYiff::Cli.start(['download'])
|
26
|
+
expect(File).to have_received(:write)
|
27
|
+
.with("./#{e621_image_name}", 'yiff')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'When called with `path` option' do
|
32
|
+
it 'downloads random furry pr0n into path provided' do
|
33
|
+
RandomYiff::Cli.start(%w(download --path /foo))
|
34
|
+
expect(File).to have_received(:write)
|
35
|
+
.with("/foo/#{e621_image_name}", 'yiff')
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe '#ascii' do
|
41
|
+
let(:furry_pr0n) { instance_double(AsciiArt) }
|
42
|
+
it 'prints a random furry pr0n image as ascii' do
|
43
|
+
allow(AsciiArt).to receive(:new).and_return(furry_pr0n)
|
44
|
+
allow(furry_pr0n).to receive(:to_ascii_art).and_return('yiff')
|
45
|
+
expect { RandomYiff::Cli.start(['ascii']) }
|
46
|
+
.to output("yiff\n").to_stdout
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe '#random_image' do
|
51
|
+
subject(:cli) { RandomYiff::Cli.new }
|
52
|
+
|
53
|
+
it 'reinitializes RandomYiff::E621 until it finds an image' do
|
54
|
+
furry_pr0n = double(RandomYiff::E621)
|
55
|
+
expect(RandomYiff::E621).to receive(:new).twice.and_yield(furry_pr0n)
|
56
|
+
expect(furry_pr0n).to receive(:file_ext).twice.and_return('flv', 'jpg')
|
57
|
+
cli.send(:random_image)
|
58
|
+
end
|
59
|
+
end
|
19
60
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -37,6 +37,6 @@ RSpec.shared_context :e621 do
|
|
37
37
|
before do
|
38
38
|
stub_request(:get, e621_random_route).to_return(e621_post_response)
|
39
39
|
stub_request(:get, e621_post_url).to_return(e621_post_raw)
|
40
|
-
stub_request(:get, e621_image_url)
|
40
|
+
stub_request(:get, e621_image_url).to_return(body: 'yiff')
|
41
41
|
end
|
42
42
|
end
|
metadata
CHANGED
@@ -1,111 +1,125 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: random_yiff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Awesome
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ! '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ! '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: launchy
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ! '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: asciiart
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
|
-
- -
|
59
|
+
- - ~>
|
46
60
|
- !ruby/object:Gem::Version
|
47
61
|
version: '1.7'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- -
|
66
|
+
- - ~>
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '1.7'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- -
|
73
|
+
- - ~>
|
60
74
|
- !ruby/object:Gem::Version
|
61
75
|
version: '10.0'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- -
|
80
|
+
- - ~>
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '10.0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rspec
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- -
|
87
|
+
- - ~>
|
74
88
|
- !ruby/object:Gem::Version
|
75
89
|
version: '3.2'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- -
|
94
|
+
- - ~>
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '3.2'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: webmock
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- -
|
101
|
+
- - ~>
|
88
102
|
- !ruby/object:Gem::Version
|
89
103
|
version: '1.20'
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- -
|
108
|
+
- - ~>
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '1.20'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: coveralls
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
|
-
- -
|
115
|
+
- - ! '>='
|
102
116
|
- !ruby/object:Gem::Version
|
103
117
|
version: '0'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
|
-
- -
|
122
|
+
- - ! '>='
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '0'
|
111
125
|
description:
|
@@ -116,8 +130,8 @@ executables:
|
|
116
130
|
extensions: []
|
117
131
|
extra_rdoc_files: []
|
118
132
|
files:
|
119
|
-
-
|
120
|
-
-
|
133
|
+
- .gitignore
|
134
|
+
- .travis.yml
|
121
135
|
- Gemfile
|
122
136
|
- LICENSE.txt
|
123
137
|
- README.md
|
@@ -144,12 +158,12 @@ require_paths:
|
|
144
158
|
- lib
|
145
159
|
required_ruby_version: !ruby/object:Gem::Requirement
|
146
160
|
requirements:
|
147
|
-
- -
|
161
|
+
- - ! '>='
|
148
162
|
- !ruby/object:Gem::Version
|
149
163
|
version: '0'
|
150
164
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
165
|
requirements:
|
152
|
-
- -
|
166
|
+
- - ! '>='
|
153
167
|
- !ruby/object:Gem::Version
|
154
168
|
version: '0'
|
155
169
|
requirements: []
|