27 Commits

Author SHA1 Message Date
53fed4fb33 Merge branch 'release/v0.2.9' 2011-03-11 11:02:41 +00:00
dad55fb6f9 started release v0.2.9 2011-03-11 11:02:28 +00:00
4b1327306d fixed some weird loading/require issues which seemed to be happening on rare occasions when used in a rails project 2011-03-11 11:01:39 +00:00
950a57dc66 removed Gemfile.lock file, this is a gem, not an app 2011-03-02 01:23:59 +00:00
59c96c0246 updated rdoc.info link 2011-03-02 01:23:13 +00:00
8bb93bf5f1 moved all dependencies to gemspec 2010-11-25 22:50:07 +00:00
d84154bd5b Merge branch 'release/v0.2.8' into dev 2010-11-24 13:22:19 +00:00
0bef341111 Merge branch 'release/v0.2.8' 2010-11-24 13:22:07 +00:00
6686731651 Bumped version to 0.2.7 2010-11-24 13:21:57 +00:00
fceb7b8ff2 switched to using bundle's own gemspec format
instead of jeweler
2010-11-24 13:19:04 +00:00
803ad03d6c Merge branch 'release/v0.2.7' into dev 2010-11-24 09:48:29 +00:00
b29c232939 Merge branch 'release/v0.2.7' 2010-11-24 09:48:23 +00:00
f3b9d3751a Version bump to 0.2.7 2010-11-24 09:48:10 +00:00
a612a17c54 added a Gemfile 2010-11-24 09:47:55 +00:00
71c5421587 added i18n to dependencies as activesupport needs
it, but doesn't have it as a dependency
2010-11-24 09:47:37 +00:00
d564c31b93 updated project to rspec 2.x 2010-11-24 09:46:31 +00:00
29e1c7f500 Merge branch 'release-0.2.6' into stable 2010-09-28 19:18:09 +03:00
f49c6bd455 Version bump to 0.2.6 2010-09-28 19:17:19 +03:00
5ece10846a added spec to check for core extention method
aliases
2010-09-28 19:16:36 +03:00
5afb6bc2b9 removed last traces of Time#map method which was
causing issues with Active Record
2010-09-28 19:16:11 +03:00
9bbd974a75 fixed compatibility with Active Support 3.x 2010-09-28 19:15:39 +03:00
ca929c6ae1 Merge branch 'release-0.2.5' into stable 2010-08-23 12:41:45 +03:00
edd828bb3e Version bump to 0.2.5 2010-08-23 12:41:23 +03:00
4afd3f84d5 removed Time#map alias to Time#map_each as it was
causing issues with ActiveRecord
2010-08-23 12:40:58 +03:00
ea6d87e35f Merge branch 'release-0.2.4' into stable 2010-08-11 13:52:07 +03:00
74574beaf0 Version bump to 0.2.4 2010-08-11 13:51:50 +03:00
ba33dfec57 added min and sec aliases to minutes and seconds
methods respectively to Numeric for unit
consitency
2010-08-11 13:51:21 +03:00
16 changed files with 104 additions and 49 deletions

8
.gitignore vendored
View File

