ruby-lzma 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
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