Class: Slapp::Package
Instance Attribute Summary collapse
-
#data ⇒ Object
Returns the value of attribute data.
Instance Method Summary collapse
- #arch ⇒ Object
- #build ⇒ Object
- #description ⇒ Object
- #file_name ⇒ Object
-
#initialize(data, slackware_version) ⇒ Package
constructor
A new instance of Package.
- #location ⇒ Object
- #name ⇒ Object
- #original_description ⇒ Object
- #package_name ⇒ Object
- #path ⇒ Object
- #size_compressed ⇒ Object
- #size_uncompressed ⇒ Object
- #summary ⇒ Object
- #to_hash ⇒ Object
- #version ⇒ Object
Methods included from Helpers
Constructor Details
#initialize(data, slackware_version) ⇒ Package
Returns a new instance of Package.
6 7 8 9 10 11 12 13 14 |
# File 'lib/slapp/package.rb', line 6 def initialize(data, slackware_version) @data = data @slackware_version = slackware_version @name_match = regex('name').match(data) @location_match = regex('location').match(data) @size_match = data.scan regex('size') @description_match = regex('description').match(data) end |
Instance Attribute Details
#data ⇒ Object
Returns the value of attribute data.
4 5 6 |
# File 'lib/slapp/package.rb', line 4 def data @data end |
Instance Method Details
#arch ⇒ Object
32 33 34 |
# File 'lib/slapp/package.rb', line 32 def arch @name_match[5] end |
#build ⇒ Object
36 37 38 |
# File 'lib/slapp/package.rb', line 36 def build @name_match[6] end |
#description ⇒ Object
58 59 60 61 62 63 |
# File 'lib/slapp/package.rb', line 58 def description original_description .gsub(/(\S)\n(\S)/, '\1 \2') .gsub(/\n\n\s/, "\n\n") .strip end |
#file_name ⇒ Object
20 21 22 |
# File 'lib/slapp/package.rb', line 20 def file_name @name_match[2] end |
#location ⇒ Object
40 41 42 |
# File 'lib/slapp/package.rb', line 40 def location @location_match[1] end |
#name ⇒ Object
16 17 18 |
# File 'lib/slapp/package.rb', line 16 def name @name_match[3] end |
#original_description ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/slapp/package.rb', line 65 def original_description if name == 'aalib' parsed_description.split("\n").map { |line| line[0..34].strip }.join("\n").strip else parsed_description .gsub(/\n\n /, "\n\n") .gsub(/\n /, "\n") .strip end end |
#package_name ⇒ Object
24 25 26 |
# File 'lib/slapp/package.rb', line 24 def package_name @name_match[1] end |
#path ⇒ Object
44 45 46 47 48 |
# File 'lib/slapp/package.rb', line 44 def path File.join "/slackware/slackware#{"64" if x86_64?}-#{@slackware_version}", location, package_name end |
#size_compressed ⇒ Object
54 55 56 |
# File 'lib/slapp/package.rb', line 54 def size_compressed convert_to_bytes @size_match.flatten.first end |
#size_uncompressed ⇒ Object
50 51 52 |
# File 'lib/slapp/package.rb', line 50 def size_uncompressed convert_to_bytes @size_match.flatten.last end |
#summary ⇒ Object
78 79 80 81 82 |
# File 'lib/slapp/package.rb', line 78 def summary parsed_description .slice(/^(.+)\n/) .strip end |
#to_hash ⇒ Object
84 85 86 87 88 89 |
# File 'lib/slapp/package.rb', line 84 def to_hash methods = [:name, :file_name, :package_name, :version, :arch, :build, :location, :path, :size_uncompressed, :size_compressed, :description, :original_description, :summary] methods.each_with_object({}) { |m, hash| hash[m] = self.send(m) } end |
#version ⇒ Object
28 29 30 |
# File 'lib/slapp/package.rb', line 28 def version @name_match[4] end |