@@ -16,9 +16,11 @@ tmtags
## PROJECT::GENERAL ## PROJECT::GENERAL
coverage coverage
rdoc rdoc
pkg Gemfile.lock
pkg/*
*.gem
.bundle
## PROJECT::SPECIFIC ## PROJECT::SPECIFIC
.yardoc/* .yardoc
*.gemspec
doc/* doc/*

2
.rspec Normal file
View File

@@ -0,0 +1,2 @@
--format documentation
--color

4
Gemfile Normal file
View File

@@ -0,0 +1,4 @@
source 'http://rubygems.org/'
# Specify your gem's dependencies in time_ext.gemspec
gemspec

View File

@@ -99,5 +99,5 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
[as]: http://as.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Time/Calculations.html [as]: http://as.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Time/Calculations.html
[docs]: http://rdoc.info/projects/jimeh/time_ext [docs]: http://rdoc.info/gems/time_ext/frames
[rdoc.info]: http://rdoc.info/ [rdoc.info]: http://rdoc.info/

View File

@@ -1,43 +1,27 @@
require 'rubygems' require 'bundler'
require 'rake' Bundler::GemHelper.install_tasks
begin
require 'jeweler' #
Jeweler::Tasks.new do |gem| # Rspec
gem.name = "time_ext" #
gem.summary = %Q{Extends the abilities of Ruby's built-in Time class by building on top of ActiveSupport.}
gem.description = %Q{Extends the abilities of Ruby's built-in Time class by building on top of ActiveSupport.} require 'rspec/core/rake_task'
gem.email = "contact@jimeh.me" RSpec::Core::RakeTask.new(:spec) do |spec|
gem.homepage = "http://github.com/jimeh/time_ext" spec.pattern = 'spec/**/*_spec.rb'
gem.authors = ["Jim Myhrberg"]
gem.add_dependency "activesupport", ">= 2.3.0"
gem.add_development_dependency "rspec", ">= 1.2.9"
gem.add_development_dependency "yard", ">= 0"
end
Jeweler::GemcutterTasks.new
rescue LoadError
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
end end
require 'spec/rake/spectask' RSpec::Core::RakeTask.new(:rcov) do |spec|
Spec::Rake::SpecTask.new(:spec) do |spec|
spec.libs << 'lib' << 'spec'
spec.spec_files = FileList['spec/**/*_spec.rb']
end
Spec::Rake::SpecTask.new(:rcov) do |spec|
spec.libs << 'lib' << 'spec'
spec.pattern = 'spec/**/*_spec.rb' spec.pattern = 'spec/**/*_spec.rb'
spec.rcov = true spec.rcov = true
end end
task :spec => :check_dependencies
task :default => :spec task :default => :spec
task :console do
exec "irb -r spec/spec_helper" #
end # Yard
#
begin begin
require 'yard' require 'yard'
@@ -47,3 +31,14 @@ rescue LoadError
abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard" abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
end end
end end
#
# Misc.
#
desc "Start an irb console with TimeExt pre-loaded."
task :console do
exec "irb -r spec/spec_helper"
end
task :c => :console

View File

@@ -1 +0,0 @@
0.2.3

View File

@@ -1,7 +1,7 @@
require 'rubygems' require 'rubygems'
require 'active_support'
require 'time_ext/calculations' require 'time_ext/calculations'
require 'time_ext/iterations' require 'time_ext/iterations'
require 'time_ext/support' require 'time_ext/support'
require 'time_ext/core_ext/time' require 'time_ext/core_ext/time'
require 'time_ext/core_ext/numeric'

View File

@@ -0,0 +1,6 @@
require 'active_support/core_ext/numeric/time' unless Numeric.new.respond_to?(:seconds) # fixes rare loading issue
class Numeric
alias :sec :seconds
alias :min :minutes
end

View File

@@ -1,3 +1,7 @@
require 'active_support'
require 'active_support/time' unless Time.respond_to?(:days_in_month) # support both Active Support 2.x and 3.x
require 'active_support/core_ext/time/calculations' unless Time.new.respond_to?(:ago) # fixes rare loading issue
class Time class Time
include TimeExt::Support include TimeExt::Support
include TimeExt::Calculations include TimeExt::Calculations

View File

