slack-utils 0.7.2 → 0.7.3

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.
data/bin/slt CHANGED
@@ -37,7 +37,7 @@ Usage:
37
37
  EOS
38
38
  # This is all the flags we want to use, from Slackware::Args
39
39
  option_flags = [:color, :epoch, :case_insensitive, :pkg_name, :pkg_version,
40
- :debug, :pkg_arch, :pkg_build, :pkg_tag]
40
+ :reverse, :debug, :pkg_arch, :pkg_build, :pkg_tag]
41
41
 
42
42
  slog = Slackware::Log.instance
43
43
  slog.level = Slackware::Log::WARN
@@ -46,6 +46,7 @@ options = Slackware::Args.parse(ARGV, option_flags, option_banner)
46
46
 
47
47
  # update level if specified
48
48
  slog.level = Slackware::Log::DEBUG if options[:debug]
49
+ slog.debug($PROGRAM_NAME) { "option_flags: #{option_flags} " }
49
50
  slog.debug($PROGRAM_NAME) {"options: %s" % options}
50
51
 
51
52
  # handing through that we are gathering times
@@ -56,7 +57,7 @@ if (ARGV.count > 0)
56
57
  end
57
58
 
58
59
  begin
59
- print_packages_times(build_packages(options, ARGV), options[:epoch])
60
+ print_packages_times(build_packages(options, ARGV), options[:epoch], options[:reverse])
60
61
  rescue Interrupt
61
62
  exit 0
62
63
  rescue Exception => e
@@ -38,6 +38,11 @@ module Slackware
38
38
  options[:color] = o
39
39
  end
40
40
  end
41
+ if flags.include?(:reverse)
42
+ opts.on("-r", "--reverse", "Reverse the output") do |o|
43
+ options[:reverse] = o
44
+ end
45
+ end
41
46
  if flags.include?(:epoch)
42
47
  opts.on("-e", "--epoch", "Print the time stamp in seconds since 1970-01-01 00:00:00 UTC ") do |o|
43
48
  options[:epoch] = o
@@ -23,6 +23,7 @@
23
23
  require 'slackware/package'
24
24
  require 'date'
25
25
  require 'time'
26
+ require 'stringio'
26
27
 
27
28
  module Slackware
28
29
  # The class for parsing a Slackware standard ChangeLog.txt
@@ -36,10 +37,10 @@ module Slackware
36
37
  # Compiling a fat regex to find the date entries
37
38
  re_daynames = Regexp.new(ABBR_DAYNAMES.join('|'))
38
39
  re_monthnames = Regexp.new(ABBR_MONTHNAMES.join('|'))
