bit_hash 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source "http://rubygems.org"
2
2
  # Add dependencies required to use your gem here.
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
- gem "to_insane", ">=0.2.1"
5
+ gem "to_insane", ">=0.2.2"
6
6
  # Add dependencies to develop your gem here.
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
data/Gemfile.lock CHANGED
@@ -18,7 +18,7 @@ GEM
18
18
  diff-lcs (~> 1.1.2)
19
19
  rspec-mocks (2.5.0)
20
20
  shoulda (2.11.3)
21
- to_insane (0.2.1)
21
+ to_insane (0.2.2)
22
22
 
23
23
  PLATFORMS
24
24
  ruby
@@ -29,4 +29,4 @@ DEPENDENCIES
29
29
  rcov
30
30
  rspec
31
31
  shoulda
32
- to_insane (>= 0.2.1)
32
+ to_insane (>= 0.2.2)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/bit_hash.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{bit_hash}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ryan Ong"]
@@ -44,14 +44,14 @@ Gem::Specification.new do |s|
44
44
  s.specification_version = 3
45
45
 
46
46
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
47
- s.add_runtime_dependency(%q<to_insane>, [">= 0.2.1"])
47
+ s.add_runtime_dependency(%q<to_insane>, [">= 0.2.2"])
48
48
  s.add_development_dependency(%q<shoulda>, [">= 0"])
49
49
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
50
50
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
51
51
  s.add_development_dependency(%q<rcov>, [">= 0"])
52
52
  s.add_development_dependency(%q<rspec>, [">= 0"])
53
53
  else
54
- s.add_dependency(%q<to_insane>, [">= 0.2.1"])
54
+ s.add_dependency(%q<to_insane>, [">= 0.2.2"])
55
55
  s.add_dependency(%q<shoulda>, [">= 0"])
56
56
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
57
57
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
@@ -59,7 +59,7 @@ Gem::Specification.new do |s|
59
59
  s.add_dependency(%q<rspec>, [">= 0"])
60
60
  end
61
61
  else
62
- s.add_dependency(%q<to_insane>, [">= 0.2.1"])
62
+ s.add_dependency(%q<to_insane>, [">= 0.2.2"])
63
63
  s.add_dependency(%q<shoulda>, [">= 0"])
64
64
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
65
65
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
data/lib/bit_hash.rb CHANGED
@@ -7,7 +7,11 @@ class BitHash
7
7
  # base is the base value you want to use. Defaults to a URL safe character base which is 63
8
8
  # character set can also be changed but not really necessary. read to_insane doc for more details
9
9
  def initialize(config_map=nil, *options)
10
- load_options(options)
10
+ @options = {
11
+ :base => :url_safe,
12
+ :char_set => nil,
13
+ }
14
+ @options = load_options(options)
11
15
  @config = Hash.new
12
16
  @default = Hash.new
13
17
  #validate mapping
@@ -144,10 +148,8 @@ class BitHash
144
148
  # takes a given config string and returns a mapped hash
145
149
  # please read to_insane doc for info on base and char_set
146
150
  def parse(config_string, *options)
147
- load_options(options)
148
- raise ArgumentError, "Prefix must be a string" if !@options[:prefix].nil? && !@options[:prefix].kind_of?(String)
149
- config_string[0..@options[:prefix].size] = nil unless @options[:prefix].nil?
150
- config_string = config_string.from_insane(@options[:base],@options[:char_set]).to_s(2)
151
+ options = load_options(options)
152
+ config_string = config_string.from_insane(options[:base],options[:char_set]).to_s(2)
151
153
  config_array = config_string.split('')
152
154
  new_config = @default.dup
153
155
  @config_map.each do |conf|
@@ -184,10 +186,9 @@ class BitHash
184
186
  # turns hash into a small compact string.
185
187
  # see to_insane rdoc for base, and char_set definitions
186
188
  def to_s(*options)
187
- load_options(options)
189
+ options = load_options(options)
188
190
  str = ''
189
- str << @options[:prefix] if @options[:prefix].kind_of? String
190
- str << to_i.to_insane(@options[:base], @options[:char_set])
191
+ str << to_i.to_insane(options[:base], options[:char_set])
191
192
  str
192
193
  end
193
194
 
@@ -231,14 +232,14 @@ class BitHash
231
232
  end
232
233
 
233
234
  def load_options(options)
234
- if options.kind_of? Array
235
- @options = {:base => options[0], :char_set => options[1]}
236
- elsif options.kind_of? Hash
237
- @options = options
235
+ new_options = @options.dup
236
+ if options[0].kind_of? Hash
237
+ new_options.merge(options[0])
238
+ else
239
+ new_options[:base] = options[0] unless options[0].nil?
240
+ new_options[:char_set] = options[1] unless options[1].nil?
238
241
  end
239
- @options[:base] ||= :url_safe
240
- @options[:char_set] ||= nil
241
- @options[:prefix] ||= nil
242
+ new_options
242
243
  end
243
244
 
244
245
  def get_check_config(key,conf)
@@ -77,6 +77,10 @@ describe BitHash do
77
77
  @config.parse(@config.to_s).should eql(@config.to_hash)
78
78
  end
79
79
 
80
+ it "should have load same config" do
81
+ @config.parse(@config.to_s(20),20).should eql(@config.to_hash)
82
+ end
83
+
80
84
  it "should output equal it self after being converted and parsed" do
81
85
  str = @config.to_s
82
86
  bin = @config.to_bin
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: bit_hash
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.0
5
+ version: 0.1.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Ryan Ong
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.2.1
23
+ version: 0.2.2
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: *id001
@@ -115,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - ">="
117
117
  - !ruby/object:Gem::Version
118
- hash: 59358543
118
+ hash: 898955667
119
119
  segments:
120
120
  - 0
121
121
  version: "0"