iron-extensions 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,11 @@
1
+ == 1.0.1 / 2012-03-03
2
+
3
+ * Updated docs, fixed up minor packaging issues
4
+ * Added spec coverage for Kernel extensions
5
+ * Added spec coverage for Numeric extensions
6
+ * Added spec coverage for Symbol extensions
7
+ * Commit to GitHub, update gem homepage to reflect same
8
+
1
9
  == 1.0.0 / 2012-03-02
2
10
 
3
11
  * Broke out extensions from older irongaze gem
data/README.rdoc CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Written by Rob Morris @ Irongaze Consulting LLC (http://irongaze.com)
4
4
 
5
- == DESCRIPTION:
5
+ == DESCRIPTION
6
6
 
7
7
  Helpful extensions to core Ruby classes
8
8
 
9
- == ADDED EXTENSIONS:
9
+ == ADDED EXTENSIONS
10
10
 
11
11
  * Array#rand / Array#rand! - pull n random items from the array
12
12
 
@@ -84,17 +84,17 @@ Helpful extensions to core Ruby classes
84
84
  * Symbol#blank? - always false
85
85
  * Symbol#to_dashcase - same as for String
86
86
 
87
- == SYNOPSIS:
87
+ == SYNOPSIS
88
88
 
89
89
  To use:
90
90
 
91
91
  require 'iron/extensions'
92
92
 
93
- == REQUIREMENTS:
93
+ == REQUIREMENTS
94
94
 
95
95
  * None
96
96
 
97
- == INSTALL:
97
+ == INSTALL
98
98
 
99
99
  To install, simply run:
100
100
 
data/Version.txt ADDED
@@ -0,0 +1 @@
1
+ 1.0.1
@@ -1,5 +1,5 @@
1
- # Requires all extensions
2
- search_path = File.join(File.expand_path(File.dirname(__FILE__)), 'extensions', '*.rb')
1
+ # Requires all classes
2
+ search_path = File.join(File.expand_path(File.dirname(__FILE__)), '*', '*.rb')
3
3
  Dir.glob(search_path) do |path|
4
4
  require path
5
5
  end
@@ -1,9 +1,14 @@
1
-
2
1
  require 'stringio'
3
2
 
4
3
  module Kernel
5
4
 
6
- def capture_stdout
5
+ # Captures STDOUT content and returns it as a string
6
+ #
7
+ # >> capture_stdout do
8
+ # >> puts 'Heya'
9
+ # >> end
10
+ # => "Heya\n"
11
+ def capture_stdout # :yields:
7
12
  out = StringIO.new
8
13
  $stdout = out
9
14
  yield
@@ -77,7 +77,8 @@ class String
77
77
  s = self.dup
78
78
  s.gsub!(/\'/,'') # remove ' from rob's, so we don't get rob_s_blog
79
79
  s.gsub!(/\W+/, ' ') # all non-word chars to spaces
80
- s.strip! # ohh la la
80
+ s.gsub!('_',' ') # we don't like underscores
81
+ s.strip! # ooh la la
81
82
  s.downcase! #
82
83
  s.gsub!(/\ +/, '-') # spaces to dashes, preferred separator char everywhere
83
84
  s
@@ -152,7 +153,7 @@ class String
152
153
 
153
154
  # In case we're running in Rails, which defines this already...
154
155
  unless ''.respond_to?(:constantize)
155
- def constantize()
156
+ def constantize
156
157
  names = self.split('::')
157
158
  names.shift if names.empty? || names.first.empty?
158
159
 
@@ -0,0 +1,22 @@
1
+ describe Kernel do
2
+
3
+ it 'should capture STDOUT text' do
4
+ capture_stdout do
5
+ puts "hello\nworld!"
6
+ end.should == "hello\nworld!\n"
7
+ end
8
+
9
+ it 'should restore STDOUT correctly on exceptions' do
10
+ old = $stdout
11
+ old.should == STDOUT
12
+ begin
13
+ capture_stdout do
14
+ raise 'foo'
15
+ end
16
+ rescue
17
+ end
18
+ $stdout.should == STDOUT
19
+ $stdout.should == old
20
+ end
21
+
22
+ end
@@ -0,0 +1,25 @@
1
+ describe Numeric do
2
+
3
+ it 'should display correctly no matter the base type' do
4
+ 100.to_display(2).should == '100'
5
+ 100.0.to_display(2).should == '100.00'
6
+ 12345.to_display.should == '12,345'
7
+ 123450000066666234234.should be_an_instance_of(Bignum)
8
+ 123450000066666234234.to_display.should == '123,450,000,066,666,234,234'
9
+ 0.0004.to_display
10
+ end
11
+
12
+ it 'should display correctly when negative' do
13
+ -5.to_display.should == '-5'
14
+ -42333.194.to_display(1).should == '-42,333.1'
15
+ end
16
+
17
+ it 'should bound itself' do
18
+ 1.bound(2,5).should == 2
19
+ 5.bound(2,5).should == 5
20
+ 2.bound(2,5).should == 2
21
+ -1000.bound(-5,5).should == -5
22
+ 555.bound(-1,0).should == 0
23
+ end
24
+
25
+ end
@@ -1,4 +1,3 @@
1
-
2
1
  describe Object do
3
2
 
4
3
  it 'should respond to in?' do
@@ -0,0 +1,12 @@
1
+ describe Symbol do
2
+
3
+ it 'should not be blank' do
4
+ :foo.blank?.should be_false
5
+ :"_123".blank?.should be_false
6
+ end
7
+
8
+ it 'should convert to dashcase' do
9
+ :my_symbol.to_dashcase.should == 'my-symbol'
10
+ end
11
+
12
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iron-extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-02 00:00:00.000000000Z
12
+ date: 2012-03-03 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &2152110960 !ruby/object:Gem::Requirement
16
+ requirement: &2156310200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '2.6'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2152110960
24
+ version_requirements: *2156310200
25
25
  description: Adds common extensions to core Ruby classes
26
26
  email:
27
27
  - rob@irongaze.com
@@ -44,16 +44,18 @@ files:
44
44
  - lib/iron/extensions/symbol.rb
45
45
  - lib/iron/extensions.rb
46
46
  - spec/extensions/enumerable_spec.rb
47
+ - spec/extensions/kernel_spec.rb
48
+ - spec/extensions/numeric_spec.rb
47
49
  - spec/extensions/object_spec.rb
48
50
  - spec/extensions/string_spec.rb
51
+ - spec/extensions/symbol_spec.rb
49
52
  - spec/spec_helper.rb
50
53
  - LICENSE
51
54
  - History.txt
52
- - version.txt
55
+ - Version.txt
53
56
  - README.rdoc
54
- - sample.rdoc
55
57
  - .rspec
56
- homepage: http://irongaze.com
58
+ homepage: https://github.com/irongaze/iron-extensions
57
59
  licenses:
58
60
  - MIT
59
61
  post_install_message:
data/sample.rdoc DELETED
@@ -1,3 +0,0 @@
1
- This will break:
2
-
3
- 'foo'.match(/bar/)
data/version.txt DELETED
@@ -1 +0,0 @@
1
- 1.0.0