21 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
16 changed files with 99 additions and 48 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.5

View File

@@ -1,5 +1,4 @@
require 'rubygems' require 'rubygems'
require 'active_support'
require 'time_ext/calculations' require 'time_ext/calculations'
require 'time_ext/iterations' require 'time_ext/iterations'

View File

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

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

@@ -83,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 'time_ext'
require 'spec' require 'rspec'
require 'spec/autorun' require 'rspec/autorun'
Spec::Runner.configure do |config|
end

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