39
- RE_DATE = Regexp.new(/^(#{re_daynames}\s+#{re_monthnames}\s+\d+\s+\d{2}:\d{2}:\d{2}\s\w+\s+\d+)$/)
40
+ RE_DATE = /^(#{re_daynames}\s+#{re_monthnames}\s+\d+\s+\d{2}:\d{2}:\d{2}\s\w+\s+\d+)$/
40
41
 
41
42
  # This break has been the same as long as I can find
42
- RE_CHANGELOG_BREAK = Regexp.new(/^\+--------------------------\+$/)
43
+ RE_CHANGELOG_BREAK = /^\+--------------------------\+$/
43
44
 
44
45
  # The regular entry, accounting for usb-and-pxe-installers directory,
45
46
  # and notes after the action
@@ -64,14 +65,20 @@ module Slackware
64
65
  # regarding the updates
65
66
  class Update
66
67
  # FIXME this class needs more proper value setting
67
- def initialize(date = nil, notes = "", entries = Array.new)
68
+ def initialize(date = nil,
69
+ notes = "",
70
+ entries = Array.new,
71
+ changelog = nil )
68
72
  @date = date
69
73
  @notes = notes
70
74
  @entries = entries
75
+ @changelog = changelog
71
76
  end
72
77
  def date; @date; end
73
78
  def notes; @notes; end
74
79
  def entries; @entries; end
80
+ def security; @entries.select {|e| e if e.security }; end
81
+ def security?; @entries.select {|e| e.security }.first; end
75
82
 
76
83
  def date=(timestamp)
77
84
  if (timestamp.is_a?(Time))
@@ -83,16 +90,23 @@ module Slackware
83
90
  end
84
91
  end
85
92
  def notes=(text); @notes = text; end
93
+ def changelog=(changelog); @changelog = changelog if changelog.is_a?(Slackware::ChangeLog); end
86
94
  end
87
95
 
88
96
  # The class for each item in a change set
89
97
  class Entry
90
- def initialize(package = nil, section = nil, action = nil, notes = "", security = false)
98
+ def initialize(package = nil,
99
+ section = nil,
100
+ action = nil,
101
+ notes = "",
102
+ security = false,
103
+ update = nil)
91
104
  @package = package
92
105
  @section = section
93
106
  @action = action
94
- notes.is_a?(String) ? @notes = notes : @notes = ""
95
- security == true ? @security = security : @security = false
107
+ @notes = notes.is_a?(String) ? notes : ""
108
+ @security = security == true
109
+ @update = update
96
110
  end
97
111
 
98
112
  def package; @package; end
@@ -100,57 +114,78 @@ module Slackware
100
114
  def action; @action; end
101
115
  def notes; @notes; end
102
116
  def security; @security; end
117
+ def date; @update ? @update.date: nil;end
103
118
 
104
119
  def package=(package_name); @package = package_name ; end
105
120
  def section=(section_name); @section = section_name ; end
106
121
  def action=(action_name); @action = action_name ; end
122
+ def update=(update); @update = update if update.is_a?(Slackware::ChangeLog::Update) ; end
107
123
  def notes=(notes_txt)
108
- notes_txt.is_a?(String) ? @notes = notes_txt : @notes = ""
124
+ @notes = notes_txt.is_a?(String) ? notes_txt : ""
109
125
  end
110
126
  def security=(bool)
111
- bool == true ? @security = bool : @security = false
127
+ @security = bool == true
112
128
  end
113
129
  end
114
130
 
115
- # +file+ can be a path to a file, or a +File+ object
116
- # +opts+ can include
117
- # * :arch - basically '64' or '32'
118
- # * :version - 13.1, 13.2, current, etc.
119
- # * :url - the URL web link to the ChangeLog.txt
120
- # * :image_url - the URL for the loge used in the RSS feed
121
- def initialize(file = nil, opts = {})
131
+ def initialize(file = nil)
122
132
  @file = file
123
- @opts = opts
133
+ @strio = StringIO.new
124
134
  @updates = Array.new
125
135
  end
126
136
 
127
137
  def file; @file; end
128
- def opts; @opts; end
129
138
  def updates; @updates; end
139
+
140
+ # Returns the latest update in the set
141
+ def latest
142
+ sort().last
143
+ end
144
+ def sort
145
+ @updates.sort {|x,y| x.date <=> y.date }
146
+ end
147
+
148
+ # All entries in this Slackware::ChangeLog
149
+ #
150
+ # Returns an Array of Slackware::ChangeLog::Entry
130
151
  def entries
131
- @updates.map {|update| update.entries.map {|entry| {:date => update.date, :entry => entry } } }.flatten
152
+ @updates.map {|u| u.entries.map {|e| e } }.flatten
132
153
  end
154
+
155
+ # All security in this Slackware::ChangeLog
156
+ #
157
+ # Returns an Array of Slackware::ChangeLog::Entry
133
158
  def security
134
- @updates.map {|u| u.entries.map {|e| {:date => u.date, :entry => e } if e.security } }.flatten.compact
159
+ @updates.map {|u| u.entries.select {|e| e if e.security } }.flatten
135
160
  end
161
+
162
+ # All packages removed in this Slackware::ChangeLog
163
+ #
164
+ # Returns an Array of Slackware::ChangeLog::Entry
136
165
  def pkgs_removed
137
- @updates.map {|u| u.entries.map {|e| {:date => u.date, :entry => e } if e.action == "Removed" } }.flatten.compact
166
+ @updates.map {|u| u.entries.select {|e| e if e.action == "Removed" } }.flatten
138
167
  end
168
+
169
+ # All packages added in this Slackware::ChangeLog
170
+ #
171
+ # Returns an Array of Slackware::ChangeLog::Entry
139
172
  def pkgs_added
140
- @updates.map {|u| u.entries.map {|e| {:date => u.date, :entry => e } if e.action == "Added" } }.flatten.compact
173
+ @updates.map {|u| u.entries.select {|e| e if e.action == "Added" } }.flatten
141
174
  end
175
+
176
+ # All packages upgraded in this Slackware::ChangeLog
177
+ #
178
+ # Returns an Array of Slackware::ChangeLog::Entry
142
179
  def pkgs_upgraded
143
- @updates.map {|u| u.entries.map {|e| {:date => u.date, :entry => e } if e.action == "Upgraded" } }.flatten.compact
180
+ @updates.map {|u| u.entries.select {|e| e if e.action == "Upgraded" } }.flatten
144
181
  end
182
+
183
+ # All packages rebuilt in this Slackware::ChangeLog
184
+ #
185
+ # Returns an Array of Slackware::ChangeLog::Entry
145
186
  def pkgs_rebuilt
146
- @updates.map {|u| u.entries.map {|e| {:date => u.date, :entry => e } if e.action == "Rebuilt" } }.flatten.compact
147
- end
148
- def opts=(hash)
149
- if hash.is_a?(Hash)
150
- @opts = hash
151
- end
187
+ @updates.map {|u| u.entries.select {|e| e if e.action == "Rebuilt" } }.flatten
152
188
  end
153
-
154
189
  def parse(opts = {:file => nil, :data => nil})
155
190
  if not(opts[:file].nil?)
156
191
  @updates = parse_this_file(opts[:file]).updates
@@ -161,19 +196,19 @@ module Slackware
161
196
  end
162
197
 
163
198
  # Class method
164
- def self::parse(file)
165
- return parse_this_file(file)
166
- end
167
-
168
- def self::open(file)
169
- return parse_this_file(file)
199
+ class << self
200
+ def parse(file)
201
+ cl = ChangeLog.new(file)
202
+ return cl.parse()
203
+ end
204
+ alias_method :open, :parse
170
205
  end
171
206
 
172
207
  def inspect
173
208
  "#<%s:0x%x @file=%s, %d @updates, %d @entries>" % [self.class.name, self.object_id.abs, self.file || '""', self.updates.count || 0, self.entries.count || 0]
174
209
  end
175
210
 
176
- #protected
211
+ protected
177
212
  # Parse order is something like:
178
213
  # * if its' a date match, store the date
179
214
  # * take change notes until
@@ -182,7 +217,7 @@ module Slackware
182
217
  # * take packge notes until
183
218
  # * next package or entry separator
184
219
  # * separator creates next change entry
185
- def self::parse_this_file(file)
220
+ def parse_this_file(file)
186
221
  f_handle = ""
187
222
  if file.is_a?(File)
188
223
  f_handle = file
@@ -200,7 +235,10 @@ module Slackware
200
235
  changelog = ChangeLog.new(f_handle)
201
236
  f_handle.each do |line|
202
237
  if (line =~ RE_DATE)
203
- u = Update.new(Time.parse($1))
238
+ update = Update.new(Time.parse($1))
239
+
240
+ # Tying this Slackware::ChangeLog::Update to it's Slackware::ChangeLog parent
241
+ update.changelog = changelog
204
242
  while true
205
243
  if (f_handle.eof?)
206
244
  break
@@ -213,11 +251,15 @@ module Slackware
213
251
  end
214
252
 
215
253
  # the intimate iteration
216
- # +Match+ is more expensive than =~,
254
+ # Match is more expensive than =~,
217
255
  # but ruby-1.8.x is lossing the matched values down below
218
256
  # so this works on both ...
219
257
  if (match = RE_PACKAGE_ENTRY.match(u_line))
220
258
  u_entry = Entry.new()
259
+
260
+ # tying this entry to it's Slackware::ChangeLog::Update parent
261
+ u_entry.update = update
262
+
221
263
  # This silly iteration catches the different cases of
222
264
  # which package line, matches which Regexp. WIN
223
265
  if match[1].nil?
@@ -245,31 +287,32 @@ module Slackware
245
287
  u_entry.action = match[3] unless match[3].nil?
246
288
 
247
289
  # Add this entry to the stack
248
- u.entries << u_entry
290
+ update.entries << u_entry
249
291
  else
250
- # if u.entries is empty, then this text is notes
292
+ # if update.entries is empty, then this text is notes
251
293
  # for the upate, else it is notes, for the entry
252
- if (u.entries.empty?)
253
- u.notes = u.notes + u_line
294
+ if (update.entries.empty?)
295
+ update.notes = update.notes + u_line
254
296
  else
255
297
  # if this line of the entry security fix, toggle the bool
256
298
  if (u_line =~ RE_SECURITY_FIX)
257
- u.entries[-1].security = true
299
+ update.entries[-1].security = true
258
300
  end
259
- u.entries[-1].notes = u.entries[-1].notes + u_line
301
+ update.entries[-1].notes = update.entries[-1].notes + u_line
260
302
  end
261
303
  end
262
304
  end
263
305
 
264
306
  # Add this update to the stack
265
- changelog.updates << u
307
+ changelog.updates << update
266
308
  end
267
309
  end
268
310
 
269
311
  # Give them their change set
270
312
  return changelog
271
- end
313
+ end # def self::parse_this_file
314
+
315
+ end # class ChangeLog
316
+ end # module Slackware
272
317
 
273
- end
274
- end
275
318
  # vim : set sw=2 sts=2 et :
@@ -27,29 +27,22 @@ module Slackware
27
27
  class ChangeLog
28
28
  # or maybe "http://connie.slackware.com/~msimons/slackware/grfx/shared/dobbslack1.jpg"
29
29
  IMAGE_URL = "http://connie.slackware.com/~msimons/slackware/grfx/shared/bluepiSW.jpg"
30
+ # +opts+ can include
31
+ # * :arch - basically '64' or '32'
32
+ # * :version - 13.1, 13.2, current, etc.
33
+ # * :url - the URL web link to the ChangeLog.txt
34
+ # * :image_url - the URL for the loge used in the RSS feed
30
35
  def to_rss(opts = {})
31
- # this way we can use the opts from super,
32
- # or override for this methods
33
- opts = @opts.merge(opts)
34
-
35
36
  version = "2.0" # ["0.9", "1.0", "2.0"]
36
37
  content = RSS::Maker.make(version) do |m|
37
38
  if (opts[:title])
38
39
  m.channel.title = opts[:title]
39
40
  else
40
- added_title = ""
41
- if opts[:arch]
42
- added_title = added_title + "slackware#{opts[:arch]}"
43
- end
41
+ added_title = "slackware#{opts[:arch]}"
44
42
  if opts[:version]
45
- added_title = added_title + "-#{opts[:version]}"
46
- end
47
-
48
- if added_title.empty?
49
- m.channel.title = "Slackware ChangeLog.txt"
50
- else
51
- m.channel.title = "#{added_title} ChangeLog.txt"
43
+ added_title += "-#{opts[:version]}"
52
44
  end
45
+ m.channel.title = "#{added_title} ChangeLog.txt"
53
46
  end
54
47
 
55
48
  if (opts[:url])
@@ -89,8 +82,8 @@ module Slackware
89
82
  i = m.items.new_item
90
83
  # Add a plug to the title of the update, if it includes a security fix
91
84
  # set this here, so we don't have to .map again down below
92
- security = update.entries.map {|e| 1 if e.security }.compact.count
93
- if (security > 0)
85
+ security_count = update.security.length
86
+ if (security_count > 0)
94
87
  i.title = "%s (* Security fix *)" % [update.date.utc.to_s]
95
88
  else
96
89
  i.title = update.date.utc.to_s
@@ -104,8 +97,8 @@ module Slackware
104
97
 
105
98
  i.description = ""
106
99
  if (update.entries.count > 0)
107
- if (security > 0)
108
- i.description = i.description + "%d new update(s), %d security update(s)\n\n" % [update.entries.count, security]
100
+ if (security_count > 0)
101
+ i.description = i.description + "%d new update(s), %d security update(s)\n\n" % [update.entries.count, security_count]
109
102
  else
110
103
  i.description = i.description + "%d new update(s)\n\n" % [update.entries.count]
111
104
  end
@@ -24,7 +24,6 @@ require 'logger'
24
24
  require 'singleton'
25
25
 
26
26
  module Slackware
27
-
28
27
  # Log is a subclass of Logger, but is implemented as a singleton,
29
28
  # so it can be used across library in a somewhat unified manner.
30
29
  # Example:
@@ -42,10 +41,11 @@ module Slackware
42
41
  # It defaults to WARN level and STDERR
43
42
  def initialize(*args)
44
43
  if $logdev
45
- super($logdev, args)
44
+ super($logdev, args)
46
45
  else
47
- super(STDERR, args)
46
+ super(STDERR, args)
48
47
  end
48
+ self.level = Logger::ERROR
49
49
  end
50
50
  end # class Log
51
51
  end # module Slackware
@@ -24,6 +24,9 @@ require 'time'
24
24
  require 'slackware/log'
25
25
  require 'slackware/paths'
26
26
 
27
+ MyTime = RUBY_VERSION < '1.9'? DateTime : Time
28
+
29
+
27
30
  module Slackware
28
31
  class Package
29
32
  RE_FILE_LIST = /^FILE LIST:/
@@ -47,7 +50,7 @@ module Slackware
47
50
  end
48
51
  if (name =~ RE_REMOVED_NAMES)
49
52
  name = $1
50
- self.upgrade_time = Time.strptime($2 + ' ' + $3, fmt=FMT_UPGRADE_TIME)
53
+ self.upgrade_time = MyTime.strptime($2 + ' ' + $3, fmt=FMT_UPGRADE_TIME)
51
54
  end
52
55
  arr = name.split('-')
53
56
  build = arr.pop
@@ -38,7 +38,7 @@ module Slackware
38
38
  RE_COMPRESSED_SIZE = /^PACKAGE SIZE \(compressed\):\s+(.*)$/
39
39
  RE_UNCOMPRESSED_SIZE = /^PACKAGE SIZE \(uncompressed\):\s+(.*)$/
40
40
 
41
- attr_accessor :proto, :mirror, :path, :version, :arch, :changelog, :packages
41
+ attr_accessor :proto, :mirror, :path, :version, :arch, :changelog, :packages, :uri
42
42
 
43
43
  def initialize(repo = nil)
44
44
  @packages = nil
@@ -53,20 +53,25 @@ module Slackware
53
53
  end
54
54
  v
55
55
  end
56
- self.arch = begin
57
- a = RbConfig::CONFIG["arch"]
58
- if a =~ /x86_64/
59
- a = "64"
60
- else
61
- a = ""
62
- end
63
- a
64
- end
56
+ self.arch = RbConfig::CONFIG["arch"] =~ /x86_64/ ? "64" : ""
65
57
  else
66
58
  ## TODO do some hot parsing of 'repo'
59
+ self.uri = URI.parse(repo)
67
60
  end
68
61
  end
69
62
 
63
+ def url
64
+ "%s%s%sslackware%s-%s/" % [self.proto,
65
+ self.mirror,
66
+ self.path,
67
+ self.arch,
68
+ self.version]
69
+ end
70
+
71
+ def url=(thisurl)
72
+ self.uri = URI.parse(thisurl)
73
+ end
74
+
70
75
  def fetch(file = nil)
71
76
  #if file.nil?
72
77
  #url = URI.parse(self.proto + self.mirror + self.path)
@@ -195,7 +195,6 @@ module Slackware
195
195
 
196
196
  # Return the version of Slackware Linux currently installed
197
197
  def self::version
198
- debug(SLACKWARE_VERSION)
199
198
  SLACKWARE_VERSION
200
199
  end
201
200
  end
@@ -1,6 +1,8 @@
1
1
  # encoding: UTF-8
2
2
 
3
- # Copyright 2010,2011 Vincent Batts, Vienna, VA
3
+ # Copyright 2009,2010 Vincent Batts, http://hashbangbash.com/
4
+ # Copyright 2010,2011 Vincent Batts, Vienna, VA, USA
5
+ # Copyright 2012 Vincent Batts, Raleigh, NC, USA
4
6
  # All rights reserved.
5
7
  #
6
8
  # Redistribution and use of this source, with or without modification, is
@@ -22,18 +24,13 @@
22
24
 
23
25
  # started - Fri Oct 9 15:48:43 CDT 2009
24
26
  # updated for args - Tue Mar 23 14:54:19 CDT 2010
25
- # Copyright 2009, 2010 Vincent Batts, http://hashbangbash.com/
26
27
 
27
28
  require 'slackware'
28
29
 
29
30
  # Variables
30
31
  @st = "\033[31;1m"
31
32
  @en = "\033[0m"
32
-
33
- # Classes
34
-
35
-
36
- # Functions
33
+ @slog = Slackware::Log.instance
37
34
 
38
35
  # This is base builder of the packe list
39
36
  def build_packages(opts = {}, args = [])
@@ -180,12 +177,17 @@ def print_packages(pkgs)
180
177
  end
181
178
  end
182
179
 
183
- def print_packages_times(pkgs, epoch = false)
184
- if (epoch == true)
185
- pkgs.each {|pkg| printf("%s : %s\n", pkg.fullname, pkg.time.to_i) }
186
- else
187
- pkgs.each {|pkg| printf("%s : %s\n", pkg.fullname, pkg.time.to_s) }
188
- end
180
+ def print_packages_times(pkgs, epoch = false, reverse = false)
181
+ @slog.debug('print_packages_times') { "epoch: #{epoch} ; reverse: #{reverse}" }
182
+ begin
183
+ if reverse
184
+ pkgs.sort_by {|x| x.time }
185
+ else
186
+ pkgs.sort_by {|x| x.time }.reverse
187
+ end
188
+ end.each {|pkg|
189
+ printf("%s : %s\n", pkg.fullname, epoch ? pkg.time.to_i : pkg.time.to_s )
190
+ }
189
191
  end
190
192
 
191
193
  def print_packages_description(pkgs)
@@ -28,7 +28,7 @@ module Slackware
28
28
  rescue
29
29
  nil
30
30
  end
31
- UTILS_VERSION = "0.7.2"
31
+ UTILS_VERSION = "0.7.3"
32
32
  end
33
33
 
34
34
  # vim : set sw=2 sts=2 et :
metadata CHANGED
@@ -1,20 +1,21 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: slack-utils
3
- version: !ruby/object:Gem::Version
4
- version: 0.7.2
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.7.3
6
5
  platform: ruby
7
- authors:
6
+ authors:
8
7
  - Vincent Batts
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-02-03 00:00:00.000000000 Z
11
+
12
+ date: 2012-03-09 00:00:00 -05:00
13
+ default_executable:
13
14
  dependencies: []
14
- description: ! " slack-utils is a means by which to access \npackage information on
15
- the Slackware Linux OS. \nSee the examples/ for more information.\n "
15
+
16
+ description: slack-utils is a means by which to access package information on the Slackware Linux OS. See the examples/ for more information.
16
17
  email: vbatts@hashbangbash.com
17
- executables:
18
+ executables:
18
19
  - sli
19
20
  - slf
20
21
  - slo
@@ -24,9 +25,10 @@ executables:
24
25
  - slu
25
26
  - slfindlinked
26
27
  extensions: []
27
- extra_rdoc_files:
28
+
29
+ extra_rdoc_files:
28
30
  - README.rdoc
29
- files:
31
+ files:
30
32
  - README.rdoc
31
33
  - bin/slf
32
34
  - bin/slt
@@ -52,32 +54,34 @@ files:
52
54
  - lib/slackware/repo.rb
53
55
  - lib/slackware/version.rb
54
56
  - lib/slackware/system.rb
57
+ has_rdoc: true
55
58
  homepage: https://github.com/vbatts/slack-utils/
56
- licenses: []
57
59
  post_install_message:
58
- rdoc_options:
60
+ rdoc_options:
59
61
  - --main=README.rdoc
60
62
  - --line-numbers
61
63
  - --inline-source
62
- - --title=Slackware utils (slack-utils) 0.7.2 Documentation
63
- require_paths:
64
+ - --title=Slackware utils (slack-utils) 0.7.3 Documentation
65
+ require_paths:
64
66
  - lib
65
- required_ruby_version: !ruby/object:Gem::Requirement
66
- none: false
67
- requirements:
68
- - - ! '>='
69
- - !ruby/object:Gem::Version
70
- version: '0'
71
- required_rubygems_version: !ruby/object:Gem::Requirement
72
- none: false
73
- requirements:
74
- - - ! '>='
75
- - !ruby/object:Gem::Version
76
- version: '0'
67
+ required_ruby_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: "0"
72
+ version:
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: "0"
78
+ version:
77
79
  requirements: []
80
+
78
81
  rubyforge_project:
79
- rubygems_version: 1.8.6
82
+ rubygems_version: 1.3.1
80
83
  signing_key:
81
- specification_version: 3
84
+ specification_version: 2
82
85
  summary: Accessing information for the Slackware Linux distribution
83
86
  test_files: []
87
+