koalemos 0.0.2 → 0.0.3

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 CHANGED
@@ -17,5 +17,6 @@ tmtags
17
17
  coverage
18
18
  rdoc
19
19
  pkg
20
+ .yardoc
20
21
 
21
22
  ## PROJECT::SPECIFIC
data/Rakefile CHANGED
@@ -11,7 +11,6 @@ begin
11
11
  gem.homepage = "http://github.com/Talby/koalemos"
12
12
  gem.authors = ["Tal Atlas"]
13
13
  gem.add_development_dependency "rspec", ">= 1.2.9"
14
- gem.add_development_dependency "yard", ">= 0"
15
14
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
15
  end
17
16
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{koalemos}
8
- s.version = "0.0.2"
8
+ s.version = "0.0.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tal Atlas"]
@@ -58,14 +58,11 @@ Gem::Specification.new do |s|
58
58
 
59
59
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
60
60
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
61
- s.add_development_dependency(%q<yard>, [">= 0"])
62
61
  else
63
62
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
64
- s.add_dependency(%q<yard>, [">= 0"])
65
63
  end
66
64
  else
67
65
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
68
- s.add_dependency(%q<yard>, [">= 0"])
69
66
  end
70
67
  end
71
68
 
@@ -3,4 +3,4 @@ files.each do |f|
3
3
  require f
4
4
  end
5
5
 
6
- include Koalemos
6
+ #include Koalemos
@@ -1,6 +1,7 @@
1
- module Koalemos
1
+ module Koalemos # :nodoc:
2
2
  class ::Time
3
3
  unless method_defined?(:beginning_of_day)
4
+ # Returns a time object at midnight for the particular day
4
5
  def beginning_of_day
5
6
  ::Time.mktime(self.year,self.month,self.day)
6
7
  end
@@ -1,34 +1,39 @@
1
- module Koalemos
2
- module Blank
1
+ module Koalemos # :nodoc:# :nodoc:
2
+ module Blank# :nodoc:
3
+ # Allows for detection of whether an object contains something regardless of
4
+ # what class the object is
5
+ # @author Florian Frank
3
6
  module Object
7
+ # Returns the !empty? or !self for any object
4
8
  def blank?
5
9
  respond_to?(:empty?) ? empty? : !self
6
10
  end
7
-
11
+
12
+ # Returns !blank?
8
13
  def present?
9
14
  !blank?
10
15
  end
11
16
  end
12
17
 
13
- module NilClass
18
+ module NilClass# :nodoc:
14
19
  def blank?
15
20
  true
16
21
  end
17
22
  end
18
23
 
19
- module FalseClass
24
+ module FalseClass# :nodoc:
20
25
  def blank?
21
26
  true
22
27
  end
23
28
  end
24
29
 
25
- module TrueClass
30
+ module TrueClass# :nodoc:
26
31
  def blank?
27
32
  false
28
33
  end
29
34
  end
30
35
 
31
- module Array
36
+ module Array # :nodoc:
32
37
  def self.included(modul)
33
38
  modul.module_eval do
34
39
  alias_method :blank?, :empty?
@@ -36,7 +41,7 @@ module Koalemos
36
41
  end
37
42
  end
38
43
 
39
- module Hash
44
+ module Hash # :nodoc:
40
45
  def self.included(modul)
41
46
  modul.module_eval do
42
47
  alias_method :blank?, :empty?
@@ -44,13 +49,13 @@ module Koalemos
44
49
  end
45
50
  end
46
51
 
47
- module String
52
+ module String # :nodoc:
48
53
  def blank?
49
54
  self !~ /\S/
50
55
  end
51
56
  end
52
57
 
53
- module Numeric
58
+ module Numeric # :nodoc:
54
59
  def blank?
55
60
  false
56
61
  end
@@ -1,6 +1,7 @@
1
- module Koalemos
1
+ module Koalemos # :nodoc:
2
2
  class ::Numeric
3
3
  unless method_defined?(:commafy)
4
+ # Returns a string for a number with commas ever 3 digits
4
5
  def commaify
5
6
  to_s.reverse.scan(/(?:\d*\.)?\d{1,3}-?/).join(',').reverse
6
7
  end
@@ -9,7 +10,7 @@ module Koalemos
9
10
 
10
11
  class ::Float
11
12
  unless method_defined?(:commafy)
12
- def commaofy
13
+ def commaofy# :nodoc:
13
14
  to_s.gsub(/\d+\./) do |s|
14
15
  s.reverse.scan(/(?:\d*\.)?\d{1,3}-?/).join(',').reverse
