arr-pm 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of arr-pm might be problematic. Click here for more details.

@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 21066cda9f121049b636654a435419fe4124cf1e
4
+ data.tar.gz: 7deb72b24f10f1a8460904dacfcf5985f3074b41
5
+ SHA512:
6
+ metadata.gz: 3b2ef1ec6211fc57cb6b939fd1cb716e442757fae1cf949ecf0569b24d8eef14a9f793813c772a96c6a8a097df9170dd00803a9373c37b2b27097d5123b15f0b
7
+ data.tar.gz: 4f81f72cf8af0bfb88a1406593fd7c17701bbf1441c9ed3724a5d67197ccd7cb47f0a269599886d236f5aab03c1c2a2b2bf7e53dc408ba84c05a63783e9b16fd
@@ -2,7 +2,7 @@ Gem::Specification.new do |spec|
2
2
  files = %x{git ls-files}.split("\n")
3
3
 
4
4
  spec.name = "arr-pm"
5
- spec.version = "0.0.7"
5
+ spec.version = "0.0.8"
6
6
  spec.summary = "RPM reader and writer library"
7
7
  spec.description = "This library allows to you to read and write rpm " \
8
8
  "packages. Written in pure ruby because librpm is not available " \
@@ -99,7 +99,11 @@ class RPM::File
99
99
 
100
100
  extractor = IO.popen("#{tags[:payloadcompressor]} -d | (cd #{target}; cpio -i --quiet --make-directories)", "w")
101
101
  buffer = ""
102
- buffer.force_encoding("BINARY")
102
+ begin
103
+ buffer.force_encoding("BINARY")
104
+ rescue NoMethodError
105
+ # Do Nothing
106
+ end
103
107
  payload_fd = payload.clone
104
108
  loop do
105
109
  data = payload_fd.read(16384, buffer)
@@ -190,7 +194,11 @@ class RPM::File
190
194
 
191
195
  lister = IO.popen("#{tags[:payloadcompressor]} -d | cpio -it --quiet", "r+")
192
196
  buffer = ""
193
- buffer.force_encoding("BINARY")
197
+ begin
198
+ buffer.force_encoding("BINARY")
199
+ rescue NoMethodError
200
+ # Do Nothing
201
+ end
194
202
  payload_fd = payload.clone
195
203
  output = ""
196
204
  loop do
@@ -207,7 +215,11 @@ class RPM::File
207
215
  end
208
216
  lister.close_write
209
217
  # Read remaining output
210
- output << lister.read
218
+ begin
219
+ output << lister.read
220
+ rescue Errno::EAGAIN
221
+ # Do Nothing
222
+ end
211
223
  # Split output by newline and strip leading "."
212
224
  @files = output.split("\n").collect { |s| s.gsub(/^\./, "") }
213
225
  return @files
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "..", "namespace")
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "..", "namespace"))
2
2
  require File.join(File.dirname(__FILE__), "tag")
3
3
  require "cabin"
4
4
 
@@ -12,7 +12,17 @@ class RPM::File::Header
12
12
  attr_accessor :data_length # rpmlib calls this field 'dl' unhelpfully
13
13
 
14
14
  HEADER_SIGNED_TYPE = 5
15
- HEADER_MAGIC = "\x8e\xad\xe8\x01\x00\x00\x00\x00"
15
+ #HEADER_MAGIC = "\x8e\xad\xe8\x01\x00\x00\x00\x00".force_encoding("BINARY")
16
+
17
+ if RUBY_VERSION =~ /^2\./
18
+ # Ruby 2 forces all strings to be UTF-8, so "\x01" becomes "\u0001"
19
+ # which is two bytes 00 01 which is not what we want. I can't find
20
+ # a sane way to create a string without this madness in Ruby 2,
21
+ # so let's just pack two 4-byte integers and go about our day.
22
+ HEADER_MAGIC = [0x8eade801, 0x00000000].pack("NN")
23
+ else
24
+ HEADER_MAGIC = "\x8e\xad\xe8\x01\x00\x00\x00\x00"
25
+ end
16
26
  # magic + index_count + data_length
17
27
  HEADER_HEADER_LENGTH = HEADER_MAGIC.length + 4 + 4
18
28
  TAG_ENTRY_SIZE = 16 # tag id, type, offset, count == 16 bytes
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "..", "namespace")
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "..", "namespace"))
2
2
  require "cabin"
3
3
 
4
4
  class RPM::File::Lead
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "..", "namespace")
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "..", "namespace"))
2
2
  require "cabin"
3
3
 
4
4
  class RPM::File::Tag
