cowsay 0.0.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,5 +1,5 @@
1
- Copyright (c) 2012 JohnnyT
2
- Copyright (C) 2012 Cowsay contributors https://github.com/johnnyt/cowsay/contributors
1
+ Copyright 2012 MoneyDesktop Inc.
2
+ Copyright Cowsay contributors https://github.com/moneydesktop/cowsay/contributors
3
3
 
4
4
  MIT License
5
5
 
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
- message = ARGV.join(' ')
6
- puts Cowsay.say message
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/johnnyt/cowsay'
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
- autoload :Character, 'cowsay/character'
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
- puts Character::Cow.say message
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
@@ -1,9 +1,9 @@
1
1
  module Cowsay
2
2
  module Character
3
+ autoload :Base, 'cowsay/character/base'
3
4
  end
4
5
  end
5
6
 
6
- require 'cowsay/character/base'
7
7
  Dir[File.expand_path('character/*.rb', File.dirname(__FILE__))].each do |character|
8
8
  require character
9
9
  end
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Cowsay
2
- VERSION = '0.0.1'
2
+ VERSION = '0.3.0'
3
3
  end
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.1
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: 2012-09-18 00:00:00.000000000 Z
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/johnnyt/cowsay
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: 1.8.24
84
+ rubygems_version: 2.5.1
96
85
  signing_key:
97
- specification_version: 3
86
+ specification_version: 4
98
87
  summary: ASCII art avatars emote your messages
99
88
  test_files: []
89
+ has_rdoc:
@@ -1,12 +0,0 @@
1
- module Cowsay
2
- module Character
3
-
4
- class Template < Base
5
- def template
6
- <<-TEMPLATE
7
- TEMPLATE
8
- end
9
- end
10
-
11
- end
12
- end