15
16
  end
@@ -1,7 +1,8 @@
1
1
  require File.join(File.dirname(__FILE__),'num_to_time.rb')
2
2
 
3
- module Koalemos
4
- module FriendlyTime
3
+ module Koalemos # :nodoc:
4
+ module FriendlyTime# :nodoc:
5
+ # Friendly time
5
6
  def friendly(since = Time.now)
6
7
  ago = since - self
7
8
  case ago
@@ -31,7 +32,7 @@ module Koalemos
31
32
  end
32
33
  end
33
34
 
34
- class ::Time
35
+ class ::Time # :nodoc:
35
36
  if !method_defined?(:friendly) && ::Numeric.method_defined?(:day)
36
37
  include FriendlyTime
37
38
  else
@@ -1,4 +1,4 @@
1
- module Koalemos
1
+ module Koalemos # :nodoc:
2
2
  module Full
3
3
  # Returns the object if it isn't blank (as in Object#blank?), otherwise it
4
4
  # returns nil. If a block was given as an argument and the object isn't
@@ -25,7 +25,7 @@ module Koalemos
25
25
  end
26
26
  end
27
27
 
28
- class ::Object
28
+ class ::Object # :nodoc:
29
29
  include Full
30
30
  end
31
31
  end
@@ -1,12 +1,16 @@
1
- module Koalemos
1
+ module Koalemos # :nodoc:
2
2
  module HashUnion
3
+ # Reverse merge
4
+ # h1 = {:foo => 'foo',:bar => 'bar'}
5
+ # h1 |= {:foo => 'none',:baz => 'baz'}
6
+ # h1.should == {:foo => 'foo',:bar => 'bar',:baz => 'baz'} #=> true
3
7
  def |(other)
4
8
  other = other.to_hash if other.respond_to?(:to_hash)
5
9
  other.merge(self)
6
10
  end
7
11
  end
8
12
 
9
- class ::Hash
13
+ class ::Hash # :nodoc:
10
14
  if method_defined?(:|)
11
15
  warn "#{self}#| already defined, didn't include at #{__FILE__}:#{__LINE__}"
12
16
  else
@@ -1,49 +1,55 @@
1
- module Koalemos
1
+ module Koalemos # :nodoc:
2
+ # Blah blah blah
2
3
  module NumToTime
3
- def minute
4
+ def minute# :nodoc:
4
5
  self * 60
5
6
  end
6
- alias_method :minutes, :minute
7
+ alias_method :minutes, :minute# :nodoc:
7
8
 
8
- def hour
9
+ def hour# :nodoc:
9
10
  self * 3600
10
11
  end
11
- alias_method :hours, :hour
12
+ alias_method :hours, :hour# :nodoc:
12
13
 
13
- def day
14
+ def day# :nodoc:
14
15
  self * 86400
15
16
  end
16
- alias_method :days, :day
17
+ alias_method :days, :day# :nodoc:
17
18
 
18
- def week
19
+ def week# :nodoc:
19
20
  self * 604800
20
21
  end
21
- alias_method :weeks, :week
22
+ alias_method :weeks, :week# :nodoc:
22
23
 
23
- def month
24
+ def month# :nodoc:
24
25
  self * 2592000
25
26
  end
26
- alias_method :months, :month
27
+ alias_method :months, :month# :nodoc:
27
28
 
28
- def year
29
+ def year# :nodoc:
29
30
  self * 31536000
30
31
  end
31
- alias_method :years, :year
32
-
32
+ alias_method :years, :year# :nodoc:
33
+
34
+ # Changes a number into a Time object num seconds in the past
35
+ # 60.ago #=> 1 minute ago
33
36
  def ago
34
37
  Time.now - to_i
35
38
  end
36
-
39
+
40
+ # Changes a number into a Time object num seconds in the future
41
+ # 60.ago #=> 1 minute from now
37
42
  def from_now
38
43
  Time.now + to_i
39
44
  end
40
-
45
+
46
+ # Converts seconds to Epoch time
41
47
  def to_time
42
48
  Time.at(to_i)
43
49
  end
44
50
  end
45
51
 
46
- class ::Numeric
52
+ class ::Numeric # :nodoc:
47
53
  unless method_defined?(:minute)
48
54
  include NumToTime
49
55
  end
@@ -1,11 +1,12 @@
1
- module Koalemos
1
+ module Koalemos # :nodoc:
2
2
  module Odd
3
+ # Returns boolean of whether the Numeric is odd or not
3
4
  def odd?
