cowsay 0.0.1 → 0.3.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/LICENSE.txt +2 -2
- data/bin/cowsay +24 -2
- data/cowsay.gemspec +1 -1
- data/lib/cowsay.rb +22 -5
- data/lib/cowsay/character.rb +1 -1
- data/lib/cowsay/character/base.rb +3 -1
- data/lib/cowsay/version.rb +1 -1
- metadata +12 -22
- data/lib/cowsay/character/template.rb +0 -12
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8666afebea3d0cad15b1e827c52f43ee14e85f0a
|
4
|
+
data.tar.gz: 422b6e87c16ff33c39c77ad7ba22e2644501fc40
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ec61d8faaaad4d4d359399f8d79218042e72e62f6498ffa8ed323435b204eb4bd680999b78af697e2e64268989cf736ce24e75d198c52e2fc63a23e111ee1d7f
|
7
|
+
data.tar.gz: 6fe64d3b196612410ae82ac64209ae110ff88e7471afabf743146e14752349819b55a13acf420a895152c93aed5de87791762e0bd668c44b0809360232e83d51
|
data/LICENSE.txt
CHANGED
data/bin/cowsay
CHANGED
@@ -1,6 +1,28 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'cowsay'
|
4
|
+
require 'optparse'
|
4
5
|
|
5
|
-
|
6
|
-
|
6
|
+
options = {}
|
7
|
+
OptionParser.new do |opts|
|
8
|
+
opts.banner = "Usage: cowsay [-h] [-f cowfile] [-l] [message]"
|
9
|
+
opts.on("-l", "List available cow files") do |cowfile|
|
10
|
+
options['list'] = true
|
11
|
+
end
|
12
|
+
opts.on("-f COWFILE", "Specify a cow file") do |cowfile|
|
13
|
+
options['cowfile'] = cowfile
|
14
|
+
end
|
15
|
+
end.parse!
|
16
|
+
|
17
|
+
if options['list']
|
18
|
+
puts "Cow files:"
|
19
|
+
puts Cowsay.character_classes.join(' ')
|
20
|
+
else
|
21
|
+
if ARGV.any?
|
22
|
+
message = ARGV.join(' ')
|
23
|
+
else
|
24
|
+
#retrieve any piped input, otherwise use the empty string.
|
25
|
+
message = STDIN.tty? ? '' : ARGF.read.chomp
|
26
|
+
end
|
27
|
+
puts Cowsay.say(message, options['cowfile'])
|
28
|
+
end
|
data/cowsay.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.email = ['johnnyt@moneydesktop.com']
|
11
11
|
gem.description = %q{ASCII art avatars emote your messages}
|
12
12
|
gem.summary = gem.description
|
13
|
-
gem.homepage = 'https://github.com/
|
13
|
+
gem.homepage = 'https://github.com/moneydesktop/cowsay'
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
16
16
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
data/lib/cowsay.rb
CHANGED
@@ -1,11 +1,28 @@
|
|
1
1
|
require 'cowsay/version'
|
2
|
+
require 'cowsay/character'
|
2
3
|
|
3
|
-
module Cowsay
|
4
|
-
module_function
|
4
|
+
module ::Cowsay
|
5
|
+
module_function # all instance methods are available on the module (class) level
|
5
6
|
|
6
|
-
|
7
|
+
def random_character
|
8
|
+
random_class = Character.const_get(character_classes[rand(character_classes.length)])
|
9
|
+
random_class.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def character_classes
|
13
|
+
@character_classes ||= Character.constants.map { |c| c.to_sym } - [:Base, :Template]
|
14
|
+
end
|
7
15
|
|
8
|
-
def say(message)
|
9
|
-
|
16
|
+
def say(message, character)
|
17
|
+
character ||= 'cow'
|
18
|
+
if character == 'random'
|
19
|
+
random_character.say(message)
|
20
|
+
else
|
21
|
+
if character_classes.include? character.capitalize.to_sym
|
22
|
+
Character.const_get(character.capitalize).say(message)
|
23
|
+
else
|
24
|
+
puts "No cow file found for #{character}. Use the -l flag to see a list of available cow files."
|
25
|
+
end
|
26
|
+
end
|
10
27
|
end
|
11
28
|
end
|
data/lib/cowsay/character.rb
CHANGED
@@ -2,7 +2,7 @@ module Cowsay
|
|
2
2
|
module Character
|
3
3
|
|
4
4
|
class Base
|
5
|
-
MAX_LINE_LENGTH = 36
|
5
|
+
MAX_LINE_LENGTH = 36 unless defined?(MAX_LINE_LENGTH)
|
6
6
|
|
7
7
|
def self.say(message)
|
8
8
|
new.say(message)
|
@@ -63,6 +63,8 @@ module Cowsay
|
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
|
+
lines << new_line.chomp unless new_line.length.zero?
|
67
|
+
|
66
68
|
lines
|
67
69
|
end
|
68
70
|
end
|
data/lib/cowsay/version.rb
CHANGED
metadata
CHANGED
@@ -1,30 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cowsay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- JohnnyT
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2016-09-29 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
description: ASCII art avatars emote your messages
|
@@ -35,7 +32,7 @@ executables:
|
|
35
32
|
extensions: []
|
36
33
|
extra_rdoc_files: []
|
37
34
|
files:
|
38
|
-
- .gitignore
|
35
|
+
- ".gitignore"
|
39
36
|
- Gemfile
|
40
37
|
- LICENSE.txt
|
41
38
|
- README.md
|
@@ -61,39 +58,32 @@ files:
|
|
61
58
|
- lib/cowsay/character/sheep.rb
|
62
59
|
- lib/cowsay/character/stegosaurus.rb
|
63
60
|
- lib/cowsay/character/stimpy.rb
|
64
|
-
- lib/cowsay/character/template.rb
|
65
61
|
- lib/cowsay/character/turkey.rb
|
66
62
|
- lib/cowsay/character/turtle.rb
|
67
63
|
- lib/cowsay/character/tux.rb
|
68
64
|
- lib/cowsay/version.rb
|
69
|
-
homepage: https://github.com/
|
65
|
+
homepage: https://github.com/moneydesktop/cowsay
|
70
66
|
licenses: []
|
67
|
+
metadata: {}
|
71
68
|
post_install_message:
|
72
69
|
rdoc_options: []
|
73
70
|
require_paths:
|
74
71
|
- lib
|
75
72
|
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
-
none: false
|
77
73
|
requirements:
|
78
|
-
- -
|
74
|
+
- - ">="
|
79
75
|
- !ruby/object:Gem::Version
|
80
76
|
version: '0'
|
81
|
-
segments:
|
82
|
-
- 0
|
83
|
-
hash: -3959670294971125840
|
84
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
-
none: false
|
86
78
|
requirements:
|
87
|
-
- -
|
79
|
+
- - ">="
|
88
80
|
- !ruby/object:Gem::Version
|
89
81
|
version: '0'
|
90
|
-
segments:
|
91
|
-
- 0
|
92
|
-
hash: -3959670294971125840
|
93
82
|
requirements: []
|
94
83
|
rubyforge_project:
|
95
|
-
rubygems_version:
|
84
|
+
rubygems_version: 2.5.1
|
96
85
|
signing_key:
|
97
|
-
specification_version:
|
86
|
+
specification_version: 4
|
98
87
|
summary: ASCII art avatars emote your messages
|
99
88
|
test_files: []
|
89
|
+
has_rdoc:
|