mirror of
https://github.com/jimeh/time_ext.git
synced 2026-02-19 13:26:39 +00:00
Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 53fed4fb33 | |||
| dad55fb6f9 | |||
| 4b1327306d | |||
| 950a57dc66 | |||
| 59c96c0246 | |||
| 8bb93bf5f1 | |||
| d84154bd5b | |||
| 0bef341111 | |||
| 6686731651 | |||
| fceb7b8ff2 | |||
| 803ad03d6c | |||
| b29c232939 | |||
| f3b9d3751a | |||
| a612a17c54 | |||
| 71c5421587 | |||
| d564c31b93 | |||
| 29e1c7f500 | |||
| f49c6bd455 | |||
| 5ece10846a | |||
| 5afb6bc2b9 | |||
| 9bbd974a75 |
8
.gitignore
vendored
8
.gitignore
vendored
@@ -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/*
|
||||||
|
|||||||
4
Gemfile
Normal file
4
Gemfile
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
source 'http://rubygems.org/'
|
||||||
|
|
||||||
|
# Specify your gem's dependencies in time_ext.gemspec
|
||||||
|
gemspec
|
||||||
@@ -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/
|
||||||
57
Rakefile
57
Rakefile
@@ -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
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
3
lib/time_ext/version.rb
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
module TimeExt
|
||||||
|
VERSION = "0.2.9"
|
||||||
|
end
|
||||||
19
spec/core_ext_spec.rb
Normal file
19
spec/core_ext_spec.rb
Normal 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
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
--format specdoc
|
|
||||||
--color
|
|
||||||
@@ -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
|
|
||||||
|
|||||||
@@ -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
29
time_ext.gemspec
Normal 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
|
||||||
Reference in New Issue
Block a user