lz_string 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 61f148639025125bcb5887b92f5ff690391b9fc0c132397f64ddb5c47d0dc2a1
4
- data.tar.gz: a5c53de6310a52924a84d4c6bdc516ba5dddb15c9e72d1c690de3cbbbfeb63d6
3
+ metadata.gz: 32266dd809c6410d9b821eca33a4f6a690873a8e2911e9f402db6c796345a643
4
+ data.tar.gz: f658e1872ab70b804e30d39ec0704f65495fad99da03cb5825f2bccfe193e652
5
5
  SHA512:
6
- metadata.gz: 1bd1bf273bd06360897c39e9eedef26a2e1fdc44594f50056aa48141b49688f68b60103d1ba2beb14764ef018215750634592f9bd7e0945d30f7859f34fa4c20
7
- data.tar.gz: 66b70d1029cfe4d986885cdbff925a103a5636c2189bfa769d7b49fc2deb6d67d0a4a77c2d1dd8318265e1d6ddf1819cd0dcedd3fd8ce2507a29dc61e340e6f2
6
+ metadata.gz: 3d2d77da7df4f32ae0d50bd58e38b491950c2e48a4b10f1bff5b2f6a30dc3bff292e821407feaaf5ca964acf1dcc78543fb7a8f7275feb64d058b89a3ae8b928
7
+ data.tar.gz: 9e3850db9f8b4557e9fa9b5aa60770926f1f1e71f91d478cdf8c4c04dd5144081ccce636c564c9e5013215988de1cd5b11bb0483a087e7491a1ff9e9922f2647
@@ -0,0 +1,42 @@
1
+ module LZString
2
+ class UriSafe
3
+ # Base64 alphabet.
4
+ KEY_STR_URISAFE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$"
5
+
6
+ # @param input [String]
7
+ def self.compress(input)
8
+ return "" if input.nil?
9
+
10
+ LZString::Base.compress(input, 6, lambda { |a| KEY_STR_URISAFE[a] })
11
+ end
12
+
13
+ # @param compressed [String]
14
+ def self.decompress(compressed)
15
+ return "" if compressed.nil?
16
+ return nil if compressed == ""
17
+ compressed.gsub!(" ","+")
18
+ LZString::Base.decompress(
19
+ compressed.length,
20
+ 32,
21
+ lambda { |index| get_base_value(KEY_STR_URISAFE, compressed[index]) }
22
+ )
23
+ end
24
+
25
+ # @param alphabet [String]
26
+ # @param character [String]
27
+ def self.get_base_value(alphabet, character)
28
+ base_reverse_dic = {}
29
+
30
+ if (!base_reverse_dic[alphabet])
31
+ base_reverse_dic[alphabet] = {}
32
+ for i in 0...alphabet.length do
33
+ base_reverse_dic[alphabet][alphabet[i]] = i
34
+ end
35
+ end
36
+
37
+ base_reverse_dic[alphabet][character]
38
+ end
39
+
40
+ private_class_method :get_base_value
41
+ end
42
+ end
@@ -1,4 +1,4 @@
1
1
  module LZString
2
2
  # :nodoc:
3
- VERSION = "0.1.2"
3
+ VERSION = "0.2.0"
4
4
  end
data/lib/lz_string.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "lz_string/base"
2
2
  require "lz_string/base64"
3
3
  require "lz_string/utf16"
4
+ require "lz_string/urisafe"
4
5
  require "lz_string/version"
5
6
 
6
7
  # LZ-based compression algorithm.
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lz_string
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Altivi
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-27 00:00:00.000000000 Z
11
+ date: 2023-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '13'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '13'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: yard
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -133,13 +133,14 @@ files:
133
133
  - lib/lz_string.rb
134
134
  - lib/lz_string/base.rb
135
135
  - lib/lz_string/base64.rb
136
+ - lib/lz_string/urisafe.rb
136
137
  - lib/lz_string/utf16.rb
137
138
  - lib/lz_string/version.rb
138
139
  homepage: https://github.com/Altivi/lz-string
139
140
  licenses:
140
141
  - MIT
141
142
  metadata: {}
142
- post_install_message:
143
+ post_install_message:
143
144
  rdoc_options: []
144
145
  require_paths:
145
146
  - lib
@@ -154,8 +155,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
154
155
  - !ruby/object:Gem::Version
155
156
  version: '0'
156
157
  requirements: []
157
- rubygems_version: 3.0.6
158
- signing_key:
158
+ rubygems_version: 3.1.6
159
+ signing_key:
159
160
  specification_version: 4
160
161
  summary: Ruby implementation of LZ-String compression algorithm
161
162
  test_files: []