epitools 0.4.44 → 0.4.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.44
1
+ 0.4.45
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{epitools}
8
- s.version = "0.4.44"
8
+ s.version = "0.4.45"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["epitron"]
12
- s.date = %q{2011-06-15}
12
+ s.date = %q{2011-06-23}
13
13
  s.description = %q{Miscellaneous utility libraries to make my life easier.}
14
14
  s.email = %q{chris@ill-logic.com}
15
15
  s.extra_rdoc_files = [
@@ -385,8 +385,7 @@ module Enumerable
385
385
  alias_method :all, :to_a
386
386
 
387
387
  #
388
- # Split this enumerable into an array of pieces given some
389
- # boundary condition.
388
+ # Split this enumerable into chunks, given some boundary condition. (Returns an array of arrays.)
390
389
  #
391
390
  # Options:
392
391
  # :include_boundary => true #=> include the element that you're splitting at in the results
@@ -404,10 +403,9 @@ module Enumerable
404
403
  # chapters = File.read("ebook.txt").split(/Chapter \d+/, :include_boundary=>true)
405
404
  # #=> [ ["Chapter 1", ...], ["Chapter 2", ...], etc. ]
406
405
  #
407
- # TODO:
408
- # - Ruby 1.9 returns Enumerators for everything now. Maybe do that?
409
- #
410
406
  def split_at(matcher=nil, options={}, &block)
407
+ # TODO: Ruby 1.9 returns Enumerators for everything now. Maybe use that?
408
+
411
409
  return self unless self.any?
412
410
 
413
411
  include_boundary = options[:include_boundary] || false
@@ -458,7 +456,7 @@ module Enumerable
458
456
  end
459
457
 
460
458
  #
461
- # Split the array into chunks, with the boundaries being after the element to split on.
459
+ # Split the array into chunks, cutting between the matched element and the next element.
462
460
  #
463
461
  # Example:
464
462
  # [1,2,3,4].split_after{|e| e == 3 } #=> [ [1,2,3], [4] ]
@@ -470,7 +468,7 @@ module Enumerable
470
468
  end
471
469
 
472
470
  #
473
- # Split the array into chunks. The boundaries will lie before the element to split on.
471
+ # Split the array into chunks, cutting between the matched element and the previous element.
474
472
  #
475
473
  # Example:
476
474
  # [1,2,3,4].split_before{|e| e == 3 } #=> [ [1,2], [3,4] ]
@@ -87,7 +87,7 @@ class Browser
87
87
  #body = compressed_body
88
88
  body = Zlib::Inflate.inflate(compressed_body)
89
89
 
90
- if content_type =~ /^(text\/html)|(application\/xhtml\+xml)/i
90
+ if content_type =~ %r{^(text/html|text/xml|application/xhtml\+xml)}i
91
91
  Mechanize::Page.new(
92
92
  #initialize(uri=nil, response=nil, body=nil, code=nil, mech=nil)
93
93
  URI.parse(url),
@@ -57,51 +57,50 @@ class Numeric
57
57
 
58
58
  tens, hunds = nil, nil
59
59
 
60
- chars = triplet.chars.to_a
60
+ digits = triplet.chars.to_a
61
61
 
62
- raise "Error: Not a triplet: #{triplet}" if chars.size > 3 or chars.size < 1
62
+ raise "Error: Not a triplet: #{triplet}" if digits.size > 3 or digits.size < 1
63
63
 
64
- if chars.size == 3
65
- n = chars.shift.to_i
66
- hunds = NAMES_SMALL[n] + "-hundred" if n > 0
67
- chars.shift if chars.first == '0'
64
+ if digits.size == 3
65
+ digit = digits.shift.to_i
66
+ hunds = NAMES_SMALL[digit] + "-hundred" if digit > 0
67
+ digits.shift if digits.first == '0'
68
68
  end
69
69
 
70
- if chars.size == 2
71
- n = chars.join('').to_i
70
+ if digits.size == 2
71
+ n = digits.join('').to_i
72
72
 
73
73
  if n > 0 and n < 20
74
74
  tens = NAMES_SMALL[n]
75
75
  elsif n > 0
76
- tens = NAMES_MEDIUM[chars.shift.to_i - 2]
77
- if chars.first != '0'
78
- tens += "-" + NAMES_SMALL[chars.shift.to_i]
76
+ tens = NAMES_MEDIUM[digits.shift.to_i - 2]
77
+ if digits.first != '0'
78
+ tens += "-" + NAMES_SMALL[digits.shift.to_i]
79
79
  else
80
- chars.shift
80
+ digits.shift
81
81
  end
82
82
  end
83
83
  end
84
84
 
85
- if chars.size == 1
86
- n = chars.join('').to_i
85
+ if digits.size == 1
86
+ n = digits.join('').to_i
87
87
  tens = NAMES_SMALL[n] if n > 0
88
88
  end
89
-
90
-
89
+
91
90
  if hunds
92
91
  if tens
93
92
  result << "#{hunds} and #{tens}"
94
- else
93
+ else
95
94
  result << hunds
96
95
  end
97
96
  else
98
97
  result << tens if tens
99
98
  end
100
-
99
+
101
100
  magnitude = (num_triplets - i)
102
101
  result << NAMES_LARGE[magnitude-2] if magnitude > 1
103
102
 
104
- whole_thing << result.join(' ')
103
+ whole_thing << result.join(' ') if result.any?
105
104
  end
106
105
 
107
106
  whole_thing.join ', '
@@ -15,7 +15,12 @@ module Sys
15
15
  return @os if @os
16
16
 
17
17
  require 'rbconfig'
18
- host_os = Config::CONFIG['host_os']
18
+ if defined? RbConfig
19
+ host_os = RbConfig::CONFIG['host_os']
20
+ else
21
+ host_os = Config::CONFIG['host_os']
22
+ end
23
+
19
24
  case host_os
20
25
  when /darwin/
21
26
  @os = "Darwin"
@@ -28,4 +28,8 @@ describe Numeric do
28
28
  lambda { 10.googol }.should raise_error
29
29
  end
30
30
 
31
+ it "handles 1.thousand.to_words properly" do
32
+ 1.thousand.to_words.should == "one thousand"
33
+ end
34
+
31
35
  end
metadata CHANGED
@@ -1,61 +1,58 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: epitools
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.45
4
5
  prerelease:
5
- version: 0.4.44
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - epitron
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-06-15 00:00:00 -04:00
12
+ date: 2011-06-23 00:00:00.000000000 -04:00
14
13
  default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
17
16
  name: rspec
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &85952530 !ruby/object:Gem::Requirement
20
18
  none: false
21
- requirements:
19
+ requirements:
22
20
  - - ~>
23
- - !ruby/object:Gem::Version
21
+ - !ruby/object:Gem::Version
24
22
  version: 2.2.0
25
23
  type: :development
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: mechanize
29
24
  prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: *85952530
26
+ - !ruby/object:Gem::Dependency
27
+ name: mechanize
28
+ requirement: &85952230 !ruby/object:Gem::Requirement
31
29
  none: false
32
- requirements:
30
+ requirements:
33
31
  - - ~>
34
- - !ruby/object:Gem::Version
32
+ - !ruby/object:Gem::Version
35
33
  version: 1.0.0
36
34
  type: :development
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: sqlite3-ruby
40
35
  prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
36
+ version_requirements: *85952230
37
+ - !ruby/object:Gem::Dependency
38
+ name: sqlite3-ruby
39
+ requirement: &85951950 !ruby/object:Gem::Requirement
42
40
  none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: "0"
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
47
45
  type: :development
48
- version_requirements: *id003
46
+ prerelease: false
47
+ version_requirements: *85951950
49
48
  description: Miscellaneous utility libraries to make my life easier.
50
49
  email: chris@ill-logic.com
51
50
  executables: []
52
-
53
51
  extensions: []
54
-
55
- extra_rdoc_files:
52
+ extra_rdoc_files:
56
53
  - LICENSE
57
54
  - README.rdoc
58
- files:
55
+ files:
59
56
  - .document
60
57
  - LICENSE
61
58
  - README.rdoc
@@ -102,31 +99,28 @@ files:
102
99
  - spec/zopen_spec.rb
103
100
  has_rdoc: true
104
101
  homepage: http://github.com/epitron/epitools
105
- licenses:
102
+ licenses:
106
103
  - WTFPL
107
104
  post_install_message:
108
105
  rdoc_options: []
109
-
110
- require_paths:
106
+ require_paths:
111
107
  - lib
112
- required_ruby_version: !ruby/object:Gem::Requirement
108
+ required_ruby_version: !ruby/object:Gem::Requirement
113
109
  none: false
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: "0"
118
- required_rubygems_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
119
115
  none: false
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: "0"
116
+ requirements:
117
+ - - ! '>='
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
124
120
  requirements: []
125
-
126
121
  rubyforge_project:
127
122
  rubygems_version: 1.6.2
128
123
  signing_key:
129
124
  specification_version: 3
130
125
  summary: NOT UTILS... METILS!
131
126
  test_files: []
132
-