freighthopper 0.1.0

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/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ .svn
2
+ lib/svn
3
+ vendor/gems/gems/*
4
+ vendor/gems/specifications/*
5
+ vendor/gems/doc/*
6
+ vendor/gems/environment.rb
7
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ only 'test' do
2
+ gem "test-rig", '0.0.1', :require_as => "test_rig"
3
+ gem 'shoulda'
4
+ end
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Jacob Rothstein
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README ADDED
File without changes
data/Rakefile ADDED
@@ -0,0 +1,29 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "freighthopper"
8
+ gem.summary = %Q{Some extensions for riding the rails}
9
+ gem.description = %Q{More core ext}
10
+ gem.email = "github@jacobrothstein.com"
11
+ gem.homepage = "http://github.com/jbr/freighthopper"
12
+ gem.authors = ["Jacob Rothstein"]
13
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
14
+ end
15
+ Jeweler::GemcutterTasks.new
16
+ rescue LoadError
17
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
18
+ end
19
+
20
+ require 'rake/testtask'
21
+ Rake::TestTask.new(:test) do |test|
22
+ test.libs << 'lib' << 'test'
23
+ test.pattern = 'test/**/*_test.rb'
24
+ test.verbose = true
25
+ end
26
+
27
+ task :test => :check_dependencies
28
+
29
+ task :default => :test
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,3 @@
1
+ #!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
2
+ require File.join(File.dirname(__FILE__), "../vendor/gems/environment")
3
+ load File.join(File.dirname(__FILE__), "../vendor/gems/gems/shoulda-2.10.2/bin/convert_to_should_syntax")
@@ -0,0 +1,75 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{freighthopper}
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Jacob Rothstein"]
12
+ s.date = %q{2010-02-03}
13
+ s.default_executable = %q{convert_to_should_syntax}
14
+ s.description = %q{More core ext}
15
+ s.email = %q{github@jacobrothstein.com}
16
+ s.executables = ["convert_to_should_syntax"]
17
+ s.extra_rdoc_files = [
18
+ "LICENSE",
19
+ "README"
20
+ ]
21
+ s.files = [
22
+ ".gitignore",
23
+ "Gemfile",
24
+ "LICENSE",
25
+ "README",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "bin/convert_to_should_syntax",
29
+ "freighthopper.gemspec",
30
+ "init.rb",
31
+ "lib/freighthopper.rb",
32
+ "pkg/.gitkeep",
33
+ "test/array_test.rb",
34
+ "test/define_and_alias_test.rb",
35
+ "test/float_test.rb",
36
+ "test/hash_test.rb",
37
+ "test/kernel_test.rb",
38
+ "test/lazy_alias_test.rb",
39
+ "test/object_test.rb",
40
+ "test/string_test.rb",
41
+ "test/test_helper.rb",
42
+ "vendor/gems/cache/shoulda-2.10.2.gem",
43
+ "vendor/gems/cache/test-rig-0.0.1.gem",
44
+ "vendor/gems/doc/.gitkeep",
45
+ "vendor/gems/gems/.gitkeep",
46
+ "vendor/gems/specifications/.gitkeep"
47
+ ]
48
+ s.homepage = %q{http://github.com/jbr/freighthopper}
49
+ s.rdoc_options = ["--charset=UTF-8"]
50
+ s.require_paths = ["lib"]
51
+ s.rubygems_version = %q{1.3.5}
52
+ s.summary = %q{Some extensions for riding the rails}
53
+ s.test_files = [
54
+ "test/array_test.rb",
55
+ "test/define_and_alias_test.rb",
56
+ "test/float_test.rb",
57
+ "test/hash_test.rb",
58
+ "test/kernel_test.rb",
59
+ "test/lazy_alias_test.rb",
60
+ "test/object_test.rb",
61
+ "test/string_test.rb",
62
+ "test/test_helper.rb"
63
+ ]
64
+
65
+ if s.respond_to? :specification_version then
66
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
67
+ s.specification_version = 3
68
+
69
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
70
+ else
71
+ end
72
+ else
73
+ end
74
+ end
75
+
data/init.rb ADDED
@@ -0,0 +1 @@
1
+ require 'freighthopper'
@@ -0,0 +1,130 @@
1
+ class Module
2
+ def define_and_alias(target, feature, &blk)
3
+ aliased_target, punctuation = target.to_s.sub(/([?!=])$/, ''), $1
4
+ define_method :"#{aliased_target}_with_#{feature}#{punctuation}", &blk
5
+ alias_method_chain target, feature
6
+ end
7
+
8
+ def lazy_alias(to, from)
9
+ define_method(to){|*args| send from, *args}
10
+ end
11
+ end
12
+
13
+ class Array
14
+ def singular?() size == 1 end
15
+ def singular() singular?? first : nil end
16
+ def singular!() singular or raise "not singular" end
17
+ end
18
+
19
+ class Object
20
+ def soft_send(method, *args)
21
+ send method, *args if respond_to? method
22
+ end
23
+
24
+ def or_if_blank(val = nil)
25
+ if soft_send :blank?
26
+ val || (block_given? ? yield : nil)
27
+ else
28
+ self
29
+ end
30
+ end
31
+
32
+ def is_one_of?(*args)
33
+ args.flatten.any?{|klass| is_a? klass}
34
+ end
35
+
36
+ def eval_with_options(*args, &blk)
37
+ with_options *args do |map|
38
+ map.instance_eval(&blk)
39
+ end
40
+ end
41
+ end
42
+
43
+ class String
44
+ def strip(what = /\s/)
45
+ gsub /^#{what}*|#{what}*$/, ''
46
+ end
47
+
48
+ def /(num)
49
+ scan /.{1,#{(size / num.to_f).ceil}}/
50
+ end
51
+
52
+ def unindent(options = {})
53
+ tablength = options[:tablength] || 2
54
+ lines = gsub("\t", " " * tablength).split("\n")
55
+
56
+ whitespace = lines.map do |line|
57
+ line.match(/^(\s+)/).captures.first
58
+ end.min{ |l, r| l.length <=> r.length }
59
+
60
+ lines.map{ |l| l.gsub /^#{whitespace}/, ''}.join("\n")
61
+ end
62
+ end
63
+
64
+ class Hash
65
+ def map_keys(key_hash)
66
+ inject({}) do |h, (k, v)|
67
+ h.merge((key_hash[k] || k) => v)
68
+ end
69
+ end
70
+ end
71
+
72
+ class Float
73
+ define_and_alias :to_s, :format do |*args|
74
+ format = args.first
75
+ return to_s_without_format if format.nil?
76
+ format = "$%0.2f" if format == :usd
77
+ (format.is_a?(Fixnum) ? "%0.#{format}f" : format) % self
78
+ end
79
+ end
80
+
81
+ require 'pp'
82
+ module Kernel
83
+ mattr_accessor :trace_output
84
+ %w(pp p puts).each do |method|
85
+ define_and_alias method, :source_and_passthrough do |*args|
86
+ puts_without_source_and_passthrough caller.first if Kernel.trace_output
87
+ send :"#{method}_without_source_and_passthrough", *args
88
+ puts_without_source_and_passthrough if Kernel.trace_output
89
+ return *args
90
+ end
91
+ end
92
+ end
93
+
94
+ # Kernel.trace_output = true
95
+
96
+ if defined?(ActionMailer)
97
+ class ActionMailer::Base
98
+ class << self
99
+ define_and_alias :method_missing, :delayed_deliver do |method_name, *args|
100
+ if method_name.to_s =~ /^delayed_(deliver_[a-z_]+)$/
101
+ self.send_later $1, *args
102
+ else
103
+ method_missing_without_delayed_deliver(method_name, *args)
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
109
+
110
+ if defined?(ActiveRecord)
111
+ module ActiveRecord
112
+ class Errors
113
+ def clear_on(attribute)
114
+ @errors.delete attribute.to_s
115
+ end
116
+ end
117
+
118
+ class Base
119
+ extend ActiveSupport::Memoizable
120
+
121
+ def cache_key
122
+ [self.class.to_s.underscore, to_param, soft_send(:cached_at).try(:to_i) || soft_send(:updated_at).try(:to_i)].compact.join("/")
123
+ end
124
+
125
+ def element_id
126
+ "#{self.class.to_s.underscore}_#{self.to_param}"
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,48 @@
1
+ require File.instance_eval { expand_path join(dirname(__FILE__), 'test_helper') }
2
+ require 'freighthopper'
3
+
4
+ class ArrayTest < Test::Unit::TestCase
5
+ context 'singular' do
6
+ should 'return the singular object if there is indeed only one' do
7
+ assert_singular 5, [5]
8
+ end
9
+
10
+ should 'return nil if the array is empty' do
11
+ assert_singular nil, []
12
+ end
13
+
14
+ should 'return nil if the array has > 1 item' do
15
+ assert_singular nil, [1, 2]
16
+ end
17
+ end
18
+
19
+ context 'singular questionmark' do
20
+ should 'return true if the array has only one member' do
21
+ assert_singular [5]
22
+ end
23
+
24
+ should 'return false if the array is empty' do
25
+ assert_not_singular []
26
+ end
27
+
28
+ should 'return false if the array has more than one member' do
29
+ assert_not_singular [1, 2]
30
+ end
31
+ end
32
+
33
+ context 'singular bang' do
34
+ should 'return the item if there is just one' do
35
+ assert_equal 5, [5].singular!
36
+ end
37
+
38
+ should 'raise if there are no items' do
39
+ e = assert_raise(RuntimeError){ [].singular! }
40
+ assert_message 'not singular', e
41
+ end
42
+
43
+ should 'raise if there are more than one item' do
44
+ e = assert_raise(RuntimeError){ [1, 2].singular! }
45
+ assert_message 'not singular', e
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ require File.instance_eval { expand_path join(dirname(__FILE__), 'test_helper') }
2
+ require 'freighthopper'
3
+
4
+ class DefineAndAliasTest < Test::Unit::TestCase
5
+ class SomeClass
6
+ attr_reader :cache
7
+ def foo() 5 end
8
+
9
+ define_and_alias(:foo, :bar) {foo_without_bar + 5}
10
+
11
+ def even?(number) number % 2 == 0 end
12
+
13
+ define_and_alias :even?, :caching do |number|
14
+ (@cache ||= {})[number] ||= even_without_caching?(number)
15
+ end
16
+ end
17
+
18
+ context 'with a SomeClass' do
19
+ setup {@object = SomeClass.new}
20
+
21
+ should 'respond to foo_with_bar' do
22
+ assert @object.respond_to?('foo_with_bar')
23
+ end
24
+
25
+ should 'respond to foo_without_bar' do
26
+ assert @object.respond_to?('foo_without_bar')
27
+ end
28
+
29
+ should 'return 5 for foo_without_bar' do
30
+ assert_foo_without_bar 5, @object
31
+ end
32
+
33
+ should 'return 10 for foo' do
34
+ assert_foo 10, @object
35
+ end
36
+
37
+ should 'handle questionmark methods' do
38
+ %w(even? even_without_caching? even_with_caching?).each do |method|
39
+ assert @object.respond_to?(method)
40
+ end
41
+ end
42
+
43
+ should 'pass arguments' do
44
+ assert @object.even?(4)
45
+ assert_length 1, @object.cache
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,18 @@
1
+ require File.instance_eval { expand_path join(dirname(__FILE__), 'test_helper') }
2
+ require 'freighthopper'
3
+
4
+ class FloatTest < Test::Unit::TestCase
5
+ context 'to_s with format' do
6
+ should 'work as before' do
7
+ assert_to_s '1.1', 1.1
8
+ end
9
+
10
+ should 'allow specification of a format string' do
11
+ assert_equal "1.2", 1.23.to_s("%.1f")
12
+ end
13
+
14
+ should 'allow specification of a precision' do
15
+ assert_equal '1.2', 1.23.to_s(1)
16
+ end
17
+ end
18
+ end
data/test/hash_test.rb ADDED
@@ -0,0 +1,27 @@
1
+ require File.instance_eval { expand_path join(dirname(__FILE__), 'test_helper') }
2
+ require 'freighthopper'
3
+
4
+ class HashTest < Test::Unit::TestCase
5
+ context 'map_keys' do
6
+ should 'replace keys with their mapped replacement' do
7
+ base = {:hello => :world}
8
+ expected = {:howdy => :world}
9
+ assert_equal expected, base.map_keys(:hello => :howdy)
10
+ end
11
+
12
+ should 'not modify keys that are not specified' do
13
+ base = {:a => 1, :b => 2}
14
+ mapping = {:a => :hello}
15
+ expected = {:hello => 1, :b => 2}
16
+
17
+ assert_equal expected, base.map_keys(mapping)
18
+ end
19
+
20
+ should 'ignore mappings that do not exist' do
21
+ base = {:a => 1, :b => 2}
22
+ mapping = {:q => :r}
23
+
24
+ assert_equal base, base.map_keys(mapping)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,34 @@
1
+ require File.instance_eval { expand_path join(dirname(__FILE__), 'test_helper') }
2
+ require 'freighthopper'
3
+
4
+ class KernelTest < Test::Unit::TestCase
5
+ context 'trace output' do
6
+ context 'without Kernel trace_output' do
7
+ should 'function as normal' do
8
+ output = capture(false) { puts 'hello' }
9
+ assert_equal "hello\n", output
10
+ end
11
+ end
12
+
13
+ context 'with Kernel trace_output' do
14
+ should 'include the line that printed' do
15
+ output = capture(true) { puts 'hello' }
16
+ assert_equal "#{__FILE__}:15:in `puts'\nhello\n\n", output
17
+ end
18
+ end
19
+ end
20
+
21
+ private
22
+ def capture(trace_output, &block)
23
+ Kernel.trace_output = trace_output
24
+ original_stdout = $stdout
25
+ $stdout = fake = StringIO.new
26
+ begin
27
+ yield
28
+ ensure
29
+ $stdout = original_stdout
30
+ end
31
+ Kernel.trace_output = false
32
+ fake.string
33
+ end
34
+ end
@@ -0,0 +1,34 @@
1
+ require File.instance_eval { expand_path join(dirname(__FILE__), 'test_helper') }
2
+ require 'freighthopper'
3
+
4
+ class DefineAndAliasTest < Test::Unit::TestCase
5
+ class SomeClass
6
+ attr_reader :last_method_missing, :last_args
7
+ lazy_alias :this_method_is_called, :this_hits_method_missing
8
+
9
+ def method_missing(*args)
10
+ @last_method_missing = args.shift
11
+ @last_args = args
12
+ end
13
+ end
14
+
15
+ context 'with a SomeClass' do
16
+ setup {@object = SomeClass.new}
17
+
18
+ should 'respond to this_method_is_called' do
19
+ assert @object.respond_to?(:this_method_is_called)
20
+ end
21
+
22
+ context "after calling this_method_is_called" do
23
+ setup {@object.this_method_is_called :arg1, :arg2}
24
+
25
+ should 'call whatever method is the second argument' do
26
+ assert_last_method_missing :this_hits_method_missing, @object
27
+ end
28
+
29
+ should 'pass through args' do
30
+ assert_last_args [:arg1, :arg2], @object
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,68 @@
1
+ require File.instance_eval { expand_path join(dirname(__FILE__), 'test_helper') }
2
+ require 'freighthopper'
3
+
4
+ class ObjectTest < Test::Unit::TestCase
5
+ context 'soft_send' do
6
+ should 'send the method if the object responds to it' do
7
+ assert_equal 1, [1].soft_send(:first)
8
+ end
9
+
10
+ should 'return nil if the object does not' do
11
+ assert_nil 5.soft_send(:hello)
12
+ end
13
+
14
+ should 'pass args' do
15
+ assert_equal 10, 5.soft_send(:*, 2)
16
+ end
17
+ end
18
+
19
+ context 'eval_with_options' do
20
+ setup do
21
+ def foo(arg1, options = {})
22
+ [arg1, options]
23
+ end
24
+ end
25
+
26
+ should 'pass options to any method called in the block' do
27
+ returned = nil
28
+
29
+ eval_with_options :wibble => :baz do
30
+ returned = foo(:squee)
31
+ end
32
+
33
+ assert_equal [:squee, {:wibble => :baz}], returned
34
+ end
35
+ end
36
+
37
+ context 'or_if_blank' do
38
+ should 'return nil if there is no block and the argument is nil' do
39
+ assert_nil "".or_if_blank(nil)
40
+ end
41
+
42
+ should 'return the callee if it is not blank' do
43
+ assert_equal "hello", "hello".or_if_blank(5)
44
+ end
45
+
46
+ should 'return the first arg if the callee is blank' do
47
+ assert_equal 5, "".or_if_blank(5)
48
+ end
49
+
50
+ should 'accept a block' do
51
+ assert_equal 5, "".or_if_blank{5}
52
+ end
53
+ end
54
+
55
+ context 'is_one_of?' do
56
+ should 'check if the object is one of the arguments' do
57
+ assert "hello".is_one_of?(Fixnum, Symbol, Proc, String)
58
+ end
59
+
60
+ should 'work with an array as well' do
61
+ assert :symbol.is_one_of?([Fixnum, Symbol])
62
+ end
63
+
64
+ should 'return false if there is no match' do
65
+ assert_not :symbol.is_one_of?(Proc, String)
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,58 @@
1
+ require File.instance_eval { expand_path join(dirname(__FILE__), 'test_helper') }
2
+ require 'freighthopper'
3
+
4
+ class StringTest < Test::Unit::TestCase
5
+ context 'strip' do
6
+ should 'still allow normal strip' do
7
+ assert_strip "hello", " hello \t\n"
8
+ end
9
+
10
+ should 'also allow a string' do
11
+ assert_equal "hello", "---hello---".strip("-")
12
+ end
13
+
14
+ should 'also allow a regular expression' do
15
+ assert_equal "hello", "123hello456".strip(/[0-9]/)
16
+ end
17
+ end
18
+
19
+ context 'division operator' do
20
+ context 'with an even division' do
21
+ should 'split the string into that many even strings' do
22
+ divided = ('-' * 10) / 2
23
+ assert_size 2, divided
24
+ assert_equal [5, 5], divided.map{|s| s.length}
25
+ end
26
+ end
27
+
28
+ context 'with an uneven division' do
29
+ should 'take the difference out of the last one' do
30
+ divided = ('-' * 10) / 3
31
+ assert_size 3, divided
32
+ assert_equal [4,4,2], divided.map(&:length)
33
+ end
34
+ end
35
+ end
36
+
37
+ context 'unindent' do
38
+ should 'remove the least common leading whitespace' do
39
+ unindented = (<<-END).unindent
40
+ a
41
+ b
42
+ c
43
+ END
44
+
45
+ assert_equal "a\n b\n c", unindented
46
+ end
47
+
48
+ should 'replace tabs with tablength' do
49
+ unindented = "\ttest\n\t\ttest".unindent :tablength => 4
50
+ assert_equal "test\n test", unindented
51
+ end
52
+
53
+ should 'replace tabs with tablength (defaulting to 2)' do
54
+ unindented = "\ttest\n\t\ttest".unindent
55
+ assert_equal "test\n test", unindented
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,17 @@
1
+ begin
2
+ require File.instance_eval { expand_path join(dirname(__FILE__), '..', 'vendor', 'gems', 'environment')}
3
+ rescue LoadError
4
+ puts "Bundling Gems\n\nHang in there, this only has to happen once...\n\n"
5
+ system 'gem bundle'
6
+ retry
7
+ end
8
+
9
+ Bundler.require_env :test
10
+
11
+ $:.unshift File.instance_eval { expand_path join(dirname(__FILE__), "..", "lib") }
12
+ require 'test/unit'
13
+
14
+
15
+ class Test::Unit::TestCase
16
+ include TestRig
17
+ end
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: freighthopper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jacob Rothstein
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-02-03 00:00:00 -08:00
13
+ default_executable: convert_to_should_syntax
14
+ dependencies: []
15
+
16
+ description: More core ext
17
+ email: github@jacobrothstein.com
18
+ executables:
19
+ - convert_to_should_syntax
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - LICENSE
24
+ - README
25
+ files:
26
+ - .gitignore
27
+ - Gemfile
28
+ - LICENSE
29
+ - README
30
+ - Rakefile
31
+ - VERSION
32
+ - bin/convert_to_should_syntax
33
+ - freighthopper.gemspec
34
+ - init.rb
35
+ - lib/freighthopper.rb
36
+ - pkg/.gitkeep
37
+ - test/array_test.rb
38
+ - test/define_and_alias_test.rb
39
+ - test/float_test.rb
40
+ - test/hash_test.rb
41
+ - test/kernel_test.rb
42
+ - test/lazy_alias_test.rb
43
+ - test/object_test.rb
44
+ - test/string_test.rb
45
+ - test/test_helper.rb
46
+ - vendor/gems/cache/shoulda-2.10.2.gem
47
+ - vendor/gems/cache/test-rig-0.0.1.gem
48
+ - vendor/gems/doc/.gitkeep
49
+ - vendor/gems/gems/.gitkeep
50
+ - vendor/gems/specifications/.gitkeep
51
+ has_rdoc: true
52
+ homepage: http://github.com/jbr/freighthopper
53
+ licenses: []
54
+
55
+ post_install_message:
56
+ rdoc_options:
57
+ - --charset=UTF-8
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: "0"
65
+ version:
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: "0"
71
+ version:
72
+ requirements: []
73
+
74
+ rubyforge_project:
75
+ rubygems_version: 1.3.5
76
+ signing_key:
77
+ specification_version: 3
78
+ summary: Some extensions for riding the rails
79
+ test_files:
80
+ - test/array_test.rb
81
+ - test/define_and_alias_test.rb
82
+ - test/float_test.rb
83
+ - test/hash_test.rb
84
+ - test/kernel_test.rb
85
+ - test/lazy_alias_test.rb
86
+ - test/object_test.rb
87
+ - test/string_test.rb
88
+ - test/test_helper.rb