ebcdic_converter 1.1.3 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.3
1
+ 1.2.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ebcdic_converter}
8
- s.version = "1.1.3"
8
+ s.version = "1.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bernie Telles"]
12
- s.date = %q{2010-07-15}
12
+ s.date = %q{2010-08-17}
13
13
  s.description = %q{Adds a method (ebcdic_to_i) to String that converts it from ebcdic to integer}
14
14
  s.email = %q{btelles@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -34,6 +34,13 @@ module EbcdicConverter
34
34
  end
35
35
 
36
36
  class String
37
+ # extends the string class to convert
38
+ # one ebcdic representation to a number
39
+ # For example:
40
+ #
41
+ # '12C' => 123
42
+ # '12L' => -123
43
+ #
37
44
  def ebcdic_to_i(*options)
38
45
  unless options.empty?
39
46
  @strict = options[0][:strict]
@@ -43,12 +50,25 @@ class String
43
50
  last_digit = stripped_me[-1..-1]
44
51
  last_digit =~ /^\d$/ ?
45
52
  stricted(stripped_me.to_i) :
46
- to_ebcdic(stripped_me)
53
+ one_char_to_ebcdic(stripped_me)
47
54
  else
48
55
  0
49
56
  end
50
57
  end
51
58
 
59
+ # Converts existing number to ebcdic.
60
+ # For example
61
+ #
62
+ # '123' => '12C'
63
+ # '-123' => '12L'
64
+ def to_ebcdic
65
+ new_str = self.dup
66
+ self[0..0] == '-' ?
67
+ new_str[1..-2] << EbcdicConverter::EBCDICNEG.invert[new_str[-1..-1]] :
68
+ new_str[0..-2] << EbcdicConverter::EBCDICPOS.invert[new_str[-1..-1]]
69
+ end
70
+
71
+
52
72
  private
53
73
 
54
74
  def stricted(integer)
@@ -59,7 +79,7 @@ class String
59
79
  end
60
80
  end
61
81
 
62
- def to_ebcdic(stripped_me)
82
+ def one_char_to_ebcdic(stripped_me)
63
83
  last_digit = stripped_me[-1..-1]
64
84
  EbcdicConverter::EBCDICPOS.keys.include?(last_digit) ?
65
85
  unsigned_ebcdic(stripped_me) :
@@ -22,4 +22,12 @@ describe "EbcdicConverter" do
22
22
  }.should raise_error
23
23
  end
24
24
  end
25
+ describe "to_ebcdic" do
26
+ it 'converts a positive string' do
27
+ '123'.to_ebcdic.should == '12C'
28
+ end
29
+ it 'converts a negative string' do
30
+ '-123'.to_ebcdic.should == '12L'
31
+ end
32
+ end
25
33
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ebcdic_converter
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
- - 1
9
- - 3
10
- version: 1.1.3
8
+ - 2
9
+ - 0
10
+ version: 1.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bernie Telles
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-15 00:00:00 -04:00
18
+ date: 2010-08-17 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency