Skip to content
This repository has been archived by the owner on Feb 21, 2024. It is now read-only.

Commit

Permalink
bump to 0.0.6
Browse files Browse the repository at this point in the history
  • Loading branch information
kachick committed Sep 11, 2012
1 parent 220a6a8 commit f65406a
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 16 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ require 'integer/base'


Integer::Base.parse '10', %w[0 1 2 3 4 5 6 7 8 9] #=> 10 Integer::Base.parse '10', %w[0 1 2 3 4 5 6 7 8 9] #=> 10
Integer::Base.parse '10', %w[0 1] #=> 2 Integer::Base.parse '10', %w[0 1] #=> 2
Integer::Base.string_for 10, %w[0 1] #=> '2'




require 'integer/base/core_ext' require 'integer/base/core_ext'
Expand All @@ -43,7 +44,7 @@ require 'integer/base/core_ext'
'1?'.to_s [*'0'..'9', *'A'..'Z', '?'] #=> '73' (37 * 1 + 36 * 1) '1?'.to_s [*'0'..'9', *'A'..'Z', '?'] #=> '73' (37 * 1 + 36 * 1)
``` ```


### Appendix. Let's begin, your strange base number. ### Let's begin, your strange base number.


```ruby ```ruby


Expand Down
3 changes: 2 additions & 1 deletion lib/integer/base.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ class Integer
module Base module Base


class InvalidCharacterError < TypeError; end class InvalidCharacterError < TypeError; end


# @return [Regexp]
SPECIAL_CHAR_PATTERN = /[\x00-\x20\-\+]/ SPECIAL_CHAR_PATTERN = /[\x00-\x20\-\+]/


# @return [Hash] # @return [Hash]
Expand Down
4 changes: 2 additions & 2 deletions lib/integer/base/core_ext.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class String
# @overload to_i(base_number) # @overload to_i(base_number)
# @param [Fixnum] base_number Delegate to standard to_i # @param [Fixnum] base_number Delegate to standard to_i
# @overload to_i(positional_chars) # @overload to_i(positional_chars)
# @param [Array<#to_sym>] positional_chars # @param [Array<Symbol, String, #to_sym>] positional_chars
# @return [Integer] # @return [Integer]
def to_i(base=10) def to_i(base=10)
case base case base
Expand All @@ -27,7 +27,7 @@ class Integer
# @overload to_s(base_number) # @overload to_s(base_number)
# @param [Fixnum] base_number Delegate to standard to_s # @param [Fixnum] base_number Delegate to standard to_s
# @overload to_s(positional_chars) # @overload to_s(positional_chars)
# @param [Array<#to_sym>] positional_chars # @param [Array<Symbol, String, #to_sym>] positional_chars
# @return [String] # @return [String]
def to_s(base=10) def to_s(base=10)
case base case base
Expand Down
24 changes: 12 additions & 12 deletions lib/integer/base/singleton_class.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -2,34 +2,34 @@ class Integer; module Base


class << self class << self


# @param [#to_str] str # @param [String, #to_str] str
# @param [Array<#to_sym>] chars # @param [Array<Symbol, String, #to_sym>] positional_chars
# @return [Integer] # @return [Integer]
def parse(str, chars) def parse(str, positional_chars)
str = str.to_str.downcase str = str.to_str.downcase


sign = parse_sign! str sign = parse_sign! str
abs = ( abs = (
case chars.length case positional_chars.length
when 1 when 1
parse_unary_abs str, chars.first parse_unary_abs str, positional_chars.first
else else
parse_positional_abs str, chars parse_positional_abs str, positional_chars
end end
) )


(sign == :-) ? -abs : abs (sign == :-) ? -abs : abs
end end


# @param [#to_int] num # @param [Integer, #to_int] num
# @param [Array<#to_sym>] chars # @param [Array<Symbol, String, #to_sym>] positional_chars
# @return [String] # @return [String]
def string_for(num, chars) def string_for(num, positional_chars)
case chars.length case positional_chars.length
when 1 when 1
string_unary_for num, chars.first string_unary_for num, positional_chars.first
else else
string_positional_for num, chars string_positional_for num, positional_chars
end end
end end


Expand Down

0 comments on commit f65406a

Please sign in to comment.