timescopes 0.1.0 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f8e7af4989b23d98083331ecbe2a563dd709077d
4
- data.tar.gz: 7f7ce4e7516330cd74e088f83dccfca2dcdd5255
3
+ metadata.gz: 33459f5097d5d9f3b5c4f180c3ddf9ebf259544a
4
+ data.tar.gz: a582cf895357b9ff22e43d5d70b733376119de96
5
5
  SHA512:
6
- metadata.gz: 69c25b152734f3cf1ba1dda61330287ba8d5dee6f66d8cb4ca91477b1194d0c95ff5ae3f55c74abf1088e00a5e05c050114be7670a6dabd5386623d8acedd00c
7
- data.tar.gz: 015556d6fc37203087fa64415afaab732acff8e9852328d45ec47831e788f091f2f45406989cb27d08c9f5a4586b5b516ccdeffd2d7d744662c73b201eb609b5
6
+ metadata.gz: cc86d6dc4b3eee7ac2c62fb5e53f10484804c22202dc2c0c3cd1eef785e971cbb3fb64d0bf22ed6dde3965a837f5bcca11396aaa05dd08c798e9b00cb143dd4d
7
+ data.tar.gz: 0079a6bb100bd3f15115422a8c6ebf7d2c11453ed7fa21c8cf3b168a04c7479f86081f4cccea955c8ed5ca042721e6058c02fb5c8316c842893ce77879f39ebc
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -0,0 +1,31 @@
1
+ module TimeScopes
2
+ module Rails
3
+ module ActiveRecordExtension
4
+ extend ActiveSupport::Concern
5
+
6
+ module ClassMethods
7
+ def timescoped!(opts={})
8
+ default_scopes = [:daily, :weekly, :monthly]
9
+
10
+ field = opts[:field] || "created_at"
11
+ scopes = if opts[:only]
12
+ Array(opts[:only]).map(&:to_sym) & default_scopes
13
+ else
14
+ default_scopes
15
+ end
16
+
17
+ scopes.each do |scope|
18
+ eval %%
19
+ def #{scope}(start=nil)
20
+ start, finish = TimeScopes.#{scope}(start)
21
+ where('#{field} >= ? AND #{field} < ?', start.utc, finish.utc)
22
+ end
23
+ %
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ ActiveRecord::Base.send(:include, TimeScopes::Rails::ActiveRecordExtension)
@@ -0,0 +1,38 @@
1
+ require 'chronic'
2
+
3
+ module TimeScopes
4
+ class << self
5
+ def daily(start=nil)
6
+ start ||= Time.now
7
+ [ Chronic.parse(start_of_day(start.utc)),
8
+ Chronic.parse(start_of_day(1.day.since(start.utc))) ]
9
+ end
10
+
11
+ def weekly(start=nil)
12
+ start ||= Time.now
13
+ start = start.utc
14
+ start = start - 1.day while !start.monday?
15
+ [ Chronic.parse(start_of_day(start.utc)),
16
+ Chronic.parse(start_of_day(1.week.since(start.utc))) ]
17
+ end
18
+
19
+ def monthly(start=nil)
20
+ start ||= Time.now
21
+ [ Chronic.parse(start_of_month(start.utc)),
22
+ Chronic.parse(start_of_month(1.month.since(start.utc))) ]
23
+ end
24
+
25
+ def overall(start=nil)
26
+ [ Chronic.parse('2000-01-01 00:00:00'),
27
+ Chronic.parse(start_of_day(1.day.from_now.utc)) ]
28
+ end
29
+
30
+ def start_of_day(time)
31
+ time.strftime("%Y-%m-%d 00:00:00Z")
32
+ end
33
+
34
+ def start_of_month(time)
35
+ time.strftime("%Y-%m-01 00:00:00Z")
36
+ end
37
+ end
38
+ end
data/lib/timescopes.rb CHANGED
@@ -1,36 +1,5 @@
1
- module TimeScopes
2
- class << self
3
- def daily(start=nil)
4
- start ||= Time.now
5
- [ Chronic.parse(start_of_day(start.utc)),
6
- Chronic.parse(start_of_day(1.day.since(start.utc))) ]
7
- end
1
+ require_relative "./timescopes/scopes"
8
2
 
