lz_string 0.1.1 → 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: 4deb314dc56a99124ebd3b6f2cbf7c2606c53e72bbcc01ffd1dd1b300138c063
4
- data.tar.gz: c563a44e9b4f999f8a129f0acd066fed1a05c1f9ecc2b171b5245fe5b3d652ac
3
+ metadata.gz: 32266dd809c6410d9b821eca33a4f6a690873a8e2911e9f402db6c796345a643
4
+ data.tar.gz: f658e1872ab70b804e30d39ec0704f65495fad99da03cb5825f2bccfe193e652
5
5
  SHA512:
6
- metadata.gz: b7f31cf34b11b9850ec6f49a11f067e9edf8073d1560953334a615a4bee7486ed2ba653c8129baae694f073e0343e22fbfcd86495f75c8848fce72bdd390238a
7
- data.tar.gz: fc6e306345c9e16c46e8e07269aeeb7170c73b35d9ef484cb32a99ccc5b69e7ffc9599fdc76366a4646a51478664aef77d6a30314e24d685bd6c71fd93d2a1c2
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.1"
3
+ VERSION = "0.2.0"
4
4
  end
data/lib/lz_string.rb CHANGED
@@ -1,7 +1,7 @@
1
- require "pry"
2
1
  require "lz_string/base"
3
2
  require "lz_string/base64"
4
3
  require "lz_string/utf16"
4
+ require "lz_string/urisafe"
5
5
  require "lz_string/version"
6
6
 
7
7
  # LZ-based compression algorithm.
metadata CHANGED
@@ -1,15 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lz_string
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
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: 2019-12-05 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2023-06-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: yard
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec_junit_formatter
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: colorize
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov-rcov-text
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
13
125
  description: Ruby implementation of LZ-String compression algorithm
14
126
  email:
15
127
  - altivi.prog@gmail.com
@@ -21,12 +133,14 @@ files:
21
133
  - lib/lz_string.rb
22
134
  - lib/lz_string/base.rb
23
135
  - lib/lz_string/base64.rb
136
+ - lib/lz_string/urisafe.rb
24
137
  - lib/lz_string/utf16.rb
25
138
  - lib/lz_string/version.rb
26
139
  homepage: https://github.com/Altivi/lz-string
27
- licenses: []
140
+ licenses:
141
+ - MIT
28
142
  metadata: {}
29
- post_install_message:
143
+ post_install_message:
30
144
  rdoc_options: []
31
145
  require_paths:
32
146
  - lib
@@ -41,9 +155,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
41
155
  - !ruby/object:Gem::Version
42
156
  version: '0'
43
157
  requirements: []
44
- rubyforge_project:
45
- rubygems_version: 2.7.6
46
- signing_key:
158
+ rubygems_version: 3.1.6
159
+ signing_key:
47
160
  specification_version: 4
48
161
  summary: Ruby implementation of LZ-String compression algorithm
49
162
  test_files: []