@@ -75,7 +75,6 @@ module TimeExt
def map_each(unit, options = {}, &block) def map_each(unit, options = {}, &block)
iterate(unit, options.merge(:map_result => true), &block) iterate(unit, options.merge(:map_result => true), &block)
end end
alias :map :map_each
# Executes passed block for each "unit" of time specified, returning an array with the return values from passed block. Additionally the time object passed into the block is set to the beginning of specified "unit". # Executes passed block for each "unit" of time specified, returning an array with the return values from passed block. Additionally the time object passed into the block is set to the beginning of specified "unit".
def map_beginning_of_each(unit, options = {}, &block) def map_beginning_of_each(unit, options = {}, &block)
@@ -84,7 +83,7 @@ module TimeExt
# Dynamically define convenience methods, like #each_hour instead of #each(:hour). # Dynamically define convenience methods, like #each_hour instead of #each(:hour).
[:year, :month, :day, :hour, :min, :sec].each do |unit| [:year, :month, :day, :hour, :min, :sec].each do |unit|
[:each, :beginning_of_each, :map_each, :map_beginning_of_each, :map].each do |method| [:each, :beginning_of_each, :map_each, :map_beginning_of_each].each do |method|
define_method "#{method}_#{unit}" do |*args, &block| define_method "#{method}_#{unit}" do |*args, &block|
send(method, unit, *args, &block) send(method, unit, *args, &block)
end end

3
lib/time_ext/version.rb Normal file
View File

@@ -0,0 +1,3 @@
module TimeExt
VERSION = "0.2.9"
end

19
spec/core_ext_spec.rb Normal file
View File

@@ -0,0 +1,19 @@
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
describe "Core Extensions" do
it "should alias Numeric class methods" do
number = 1
number.sec.should == number.second
number.min.should == number.minute
end
it "should alias Time instance methods" do
time = Time.now
time.secs_ago(10).should == time.ago(10)
time.seconds_ago(10).should == time.ago(10)
time.secs_since(10).should == time.since(10)
time.seconds_since(10).should == time.since(10)
end
end

View File

@@ -1,2 +0,0 @@
--format specdoc
--color

View File

@@ -1,9 +1,6 @@
$LOAD_PATH.unshift(File.dirname(__FILE__)) $LOAD_PATH.unshift(File.dirname(__FILE__))
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
require 'time_ext'
require 'spec'
require 'spec/autorun'
Spec::Runner.configure do |config| require 'time_ext'
require 'rspec'
end require 'rspec/autorun'

View File

@@ -52,8 +52,6 @@ describe "Time Iterations" do
match = (1..6).map { |i| @now + i.hours } match = (1..6).map { |i| @now + i.hours }
@now.map_each_hour.until(@now + 6.hours) { |time| time }.should == match @now.map_each_hour.until(@now + 6.hours) { |time| time }.should == match
@now.until(@now + 6.hours).map_each(:hour) { |time| time }.should == match @now.until(@now + 6.hours).map_each(:hour) { |time| time }.should == match
# check so the #map alias for #map_each works
@now.map_hour.until(@now + 6.hours) { |time| time }.should == match
end end
it "should iterate over time objects backwards with #until set in the past" do it "should iterate over time objects backwards with #until set in the past" do

29
time_ext.gemspec Normal file
View File

@@ -0,0 +1,29 @@
# -*- encoding: utf-8 -*-
$:.push File.expand_path("../lib", __FILE__)
require "time_ext/version"
Gem::Specification.new do |s|
s.name = "time_ext"
s.version = TimeExt::VERSION
s.platform = Gem::Platform::RUBY
s.authors = ["Jim Myhrberg"]
s.email = ["contact@jimeh.me"]
s.homepage = "http://github.com/jimeh/time_ext"
s.summary = "Extends the abilities of Ruby's built-in Time class by building on top of ActiveSupport."
s.description = "Extends the abilities of Ruby's built-in Time class by building on top of ActiveSupport."
s.rubyforge_project = "time_ext"
s.files = `git ls-files`.split("\n")
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
s.require_paths = ["lib"]
s.add_runtime_dependency 'activesupport', '>= 2.3.2'
s.add_runtime_dependency 'i18n', '>= 0.4.2'
s.add_development_dependency 'rake', '>= 0.8.7'
s.add_development_dependency 'rspec', '>= 2.1.0'
s.add_development_dependency 'yard', '>= 0.6.3'
s.add_development_dependency 'ruby-debug'
end