metadata CHANGED
@@ -1,30 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arr-pm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
5
- prerelease:
4
+ version: 0.0.8
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jordan Sissel
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-03-16 00:00:00.000000000 Z
11
+ date: 2013-03-21 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: cabin
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: :runtime
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: This library allows to you to read and write rpm packages. Written in
@@ -53,34 +50,29 @@ files:
53
50
  - lib/arr-pm/requires.rb
54
51
  - notify-failure.sh
55
52
  - printrpm.rb
56
- - test/all.rb
57
- - test/docs.rb
58
- - test/testing.rb
59
53
  homepage:
60
54
  licenses:
61
55
  - Apache 2
56
+ metadata: {}
62
57
  post_install_message:
63
58
  rdoc_options: []
64
59
  require_paths:
65
60
  - lib
66
61
  - lib
67
62
  required_ruby_version: !ruby/object:Gem::Requirement
68
- none: false
69
63
  requirements:
70
- - - ! '>='
64
+ - - '>='
71
65
  - !ruby/object:Gem::Version
72
66
  version: '0'
73
67
  required_rubygems_version: !ruby/object:Gem::Requirement
74
- none: false
75
68
  requirements:
76
- - - ! '>='
69
+ - - '>='
77
70
  - !ruby/object:Gem::Version
78
71
  version: '0'
79
72
  requirements: []
80
73
  rubyforge_project:
81
- rubygems_version: 1.8.18
74
+ rubygems_version: 2.0.3
82
75
  signing_key:
83
- specification_version: 3
76
+ specification_version: 4
84
77
  summary: RPM reader and writer library
85
78
  test_files: []
86
- has_rdoc:
@@ -1,24 +0,0 @@
1
- require "rubygems"
2
- require "minitest/spec"
3
- require "minitest/autorun"
4
-
5
- # Get coverage report
6
- require "simplecov"
7
- SimpleCov.start
8
-
9
- # Add '../lib' to the require path.
10
- $: << File.join(File.dirname(__FILE__), "..", "lib")
11
-
12
- def use(path)
13
- puts "Loading tests from #{path}"
14
- require File.expand_path(path)
15
- end
16
-
17
- dirname = File.dirname(__FILE__)
18
- use File.join(dirname, "docs.rb")
19
-
20
- # Load tests from ./*/**/*.rb (usually ./libraryname/....)
21
- glob = File.join(dirname, "*", "**", "*.rb")
22
- Dir.glob(glob).each do |path|
23
- use path
24
- end
@@ -1,42 +0,0 @@
1
- require "rubygems"
2
- require "yard"
3
- require File.join(File.expand_path(File.dirname(__FILE__)), "testing")
4
-
5
- describe "documentation tests" do
6
- before do
7
- # Use YARD to parse all ruby files found in '../lib'
8
- libdir = File.join(File.dirname(__FILE__), "..", "lib")
9
- YARD::Registry.load(Dir.glob(File.join(libdir, "**", "*.rb")))
10
- @registry = YARD::Registry.all
11
- end
12
-
13
- test "All classes, methods, modules, and constants must be documented" do
14
- # YARD's parser works best in ruby 1.9.x, so skip 1.8.x
15
- skip if RUBY_VERSION < "1.9.2"
16
- # Note, the 'find the undocumented things' code here is
17
- # copied mostly from: YARD 0.7.5's lib/yard/cli/stats.rb
18
- #
19
- # Find all undocumented classes, modules, and constants
20
- undocumented = @registry.select do |o|
21
- [:class, :module, :constant].include?(o.type) && o.docstring.blank?
22
- end
23
-
24
- # Find all undocumented methods
25
- methods = @registry.select { |m| m.type == :method }
26
- methods.reject! { |m| m.is_alias? || !m.is_explicit? }
27
- undocumented += methods.select do |m|
28
- m.docstring.blank? && !m.overridden_method
29
- end
30
-
31
- if (undocumented.length > 0)
32
- message = ["The following are not documented"]
33
- undocumented.each do |o|
34
- message << "* #{o.type.to_s} #{o.to_s} <#{o.file}:#{o.line}>"
35
- end
36
-
37
- flunk(message.join("\n"))
38
- else
39
- pass
40
- end
41
- end
42
- end
@@ -1,14 +0,0 @@
1
- require "rubygems"
2
- require "minitest/spec"
3
-
4
- # Add '../lib' to the require path.
5
- $: << File.join(File.dirname(__FILE__), "..", "lib")
6
-
7
- # I don't really like monkeypatching, but whatever, this is probably better
8
- # than overriding the 'describe' method.
9
- class MiniTest::Spec
10
- class << self
11
- # 'it' sounds wrong, call it 'test'
12
- alias :test :it
13
- end
14
- end