linux_fortune 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/Manifest +7 -0
- data/README.rdoc +67 -0
- data/Rakefile +13 -0
- data/lib/linux_fortune.rb +221 -0
- data/linux_fortune.gemspec +33 -0
- data/test/test_helper.rb +3 -0
- data/test/test_linux_fortune.rb +74 -0
- data.tar.gz.sig +0 -0
- metadata +98 -0
- metadata.gz.sig +0 -0
data/History.txt
ADDED
data/Manifest
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
= LinuxFortune
|
2
|
+
|
3
|
+
* http://github.com/srejbi/linux_fortune_gem
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
|
7
|
+
Provides a wrapper to the 'fortune' program on linux (and unix /parameters
|
8
|
+
might differ/) platforms. As most (good) web servers are running on these
|
9
|
+
platforms, a 'local' fortune gem seemed like a good idea to play around and
|
10
|
+
discover ruby gem development through a practical example.
|
11
|
+
|
12
|
+
If you need a network-based fortune service, though, you might want to check out
|
13
|
+
lacco's ruby_fortunes at http://github.com/lacco/ruby-fortunes
|
14
|
+
|
15
|
+
== FEATURES:
|
16
|
+
|
17
|
+
* allows generating messages from all or specific fortune database modules
|
18
|
+
* possibility to generate short (up to LinuxFortune.short_length characters) messages
|
19
|
+
|
20
|
+
== ISSUES:
|
21
|
+
|
22
|
+
* LinuxFortune.long = true seem to have no effect due to issue with fortune (?)
|
23
|
+
|
24
|
+
== SYNOPSIS:
|
25
|
+
|
26
|
+
To use it:
|
27
|
+
|
28
|
+
require 'rubygems'
|
29
|
+
require 'linux_fortune'
|
30
|
+
f = LinuxFortune.generate("chucknorris")
|
31
|
+
puts f.body
|
32
|
+
|
33
|
+
== REQUIREMENTS:
|
34
|
+
|
35
|
+
* fortune must be installed, with some fortune db modules
|
36
|
+
|
37
|
+
== INSTALL:
|
38
|
+
|
39
|
+
* gentoo:
|
40
|
+
sudo emerge fortune
|
41
|
+
* ubuntu, debian:
|
42
|
+
apt-get install fortune
|
43
|
+
|
44
|
+
== LICENSE:
|
45
|
+
|
46
|
+
(The MIT License)
|
47
|
+
|
48
|
+
Copyright (c) 2010 György Schreiber
|
49
|
+
|
50
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
51
|
+
a copy of this software and associated documentation files (the
|
52
|
+
'Software'), to deal in the Software without restriction, including
|
53
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
54
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
55
|
+
permit persons to whom the Software is furnished to do so, subject to
|
56
|
+
the following conditions:
|
57
|
+
|
58
|
+
The above copyright notice and this permission notice shall be
|
59
|
+
included in all copies or substantial portions of the Software.
|
60
|
+
|
61
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
62
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
63
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
64
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
65
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
66
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
67
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'echoe'
|
4
|
+
|
5
|
+
Echoe.new('linux_fortune', '0.0.1') do |p|
|
6
|
+
p.description = "A gem that provides a wrapper for the linux fortune program"
|
7
|
+
p.url = "http://github.com/srejbi/linux_fortune"
|
8
|
+
p.author = "George Schreiber"
|
9
|
+
p.email = "gy.schreiber @nospam@ mobility.hu"
|
10
|
+
p.ignore_pattern = ["tmp/*", "script/*"]
|
11
|
+
p.development_dependencies = []
|
12
|
+
end
|
13
|
+
|
@@ -0,0 +1,221 @@
|
|
1
|
+
module LinuxFortune
|
2
|
+
# <tt>@@binary_path</tt> - path to the 'fortune' binary
|
3
|
+
#mattr_accessor :binary_path
|
4
|
+
@@binary_path = "/usr/bin/fortune"
|
5
|
+
|
6
|
+
# sets the path of the linux fortune program ("/usr/bin/fortune" by default)
|
7
|
+
def self.binary_path=(path)
|
8
|
+
@@binary_path = path unless @@binary_path == path
|
9
|
+
end
|
10
|
+
|
11
|
+
# gets the current path to the linux fortune program
|
12
|
+
def self.binary_path
|
13
|
+
@@binary_path
|
14
|
+
end
|
15
|
+
|
16
|
+
@@offensive = false
|
17
|
+
|
18
|
+
# <tt>off</tt> - Choose only from potentially offensive aphorisms. This option is ignored if a fortune directory is specified.
|
19
|
+
def self.offensive=(off = true)
|
20
|
+
@@offensive = off
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.offensive
|
24
|
+
@@offensive
|
25
|
+
end
|
26
|
+
|
27
|
+
@@equalsize = false
|
28
|
+
|
29
|
+
# <tt>eq</tt> - Consider all fortune files to be of equal size (see discussion below on multiple files).
|
30
|
+
def self.equalsize=(eq = true)
|
31
|
+
@@equalsize = eq
|
32
|
+
end
|
33
|
+
|
34
|
+
# returns the current state of <tt>equalsize</tt>
|
35
|
+
def self.equalsize
|
36
|
+
@@equalsize
|
37
|
+
end
|
38
|
+
|
39
|
+
@@short_length = 160
|
40
|
+
|
41
|
+
# Set the longest fortune length (in characters) considered to be ``short'' (the default is 160). All
|
42
|
+
# fortunes longer than this are considered ``long''. Be careful! If you set the length too short and
|
43
|
+
# ask for short fortunes, or too long and ask for long ones, fortune goes into a never-ending thrash
|
44
|
+
# loop.
|
45
|
+
def self.short_length=(shortlength = 160)
|
46
|
+
@@short_length = shortlength
|
47
|
+
end
|
48
|
+
|
49
|
+
# gets the current maximum length considered short
|
50
|
+
def self.short_length
|
51
|
+
@@short_length
|
52
|
+
end
|
53
|
+
|
54
|
+
@@short = false
|
55
|
+
|
56
|
+
# turns on/off short message generation
|
57
|
+
def self.short=(shortfortunes = true)
|
58
|
+
@@long = false if shortfortunes
|
59
|
+
@@short = shortfortunes
|
60
|
+
end
|
61
|
+
|
62
|
+
# get the state of short message generation
|
63
|
+
def self.short
|
64
|
+
@@short
|
65
|
+
end
|
66
|
+
|
67
|
+
@@long = false
|
68
|
+
|
69
|
+
# turns on/off long message generation
|
70
|
+
def self.long=(longfortunes = true)
|
71
|
+
@@short = false if longfortunes
|
72
|
+
@@long = longfortunes
|
73
|
+
end
|
74
|
+
|
75
|
+
# gets the state of long message generation
|
76
|
+
def self.long
|
77
|
+
@@long
|
78
|
+
end
|
79
|
+
|
80
|
+
@@ignore_case = true
|
81
|
+
|
82
|
+
# turns on/off case-insensitivity for search
|
83
|
+
def self.ignore_case=(ignore = true)
|
84
|
+
@@ignore_case = ignore
|
85
|
+
end
|
86
|
+
|
87
|
+
# gets the state of case-insensitivity
|
88
|
+
def self.ignore_case
|
89
|
+
@@ignore_case
|
90
|
+
end
|
91
|
+
|
92
|
+
# fortune source
|
93
|
+
class FortuneSource
|
94
|
+
@path = "/usr/share/fortune"
|
95
|
+
@source = ""
|
96
|
+
@weight = 0
|
97
|
+
|
98
|
+
def init(source = nil, path = "/usr/share/fortune", weight = nil )
|
99
|
+
@source = source
|
100
|
+
@path = path
|
101
|
+
@weight = weight
|
102
|
+
end
|
103
|
+
|
104
|
+
# sets the fortune source path
|
105
|
+
def path=(srcpath)
|
106
|
+
@path = srcpath
|
107
|
+
end
|
108
|
+
|
109
|
+
# gets the source path (directory with source)
|
110
|
+
def path
|
111
|
+
@path
|
112
|
+
end
|
113
|
+
|
114
|
+
# sets the source file name (file in FortuneSource.path)
|
115
|
+
def source=(src)
|
116
|
+
@source = src
|
117
|
+
end
|
118
|
+
|
119
|
+
# gets source file name
|
120
|
+
def source
|
121
|
+
@source
|
122
|
+
end
|
123
|
+
|
124
|
+
def weight
|
125
|
+
@weight
|
126
|
+
end
|
127
|
+
|
128
|
+
# gets full path to the source
|
129
|
+
def fullpath
|
130
|
+
File.join(@path, @source)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
|
135
|
+
# The Fortune class is basicly 2 strings, source and body
|
136
|
+
class Fortune
|
137
|
+
@source = ""
|
138
|
+
@body = ""
|
139
|
+
|
140
|
+
# attribute accessors
|
141
|
+
|
142
|
+
# gets the fortune text
|
143
|
+
def body
|
144
|
+
@body
|
145
|
+
end
|
146
|
+
# gets the fortune text (alias for body)
|
147
|
+
alias_method(:to_s, :body)
|
148
|
+
|
149
|
+
# gets the fortune source
|
150
|
+
def source
|
151
|
+
@source
|
152
|
+
end
|
153
|
+
|
154
|
+
def body=(text = "")
|
155
|
+
@body = text
|
156
|
+
end
|
157
|
+
|
158
|
+
def source=(src = "")
|
159
|
+
@source = src
|
160
|
+
end
|
161
|
+
|
162
|
+
end
|
163
|
+
|
164
|
+
# list available sources
|
165
|
+
def self.get_sources
|
166
|
+
sources = []
|
167
|
+
path = nil
|
168
|
+
srclist = `#{self.binary_path} -f 2>&1`
|
169
|
+
srclist.each do |source|
|
170
|
+
weight,src = source.strip.split
|
171
|
+
if src.match(/(\/.*)*/)
|
172
|
+
puts "#{src} -> #{weight}"
|
173
|
+
path = src
|
174
|
+
else
|
175
|
+
sources << FortuneSource.new( :path => path, :source => src, :weight => weight )
|
176
|
+
end
|
177
|
+
end
|
178
|
+
sources
|
179
|
+
end
|
180
|
+
|
181
|
+
# executes the fortune program
|
182
|
+
def self.fortune(sources = nil)
|
183
|
+
puts "executing #{self.binary_path} -c #{fortune_options} #{sources.each { |s| s; } unless sources.nil?} 2>&1"
|
184
|
+
`#{self.binary_path} -c #{fortune_options} #{sources.each { |s| s; } unless sources.nil?} 2>&1`
|
185
|
+
end
|
186
|
+
|
187
|
+
# generates a fortune message
|
188
|
+
# <tt>sources</tt> - array of sources
|
189
|
+
def self.generate(sources = nil)
|
190
|
+
lf = LinuxFortune::Fortune.new
|
191
|
+
lf.body = ""
|
192
|
+
ftn = self.fortune(sources)
|
193
|
+
ftn.each do |s|
|
194
|
+
if s.match(/\(.*\)/)
|
195
|
+
lf.source = s.gsub(/(^\()|(\)$)/, "")
|
196
|
+
else
|
197
|
+
lf.body << s unless s.match(/^%\n/)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
lf
|
201
|
+
end
|
202
|
+
|
203
|
+
# searches fortune sources and returns hits
|
204
|
+
def self.search(pattern = nil)
|
205
|
+
# TODO
|
206
|
+
end
|
207
|
+
|
208
|
+
protected
|
209
|
+
|
210
|
+
# construct command line options for fortune
|
211
|
+
def self.fortune_options
|
212
|
+
opts = ""
|
213
|
+
opts << "-o " if @@offensive
|
214
|
+
opts << "-e " if @@equalsize
|
215
|
+
opts << "-l " if @@long
|
216
|
+
opts << "-s " if @@short
|
217
|
+
opts << "-n #{@@short_length}" unless @@short_length == 160 or (!@@long and !@@short)
|
218
|
+
opts
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{linux_fortune}
|
5
|
+
s.version = "0.0.1"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["George Schreiber"]
|
9
|
+
s.cert_chain = ["/home/george/.ssh/gem/gem-public_cert.pem"]
|
10
|
+
s.date = %q{2010-03-23}
|
11
|
+
s.description = %q{A gem that provides a wrapper for the linux fortune program}
|
12
|
+
s.email = %q{gy.schreiber @nospam@ mobility.hu}
|
13
|
+
s.extra_rdoc_files = ["README.rdoc", "lib/linux_fortune.rb"]
|
14
|
+
s.files = ["History.txt", "Manifest", "README.rdoc", "Rakefile", "lib/linux_fortune.rb", "test/test_helper.rb", "test/test_linux_fortune.rb", "linux_fortune.gemspec"]
|
15
|
+
s.homepage = %q{http://github.com/srejbi/linux_fortune}
|
16
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Linux_fortune", "--main", "README.rdoc"]
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
s.rubyforge_project = %q{linux_fortune}
|
19
|
+
s.rubygems_version = %q{1.3.5}
|
20
|
+
s.signing_key = %q{/home/george/.ssh/gem/gem-private_key.pem}
|
21
|
+
s.summary = %q{A gem that provides a wrapper for the linux fortune program}
|
22
|
+
s.test_files = ["test/test_helper.rb", "test/test_linux_fortune.rb"]
|
23
|
+
|
24
|
+
if s.respond_to? :specification_version then
|
25
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
26
|
+
s.specification_version = 3
|
27
|
+
|
28
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
29
|
+
else
|
30
|
+
end
|
31
|
+
else
|
32
|
+
end
|
33
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestLinuxFortune < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_binary_path
|
9
|
+
LinuxFortune.binary_path=`which fortune`.strip
|
10
|
+
assert !LinuxFortune.binary_path.nil?
|
11
|
+
assert File.exist?(LinuxFortune.binary_path)
|
12
|
+
end
|
13
|
+
|
14
|
+
# test if fortune is generated
|
15
|
+
def test_basic_generation
|
16
|
+
lf = LinuxFortune.generate
|
17
|
+
assert !lf.nil? # fortune should be present
|
18
|
+
assert !lf.body.nil? && !lf.body.empty? # body should be present
|
19
|
+
assert !lf.source.nil? && !lf.source.empty? # source should be present
|
20
|
+
end
|
21
|
+
|
22
|
+
# verify that long gets set to false if configuring for short messages
|
23
|
+
def test_short
|
24
|
+
LinuxFortune.short = true
|
25
|
+
assert LinuxFortune.short # short should be set to true
|
26
|
+
assert LinuxFortune.long == false # long to false
|
27
|
+
assert LinuxFortune.fortune_options.include?("-s")
|
28
|
+
assert LinuxFortune.fortune_options.include?("-n")
|
29
|
+
10.times do # check multiple times if the generated length is ok
|
30
|
+
lf = LinuxFortune.generate
|
31
|
+
assert lf.body.size < LinuxFortune.short_length # check if actual size is less than the max. short length
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# verify that short gets set to false if configuring for long messages
|
36
|
+
def test_long
|
37
|
+
LinuxFortune.long = true
|
38
|
+
assert LinuxFortune.long # long should be set to short
|
39
|
+
assert LinuxFortune.short == false # short to false
|
40
|
+
assert LinuxFortune.fortune_options.include?("-l")
|
41
|
+
assert LinuxFortune.fortune_options.include?("-n")
|
42
|
+
5.times do # check multiple times if the generated length is ok
|
43
|
+
lf = LinuxFortune.generate
|
44
|
+
#puts "#{lf.body.size} characters"
|
45
|
+
# TODO apparently there is an issue with 'fortune -l'; check fortune docs & bugs (manual mentions a different problem
|
46
|
+
assert lf.body.size+10 >= LinuxFortune.short_length # check if actual size is greater than the max. short length
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# Fortune.body should be the same as Fortune.to_s
|
51
|
+
def test_to_s
|
52
|
+
lf = LinuxFortune.generate
|
53
|
+
assert lf.body == lf.to_s
|
54
|
+
end
|
55
|
+
|
56
|
+
# test that there are sources
|
57
|
+
# TODO refine test case
|
58
|
+
def test_sources
|
59
|
+
src = LinuxFortune.get_sources
|
60
|
+
#src.each { |s| s.strip!; weight,name = s.split(" "); puts "#{name} -> #{weight}" }
|
61
|
+
assert !src.nil?
|
62
|
+
end
|
63
|
+
|
64
|
+
# test if fortune messages are from the sources requested
|
65
|
+
# TODO pick random sources from sources
|
66
|
+
def test_fortune_from_sources
|
67
|
+
5.times do
|
68
|
+
lf = LinuxFortune.generate(["chucknorris"])
|
69
|
+
#puts lf.source
|
70
|
+
#puts lf.source.split("/").last
|
71
|
+
assert ["chucknorris"].include?(lf.source.split("/").last.strip)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
data.tar.gz.sig
ADDED
Binary file
|
metadata
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: linux_fortune
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
version: 0.0.1
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- George Schreiber
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain:
|
16
|
+
- |
|
17
|
+
-----BEGIN CERTIFICATE-----
|
18
|
+
MIIDPjCCAiagAwIBAgIBADANBgkqhkiG9w0BAQUFADBFMRUwEwYDVQQDDAxneS5z
|
19
|
+
Y2hyZWliZXIxGDAWBgoJkiaJk/IsZAEZFghtb2JpbGl0eTESMBAGCgmSJomT8ixk
|
20
|
+
ARkWAmh1MB4XDTEwMDMyMjIyMjcyN1oXDTExMDMyMjIyMjcyN1owRTEVMBMGA1UE
|
21
|
+
AwwMZ3kuc2NocmVpYmVyMRgwFgYKCZImiZPyLGQBGRYIbW9iaWxpdHkxEjAQBgoJ
|
22
|
+
kiaJk/IsZAEZFgJodTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMJJ
|
23
|
+
s2WBsiNww5bbNAiHZEoEQgvmZA2G3+wiojnk7pYzecLbO5EIUy/SAGbOknjo5oZV
|
24
|
+
ltBcHezhvrC1rz1yGZj99rHRqIdVZeMDhWBqy0UlQ4sUFo/XMyTLCrjgR/uAC30R
|
25
|
+
8VH862M5X437OOWzQtRA4HhO//7Wgnyqk5XDf9/4yPA7ZR9D9ByqsFMSB/lUbn1a
|
26
|
+
rvUqEYVjYG79n3Cr8xZ6N1Tq97Boyomnr1kfokpuvkSDXdjkOIvxrxcWADbpIDW6
|
27
|
+
hNl+aM43lvILA2XfoxnvNSl0kKWfMFJqEZZBpQUjYKCIf035qFEvM8bSYwsgJjBB
|
28
|
+
IZGcOiAN0cM1WdoYFXMCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
29
|
+
HQYDVR0OBBYEFAqua0hB8DclDhesGYAgmSOOYXLcMA0GCSqGSIb3DQEBBQUAA4IB
|
30
|
+
AQAV+IGpY3FuM3hwGQzEHIvRbZiHl2xRMWjsyspgKAXi65ecAZo8LIsgdGznrOB7
|
31
|
+
Dd6QV4mzDVOnlCea92b3hZ3Cs0aKFDgXFbX8GChJ00vU32vOxFloMGX+TY8oApmR
|
32
|
+
sHX07jF6alv1gyAy1vk4K2aaOCQP8R87hjKJVosg/LCVDjYnpGgctiDIrWOQw6pm
|
33
|
+
ZYkcwKLRgPyxXGaiHG7b9JC9c7Zh9pHHGzOixPR6Hk8OFbtB4h2l4I5wHdv5Aey/
|
34
|
+
aIXWbEzN9SxPazhq7J72gIvE7VMxbKRVdZM4VY6Gk1Ucs9uimgYoaF2Pzzs8I9v4
|
35
|
+
0ps4N+22wwDW/tu5hg8+hebo
|
36
|
+
-----END CERTIFICATE-----
|
37
|
+
|
38
|
+
date: 2010-03-23 00:00:00 +01:00
|
39
|
+
default_executable:
|
40
|
+
dependencies: []
|
41
|
+
|
42
|
+
description: A gem that provides a wrapper for the linux fortune program
|
43
|
+
email: gy.schreiber @nospam@ mobility.hu
|
44
|
+
executables: []
|
45
|
+
|
46
|
+
extensions: []
|
47
|
+
|
48
|
+
extra_rdoc_files:
|
49
|
+
- README.rdoc
|
50
|
+
- lib/linux_fortune.rb
|
51
|
+
files:
|
52
|
+
- History.txt
|
53
|
+
- Manifest
|
54
|
+
- README.rdoc
|
55
|
+
- Rakefile
|
56
|
+
- lib/linux_fortune.rb
|
57
|
+
- test/test_helper.rb
|
58
|
+
- test/test_linux_fortune.rb
|
59
|
+
- linux_fortune.gemspec
|
60
|
+
has_rdoc: true
|
61
|
+
homepage: http://github.com/srejbi/linux_fortune
|
62
|
+
licenses: []
|
63
|
+
|
64
|
+
post_install_message:
|
65
|
+
rdoc_options:
|
66
|
+
- --line-numbers
|
67
|
+
- --inline-source
|
68
|
+
- --title
|
69
|
+
- Linux_fortune
|
70
|
+
- --main
|
71
|
+
- README.rdoc
|
72
|
+
require_paths:
|
73
|
+
- lib
|
74
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
version: "0"
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
segments:
|
86
|
+
- 1
|
87
|
+
- 2
|
88
|
+
version: "1.2"
|
89
|
+
requirements: []
|
90
|
+
|
91
|
+
rubyforge_project: linux_fortune
|
92
|
+
rubygems_version: 1.3.6
|
93
|
+
signing_key:
|
94
|
+
specification_version: 3
|
95
|
+
summary: A gem that provides a wrapper for the linux fortune program
|
96
|
+
test_files:
|
97
|
+
- test/test_helper.rb
|
98
|
+
- test/test_linux_fortune.rb
|
metadata.gz.sig
ADDED
Binary file
|