ruby-lzma 0.4.1

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.
Files changed (97) hide show
  1. data/.gitignore +6 -0
  2. data/README.markdown +15 -0
  3. data/Rakefile +53 -0
  4. data/VERSION +1 -0
  5. data/ext/Alloc.cpp +118 -0
  6. data/ext/Alloc.h +29 -0
  7. data/ext/BinTree.h +55 -0
  8. data/ext/BinTree2.h +12 -0
  9. data/ext/BinTree3.h +16 -0
  10. data/ext/BinTree3Z.h +16 -0
  11. data/ext/BinTree4.h +18 -0
  12. data/ext/BinTree4b.h +20 -0
  13. data/ext/BinTreeMain.h +444 -0
  14. data/ext/BranchX86.c +101 -0
  15. data/ext/BranchX86.h +19 -0
  16. data/ext/CRC.cpp +61 -0
  17. data/ext/CRC.h +36 -0
  18. data/ext/C_FileIO.h +45 -0
  19. data/ext/CommandLineParser.h +82 -0
  20. data/ext/Defs.h +20 -0
  21. data/ext/FileStreams.h +98 -0
  22. data/ext/HC.h +55 -0
  23. data/ext/HC2.h +13 -0
  24. data/ext/HC3.h +17 -0
  25. data/ext/HC4.h +19 -0
  26. data/ext/HC4b.h +21 -0
  27. data/ext/HCMain.h +350 -0
  28. data/ext/ICoder.h +156 -0
  29. data/ext/IMatchFinder.h +63 -0
  30. data/ext/IStream.h +62 -0
  31. data/ext/InBuffer.cpp +80 -0
  32. data/ext/InBuffer.h +76 -0
  33. data/ext/LZInWindow.cpp +102 -0
  34. data/ext/LZInWindow.h +84 -0
  35. data/ext/LZMA.h +82 -0
  36. data/ext/LZMADecoder.h +248 -0
  37. data/ext/LZMAEncoder.cpp +1504 -0
  38. data/ext/LZMAEncoder.h +416 -0
  39. data/ext/LZOutWindow.cpp +17 -0
  40. data/ext/LZOutWindow.h +66 -0
  41. data/ext/LzmaBench.h +11 -0
  42. data/ext/LzmaDecode.c +588 -0
  43. data/ext/LzmaDecode.h +131 -0
  44. data/ext/LzmaRam.cpp +228 -0
  45. data/ext/LzmaRam.h +46 -0
  46. data/ext/LzmaRamDecode.c +79 -0
  47. data/ext/LzmaRamDecode.h +55 -0
  48. data/ext/MyCom.h +203 -0
  49. data/ext/MyGuidDef.h +54 -0
  50. data/ext/MyInitGuid.h +13 -0
  51. data/ext/MyString.h +631 -0
  52. data/ext/MyUnknown.h +24 -0
  53. data/ext/MyWindows.h +183 -0
  54. data/ext/OutBuffer.cpp +117 -0
  55. data/ext/OutBuffer.h +64 -0
  56. data/ext/Pat.h +318 -0
  57. data/ext/Pat2.h +22 -0
  58. data/ext/Pat2H.h +24 -0
  59. data/ext/Pat2R.h +20 -0
  60. data/ext/Pat3H.h +24 -0
  61. data/ext/Pat4H.h +24 -0
  62. data/ext/PatMain.h +989 -0
  63. data/ext/RangeCoder.h +205 -0
  64. data/ext/RangeCoderBit.cpp +80 -0
  65. data/ext/RangeCoderBit.h +120 -0
  66. data/ext/RangeCoderBitTree.h +161 -0
  67. data/ext/RangeCoderOpt.h +31 -0
  68. data/ext/StdAfx.h +8 -0
  69. data/ext/StreamUtils.cpp +44 -0
  70. data/ext/StreamUtils.h +11 -0
  71. data/ext/StringConvert.h +71 -0
  72. data/ext/StringToInt.h +17 -0
  73. data/ext/Types.h +19 -0
  74. data/ext/Vector.h +211 -0
  75. data/ext/extconf.rb +7 -0
  76. data/ext/lzma_ruby.cpp +51 -0
  77. data/ext/lzmalib.h +64 -0
  78. data/ext/mylib.cpp +81 -0
  79. data/java/SevenZip/CRC.java +52 -0
  80. data/java/SevenZip/Compression/LZ/BinTree.java +382 -0
  81. data/java/SevenZip/Compression/LZ/InWindow.java +131 -0
  82. data/java/SevenZip/Compression/LZ/OutWindow.java +85 -0
  83. data/java/SevenZip/Compression/LZMA/Base.java +88 -0
  84. data/java/SevenZip/Compression/LZMA/Decoder.java +329 -0
  85. data/java/SevenZip/Compression/LZMA/Encoder.java +1415 -0
  86. data/java/SevenZip/Compression/RangeCoder/BitTreeDecoder.java +55 -0
  87. data/java/SevenZip/Compression/RangeCoder/BitTreeEncoder.java +99 -0
  88. data/java/SevenZip/Compression/RangeCoder/Decoder.java +88 -0
  89. data/java/SevenZip/Compression/RangeCoder/Encoder.java +151 -0
  90. data/java/SevenZip/ICodeProgress.java +6 -0
  91. data/java/SevenZip/LzmaAlone.java +253 -0
  92. data/java/SevenZip/LzmaBench.java +391 -0
  93. data/java/com/ephemeronindustries/lzma/LZMA.java +104 -0
  94. data/lib/lzma.rb +32 -0
  95. data/ruby-lzma.gemspec +136 -0
  96. data/test/test_lzma.rb +42 -0
  97. metadata +157 -0
