toomuchsupport 0.0.01

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.
@@ -0,0 +1,31 @@
1
+ class Array
2
+ # let's make some "useful" aliases
3
+ def has? value
4
+ include? value
5
+ end
6
+
7
+ def haz? value
8
+ include? value
9
+ end
10
+
11
+ # having only first and last mehods is far too boring
12
+ # let's define methods for every index up to 99/100th :)
13
+
14
+ words = %w{
15
+ first second third fourth fifth sixth seventh eighth ninth tenth
16
+ eleventh twelfth thirteenth fourteenth fifteenth sixteenth seventeenth eighteenth ninteenth
17
+ }
18
+
19
+ TMS_TENS.each do |ten|
20
+ words << ten.gsub('y','ieth')
21
+ 1.upto(9) { |n| words << "#{ten}#{words[n-1]}" }
22
+ end
23
+
24
+ words << "onehundreth"
25
+
26
+ words.each_with_index do |word, index|
27
+ define_method word do
28
+ self[index]
29
+ end
30
+ end
31
+ end
@@ -0,0 +1 @@
1
+ TMS_TENS = %w{ twenty thirty fourty fifty sixty seventy eighty ninety }
@@ -0,0 +1,5 @@
1
+ require_relative 'constants'
2
+ require_relative 'array'
3
+ require_relative 'integer'
4
+ require_relative 'object'
5
+ require_relative 'string'
@@ -0,0 +1,26 @@
1
+ class Integer
2
+ # no comment required
3
+ def is_the_meaning_of_life?
4
+ self == 42
5
+ end
6
+
7
+ # and now, in the spirit of #zero?
8
+ # we have #one? #two? #three?...
9
+ words = %w{
10
+ one two three four five six seven eight nine ten
11
+ eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen ninteen
12
+ }
13
+
14
+ TMS_TENS.each do |ten|
15
+ words << ten
16
+ 1.upto(9) { |n| words << "#{ten}#{words[n-1]}" }
17
+ end
18
+
19
+ words << "onehundred"
20
+
21
+ words.each_with_index do |word, index|
22
+ define_method "#{word}?".to_sym do
23
+ self == index + 1
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,8 @@
1
+ class Object
2
+ def is_an? type
3
+ # you should be able to use correct grammar
4
+ # for your type checking
5
+ # 2.is_an? Integer is *so* much better than 2.is_a? Integer
6
+ is_a? type
7
+ end
8
+ end
@@ -0,0 +1,26 @@
1
+ class String
2
+ # remove last (or more) chars from string
3
+ def clip n=1
4
+ self[0..-n-1]
5
+ end
6
+
7
+ def clip! n=1
8
+ self.replace(clip n)
9
+ end
10
+
11
+ # this is truly a magnificent core extension
12
+ # it let's you do stuff like "foo".foo? # => true
13
+ # TODO: fuzzy matching for underscores/spaces
14
+ def method_missing sym
15
+ raise NoMethodError.new("Undefined method #{sym} for String") unless sym.to_s.end_with? "?"
16
+ this = self.downcase.gsub("_"," ")
17
+ that = sym.to_s.clip # remove ?
18
+ that = that.downcase.gsub("_"," ")
19
+ this == that
20
+ end
21
+
22
+ # this handy little helper evals code the OO way :)
23
+ def to_proc
24
+ eval "Proc.new do\n#{self}\nend"
25
+ end
26
+ end
@@ -0,0 +1,7 @@
1
+ # Too Much Support
2
+ # Enough support for anyone
3
+
4
+ # Note: This gem does not actually come with a complimentary pony.
5
+ # You may, however, recieve a complimentary pony if you submit a good pull request.
6
+
7
+ require_relative 'core_ext/core_ext'
metadata ADDED
@@ -0,0 +1,51 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: toomuchsupport
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.01
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Alex Coplan
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-08-19 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Enough support for anyone
15
+ email: lexy0202@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/core_ext/array.rb
21
+ - lib/core_ext/constants.rb
22
+ - lib/core_ext/core_ext.rb
23
+ - lib/core_ext/integer.rb
24
+ - lib/core_ext/object.rb
25
+ - lib/core_ext/string.rb
26
+ - lib/toomuchsupport.rb
27
+ homepage: http://github.com/alexcoplan/toomuchsupport
28
+ licenses: []
29
+ post_install_message:
30
+ rdoc_options: []
31
+ require_paths:
32
+ - lib
33
+ required_ruby_version: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ required_rubygems_version: !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ requirements: []
46
+ rubyforge_project:
47
+ rubygems_version: 1.8.24
48
+ signing_key:
49
+ specification_version: 3
50
+ summary: Too Much Support
51
+ test_files: []