9
- def weekly(start=nil)
10
- start ||= Time.now
11
- start = start.utc
12
- start = start - 1.day while !start.monday?
13
- [ Chronic.parse(start_of_day(start.utc)),
14
- Chronic.parse(start_of_day(1.week.since(start.utc))) ]
15
- end
16
-
17
- def monthly(start=nil)
18
- start ||= Time.now
19
- [ Chronic.parse(start_of_month(start.utc)),
20
- Chronic.parse(start_of_month(1.month.since(start.utc))) ]
21
- end
22
-
23
- def overall(start=nil)
24
- [ Chronic.parse('2000-01-01 00:00:00'),
25
- Chronic.parse(start_of_day(1.day.from_now.utc)) ]
26
- end
27
-
28
- def start_of_day(time)
29
- time.strftime("%Y-%m-%d 00:00:00Z")
30
- end
31
-
32
- def start_of_month(time)
33
- time.strftime("%Y-%m-01 00:00:00Z")
34
- end
35
- end
3
+ if defined?(ActiveRecord::Base)
4
+ require_relative "./timescopes/rails/active_record_extension"
36
5
  end
@@ -0,0 +1,68 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: timescopes 0.1.1 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "timescopes"
9
+ s.version = "0.1.1"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
13
+ s.authors = ["Ian Hunter"]
14
+ s.date = "2015-10-31"
15
+ s.description = ""
16
+ s.email = "ianhunter@gmail.com"
17
+ s.extra_rdoc_files = [
18
+ "LICENSE.txt",
19
+ "README.md"
20
+ ]
21
+ s.files = [
22
+ ".document",
23
+ "Gemfile",
24
+ "Gemfile.lock",
25
+ "LICENSE.txt",
26
+ "README.md",
27
+ "Rakefile",
28
+ "VERSION",
29
+ "lib/timescopes.rb",
30
+ "lib/timescopes/rails/active_record_extension.rb",
31
+ "lib/timescopes/scopes.rb",
32
+ "test/helper.rb",
33
+ "test/test_timescopes.rb",
34
+ "timescopes.gemspec"
35
+ ]
36
+ s.homepage = "http://github.com/ian/timescopes"
37
+ s.licenses = ["MIT"]
38
+ s.rubygems_version = "2.4.6"
39
+ s.summary = "General time scoping"
40
+
41
+ if s.respond_to? :specification_version then
42
+ s.specification_version = 4
43
+
44
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
45
+ s.add_runtime_dependency(%q<chronic>, [">= 0"])
46
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
47
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
48
+ s.add_development_dependency(%q<bundler>, ["~> 1.0"])
49
+ s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
50
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
51
+ else
52
+ s.add_dependency(%q<chronic>, [">= 0"])
53
+ s.add_dependency(%q<shoulda>, [">= 0"])
54
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
55
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
56
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
57
+ s.add_dependency(%q<simplecov>, [">= 0"])
58
+ end
59
+ else
60
+ s.add_dependency(%q<chronic>, [">= 0"])
61
+ s.add_dependency(%q<shoulda>, [">= 0"])
62
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
63
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
64
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
65
+ s.add_dependency(%q<simplecov>, [">= 0"])
66
+ end
67
+ end
68
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timescopes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Hunter
@@ -110,8 +110,11 @@ files:
110
110
  - Rakefile
111
111
  - VERSION
112
112
  - lib/timescopes.rb
113
+ - lib/timescopes/rails/active_record_extension.rb
114
+ - lib/timescopes/scopes.rb
113
115
  - test/helper.rb
114
116
  - test/test_timescopes.rb
117
+ - timescopes.gemspec
115
118
  homepage: http://github.com/ian/timescopes
116
119
  licenses:
117
120
  - MIT