data/lib/lzma.rb ADDED
@@ -0,0 +1,32 @@
1
+ # Ruby/JRuby LZMA
2
+ # This code, like the LZMA SDK, is public domain.
3
+
4
+ unless RUBY_PLATFORM =~ /java/
5
+ require 'lzma_ruby'
6
+ else
7
+ require 'java'
8
+ require 'lzma_java.jar'
9
+
10
+ class LZMA
11
+ def initialize
12
+ @lzma = com.ephemeronindustries.lzma.LZMA.new
13
+ end
14
+
15
+ def compress(data)
16
+ String.from_java_bytes @lzma.compress(data.to_java_bytes)
17
+ end
18
+
19
+ def decompress(data)
20
+ String.from_java_bytes @lzma.decompress(data.to_java_bytes)
21
+ end
22
+ end
23
+ end
24
+
25
+ class LZMA
26
+ def self.decompress(data)
27
+ LZMA.new.decompress(data)
28
+ end
29
+ def self.compress(data)
30
+ LZMA.new.compress(data)
31
+ end
32
+ end
data/ruby-lzma.gemspec ADDED
@@ -0,0 +1,136 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{ruby-lzma}
8
+ s.version = "0.4.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Ian Levesque"]
12
+ s.date = %q{2010-03-24}
13
+ s.description = %q{A different and possibly longer explanation of}
14
+ s.email = %q{ian@ianlevesque.org}
15
+ s.extensions = ["ext/extconf.rb"]
16
+ s.extra_rdoc_files = [
17
+ "README.markdown"
18
+ ]
19
+ s.files = [
20
+ ".gitignore",
21
+ "README.markdown",
22
+ "Rakefile",
23
+ "VERSION",
24
+ "ext/Alloc.cpp",
25
+ "ext/Alloc.h",
26
+ "ext/BinTree.h",
27
+ "ext/BinTree2.h",
28
+ "ext/BinTree3.h",
29
+ "ext/BinTree3Z.h",
30
+ "ext/BinTree4.h",
31
+ "ext/BinTree4b.h",
32
+ "ext/BinTreeMain.h",
33
+ "ext/BranchX86.c",
34
+ "ext/BranchX86.h",
35
+ "ext/CRC.cpp",
36
+ "ext/CRC.h",
37
+ "ext/C_FileIO.h",
38
+ "ext/CommandLineParser.h",
39
+ "ext/Defs.h",
40
+ "ext/FileStreams.h",
41
+ "ext/HC.h",
42
+ "ext/HC2.h",
43
+ "ext/HC3.h",
44
+ "ext/HC4.h",
45
+ "ext/HC4b.h",
46
+ "ext/HCMain.h",
47
+ "ext/ICoder.h",
48
+ "ext/IMatchFinder.h",
49
+ "ext/IStream.h",
50
+ "ext/InBuffer.cpp",
51
+ "ext/InBuffer.h",
52
+ "ext/LZInWindow.cpp",
53
+ "ext/LZInWindow.h",
54
+ "ext/LZMA.h",
55
+ "ext/LZMADecoder.h",
56
+ "ext/LZMAEncoder.cpp",
57
+ "ext/LZMAEncoder.h",
58
+ "ext/LZOutWindow.cpp",
59
+ "ext/LZOutWindow.h",
60
+ "ext/LzmaBench.h",
61
+ "ext/LzmaDecode.c",
62
+ "ext/LzmaDecode.h",
63
+ "ext/LzmaRam.cpp",
64
+ "ext/LzmaRam.h",
65
+ "ext/LzmaRamDecode.c",
66
+ "ext/LzmaRamDecode.h",
67
+ "ext/MyCom.h",
68
+ "ext/MyGuidDef.h",
69
+ "ext/MyInitGuid.h",
70
+ "ext/MyString.h",
71
+ "ext/MyUnknown.h",
72
+ "ext/MyWindows.h",
73
+ "ext/OutBuffer.cpp",
74
+ "ext/OutBuffer.h",
75
+ "ext/Pat.h",
76
+ "ext/Pat2.h",
77
+ "ext/Pat2H.h",
78
+ "ext/Pat2R.h",
79
+ "ext/Pat3H.h",
80
+ "ext/Pat4H.h",
81
+ "ext/PatMain.h",
82
+ "ext/RangeCoder.h",
83
+ "ext/RangeCoderBit.cpp",
84
+ "ext/RangeCoderBit.h",
85
+ "ext/RangeCoderBitTree.h",
86
+ "ext/RangeCoderOpt.h",
87
+ "ext/StdAfx.h",
88
+ "ext/StreamUtils.cpp",
89
+ "ext/StreamUtils.h",
90
+ "ext/StringConvert.h",
91
+ "ext/StringToInt.h",
92
+ "ext/Types.h",
93
+ "ext/Vector.h",
94
+ "ext/extconf.rb",
95
+ "ext/lzma_ruby.cpp",
96
+ "ext/lzmalib.h",
97
+ "ext/mylib.cpp",
98
+ "java/SevenZip/CRC.java",
99
+ "java/SevenZip/Compression/LZ/BinTree.java",
100
+ "java/SevenZip/Compression/LZ/InWindow.java",
101
+ "java/SevenZip/Compression/LZ/OutWindow.java",
102
+ "java/SevenZip/Compression/LZMA/Base.java",
103
+ "java/SevenZip/Compression/LZMA/Decoder.java",
104
+ "java/SevenZip/Compression/LZMA/Encoder.java",
105
+ "java/SevenZip/Compression/RangeCoder/BitTreeDecoder.java",
106
+ "java/SevenZip/Compression/RangeCoder/BitTreeEncoder.java",
107
+ "java/SevenZip/Compression/RangeCoder/Decoder.java",
108
+ "java/SevenZip/Compression/RangeCoder/Encoder.java",
109
+ "java/SevenZip/ICodeProgress.java",
110
+ "java/SevenZip/LzmaAlone.java",
111
+ "java/SevenZip/LzmaBench.java",
112
+ "java/com/ephemeronindustries/lzma/LZMA.java",
113
+ "lib/lzma.rb",
114
+ "ruby-lzma.gemspec",
115
+ "test/test_lzma.rb"
116
+ ]
117
+ s.homepage = %q{http://github.com/ianlevesque/ruby-lzma}
118
+ s.rdoc_options = ["--charset=UTF-8"]
119
+ s.require_paths = ["lib"]
120
+ s.rubygems_version = %q{1.3.6}
121
+ s.summary = %q{Simple ruby and jruby wrappers for LZMA compression and decompression.}
122
+ s.test_files = [
123
+ "test/test_lzma.rb"
124
+ ]
125
+
126
+ if s.respond_to? :specification_version then
127
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
128
+ s.specification_version = 3
129
+
130
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
131
+ else
132
+ end
133
+ else
134
+ end
135
+ end
136
+
data/test/test_lzma.rb ADDED
@@ -0,0 +1,42 @@
1
+ # Ruby/JRuby LZMA
2
+ # This code, like the LZMA SDK, is public domain.
3
+
4
+ $:.unshift File.expand_path(File.join(File.dirname(__FILE__),'..','ext'))
5
+ $:.unshift File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
6
+
7
+ require "test/unit"
8
+ require "lzma"
9
+ require 'base64'
10
+
11
+ class TestLzma < Test::Unit::TestCase
12
+ def setup
13
+ @lzma = LZMA.new
14
+ end
15
+
16
+ def teardown
17
+ @lzma = nil
18
+ end
19
+
20
+ def test_lzma_both_ways
21
+ compressed = @lzma.compress("leroy was here")
22
+ assert_not_nil(compressed)
23
+ assert_equal("leroy was here", @lzma.decompress(compressed))
24
+ end
25
+
26
+ def test_decompress_both_encoders
27
+ java_compressed = Base64.decode64("XQAAQAAOAAAAAAAAAAA2GUqrt5owxRYShsh3Etc9r5jV/9OkAAA=")
28
+ assert_equal("leroy was here", @lzma.decompress(java_compressed))
29
+
30
+ native_compressed = Base64.decode64("EXQAAgAAOAAAAAAAAAAA2GUqrt5owxRYShsh3EtbQeg4A")
31
+ assert_equal("leroy was here", @lzma.decompress(java_compressed))
32
+ end
33
+
34
+ def test_decompress_sample
35
+ rakefile_compressed = Base64.decode64 %(XQAAgACYAwAAAAAAAAA5GUqKNoFH6SMqlNELWCfVN0/ayvP6n06cnR/N5xv3\noo9rE+JmQnElb8Tya7ikChUSRZBWc5ooDLDJ1se77Hg8CyqQP4MfTg9/vuCZ\n1tAYesF25sS0JKtrKxUF8shctO9Eme6EN6e9G79JIChQ1N2LKXetNnSvtkcS\ngxOP2L2owTeuCRZ1os6lZ/OC2a7mP/1dsxQLWAKU0H66gMtv8x54orKC31IC\nqjRJIe2RSpX31ZorKNxrnoCvt3bVyvF1fJ1XeSpxjJN+OwE9wAOtSRQaeC3b\njf1qODG+J068iIBpYbrEomcriVy5CqiZJdMiumBy2lQsrNHNjfcH4ggB678/\n2b1C2CYxOMOqZQTAz/TcsdjSBzSwSV//yJHP30gZT3H/7o9mn457OgV/l7KG\nAtwYMU/zcAxHWDpTX7V4H4v8YG75aJEfMAYiNcIlV9VU6xy8CvucboFiPIQv\nm7uzw4pnUwr+tKlH335EjovKU5qv+8ZNZaONQUxtnDaB76McQuigAA==\n)
36
+ decompressed = @lzma.decompress(rakefile_compressed)
37
+ assert_match(/require 'rake'/, decompressed)
38
+ assert_match(/desc "compile .classes to .jar"/, decompressed)
39
+ assert_match(/desc "compile C extension"/, decompressed)
40
+ assert_match(/task :test => :compile/, decompressed)
41
+ end
42
+ end
metadata ADDED
@@ -0,0 +1,157 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby-lzma
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 4
8
+ - 1
9
+ version: 0.4.1
10
+ platform: ruby
11
+ authors:
12
+ - Ian Levesque
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-03-24 00:00:00 -04:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: A different and possibly longer explanation of
22
+ email: ian@ianlevesque.org
23
+ executables: []
24
+
25
+ extensions:
26
+ - ext/extconf.rb
27
+ extra_rdoc_files:
28
+ - README.markdown
29
+ files:
30
+ - .gitignore
31
+ - README.markdown
32
+ - Rakefile
33
+ - VERSION
34
+ - ext/Alloc.cpp
35
+ - ext/Alloc.h
36
+ - ext/BinTree.h
37
+ - ext/BinTree2.h
38
+ - ext/BinTree3.h
39
+ - ext/BinTree3Z.h
40
+ - ext/BinTree4.h
41
+ - ext/BinTree4b.h
42
+ - ext/BinTreeMain.h
43
+ - ext/BranchX86.c
44
+ - ext/BranchX86.h
45
+ - ext/CRC.cpp
46
+ - ext/CRC.h
47
+ - ext/C_FileIO.h
48
+ - ext/CommandLineParser.h
49
+ - ext/Defs.h
50
+ - ext/FileStreams.h
51
+ - ext/HC.h
52
+ - ext/HC2.h
53
+ - ext/HC3.h
54
+ - ext/HC4.h
55
+ - ext/HC4b.h
56
+ - ext/HCMain.h
57
+ - ext/ICoder.h
58
+ - ext/IMatchFinder.h
59
+ - ext/IStream.h
60
+ - ext/InBuffer.cpp
61
+ - ext/InBuffer.h
62
+ - ext/LZInWindow.cpp
63
+ - ext/LZInWindow.h
64
+ - ext/LZMA.h
65
+ - ext/LZMADecoder.h
66
+ - ext/LZMAEncoder.cpp
67
+ - ext/LZMAEncoder.h
68
+ - ext/LZOutWindow.cpp
69
+ - ext/LZOutWindow.h
70
+ - ext/LzmaBench.h
71
+ - ext/LzmaDecode.c
72
+ - ext/LzmaDecode.h
73
+ - ext/LzmaRam.cpp
74
+ - ext/LzmaRam.h
75
+ - ext/LzmaRamDecode.c
76
+ - ext/LzmaRamDecode.h
77
+ - ext/MyCom.h
78
+ - ext/MyGuidDef.h
79
+ - ext/MyInitGuid.h
80
+ - ext/MyString.h
81
+ - ext/MyUnknown.h
82
+ - ext/MyWindows.h
83
+ - ext/OutBuffer.cpp
84
+ - ext/OutBuffer.h
85
+ - ext/Pat.h
86
+ - ext/Pat2.h
87
+ - ext/Pat2H.h
88
+ - ext/Pat2R.h
89
+ - ext/Pat3H.h
90
+ - ext/Pat4H.h
91
+ - ext/PatMain.h
92
+ - ext/RangeCoder.h
93
+ - ext/RangeCoderBit.cpp
94
+ - ext/RangeCoderBit.h
95
+ - ext/RangeCoderBitTree.h
96
+ - ext/RangeCoderOpt.h
97
+ - ext/StdAfx.h
98
+ - ext/StreamUtils.cpp
99
+ - ext/StreamUtils.h
100
+ - ext/StringConvert.h
101
+ - ext/StringToInt.h
102
+ - ext/Types.h
103
+ - ext/Vector.h
104
+ - ext/extconf.rb
105
+ - ext/lzma_ruby.cpp
106
+ - ext/lzmalib.h
107
+ - ext/mylib.cpp
108
+ - java/SevenZip/CRC.java
109
+ - java/SevenZip/Compression/LZ/BinTree.java
110
+ - java/SevenZip/Compression/LZ/InWindow.java
111
+ - java/SevenZip/Compression/LZ/OutWindow.java
112
+ - java/SevenZip/Compression/LZMA/Base.java
113
+ - java/SevenZip/Compression/LZMA/Decoder.java
114
+ - java/SevenZip/Compression/LZMA/Encoder.java
115
+ - java/SevenZip/Compression/RangeCoder/BitTreeDecoder.java
116
+ - java/SevenZip/Compression/RangeCoder/BitTreeEncoder.java
117
+ - java/SevenZip/Compression/RangeCoder/Decoder.java
118
+ - java/SevenZip/Compression/RangeCoder/Encoder.java
119
+ - java/SevenZip/ICodeProgress.java
120
+ - java/SevenZip/LzmaAlone.java
121
+ - java/SevenZip/LzmaBench.java
122
+ - java/com/ephemeronindustries/lzma/LZMA.java
123
+ - lib/lzma.rb
124
+ - ruby-lzma.gemspec
125
+ - test/test_lzma.rb
126
+ has_rdoc: true
127
+ homepage: http://github.com/ianlevesque/ruby-lzma
128
+ licenses: []
129
+
130
+ post_install_message:
131
+ rdoc_options:
132
+ - --charset=UTF-8
133
+ require_paths:
134
+ - lib
135
+ required_ruby_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ segments:
140
+ - 0
141
+ version: "0"
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ segments:
147
+ - 0
148
+ version: "0"
149
+ requirements: []
150
+
151
+ rubyforge_project:
152
+ rubygems_version: 1.3.6
153
+ signing_key:
154
+ specification_version: 3
155
+ summary: Simple ruby and jruby wrappers for LZMA compression and decompression.
156
+ test_files:
157
+ - test/test_lzma.rb