4
5
  self%2 == 1
5
6
  end
6
7
  end
7
8
 
8
- class ::Numeric
9
+ class ::Numeric # :nodoc:
9
10
  unless method_defined?(:odd?)
10
11
  include Odd
11
12
  end
@@ -6,7 +6,8 @@
6
6
  # Documentation:: Christian Neukirchen <mailto:chneukirchen@gmail.com>
7
7
  #
8
8
 
9
- module Koalemos
9
+ module Koalemos # :nodoc:
10
+ # @author Ilmari Heikkinen
10
11
  module Rand
11
12
  module Enumerable_
12
13
  # Choose and return a random element of the Enumerable.
@@ -1,4 +1,4 @@
1
- module Koalemos
1
+ module Koalemos # :nodoc:
2
2
  # A bit more versatile rounding for Ruby
3
3
  module RoundTo
4
4
  # def self.included(klass)
@@ -14,7 +14,9 @@ module Koalemos
14
14
  # raise NoMethodError, 'no round method found'
15
15
  # end
16
16
  # end
17
-
17
+
18
+ # A more versitile rounding function that rounds to an arbitrary number
19
+ # of decimil places
18
20
  def round_to(places = 0)
19
21
  unless Integer === places
20
22
  raise TypeError, "argument places has to be an Integer"
@@ -36,7 +38,7 @@ module Koalemos
36
38
  end
37
39
  end
38
40
 
39
- class ::Float
41
+ class ::Float # :nodoc:
40
42
  unless method_defined?(:round_to)
41
43
  include RoundTo
42
44
  end
@@ -1,5 +1,6 @@
1
- module Koalemos
1
+ module Koalemos # :nodoc:
2
2
  module ToProc
3
+ # Converts a symbol to a proc
3
4
  def to_proc
4
5
  lambda do |obj, *args|
5
6
  obj.__send__(self, *args[0..-1])
@@ -7,7 +8,7 @@ module Koalemos
7
8
  end
8
9
  end
9
10
 
10
- class ::Symbol
11
+ class ::Symbol# :nodoc:
11
12
  unless method_defined?(:to_proc)
12
13
  include ToProc
13
14
  end
@@ -1,10 +1,11 @@
1
- module Koalemos
1
+ module Koalemos # :nodoc:
2
2
  unless Object.method_defined?(:try)
3
- class Object
4
- alias_method :try, :__send__
3
+ class Object# :nodoc
4
+ alias_method :try, :__send__ # :nodoc
5
5
  end
6
6
 
7
- class ::NilClass
7
+ class ::NilClass# :nodoc
8
+ # Trys to call a method (alias for +send+)
8
9
  def try(*a)
9
10
  nil
10
11
  end
@@ -1,12 +1,18 @@
1
- module Koalemos
1
+ module Koalemos # :nodoc:
2
2
  module UniqBy
3
+ # Finds unique values in an array based on a block passed
4
+ # [ {:key => 'foo'},
5
+ # {:key => 'foo'},
6
+ # {:key => 'bar'},
7
+ # {:key => 'baz'},
8
+ # {:key => 'bbaz'}].uniq_by{|a| a[:key]} #=> [{:key=>"bbaz"}, {:key=>"baz"}, {:key=>"foo"}, {:key=>"bar"}]
3
9
  def uniq_by(&b)
4
10
  b ||= lambda { |x| x }
5
11
  inject({}) { |h, e| h[b[e]] ||= e; h }.values
6
12
  end
7
13
  end
8
14
 
9
- module ::Enumerable
15
+ module ::Enumerable# :nodoc:
10
16
  if method_defined?(:uniq_by)
11
17
  warn "#{self}#uniq_by already defined, didn't include at #{__FILE__}:#{__LINE__}"
12
18
  else
@@ -14,7 +20,7 @@ module Koalemos
14
20
  end
15
21
  end
16
22
 
17
- class ::Array
23
+ class ::Array # :nodoc:
18
24
  if method_defined?(:uniq_by)
19
25
  warn "#{self}#uniq_by already defined, didn't include at #{__FILE__}:#{__LINE__}"
20
26
  else
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: koalemos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tal Atlas
@@ -22,16 +22,6 @@ dependencies:
22
22
  - !ruby/object:Gem::Version
23
23
  version: 1.2.9
24
24
  version:
25
- - !ruby/object:Gem::Dependency
26
- name: yard
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: "0"
34
- version:
35
25
  description: A bunch of small extensions to built in classes/modules
36
26
  email: me@talatlas.com
37
27
  executables: []