shibaraku 1.3.0 → 1.4.0
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 +4 -4
- data/CHANGELOG.md +7 -1
- data/lib/shibaraku.rb +9 -0
- data/lib/shibaraku/active_record_ext.rb +31 -23
- data/lib/shibaraku/version.rb +1 -1
- data/shibaraku.gemspec +1 -0
- metadata +17 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2fffc67a48192b7316ba31cfdffc0686ca4aa672
|
|
4
|
+
data.tar.gz: 4391a32d5f93d146a4b674d69845ec1b0d44d028
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 92b21a4c02c4921179e6d0a1e1ab3543339863ade1f05bbe9a368ae01f1d7ae11354b510878030d35a4f619a7d5171de3f10deab616fc69e8eed8e294fd154a7
|
|
7
|
+
data.tar.gz: 4ac54d031eb54400ed3ad74bf4f50b2d539d21037333e1c087d1188f456e78639293005af023bafed54c86ee15a579a3739ab06da7210e3d111b364fc7634ee9
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
## Shibaraku master (unreleased)
|
|
2
|
-
[full changelog](https://github.com/onk/shibaraku/compare/v1.
|
|
2
|
+
[full changelog](https://github.com/onk/shibaraku/compare/v1.4.0...master)
|
|
3
|
+
|
|
4
|
+
## Shibaraku v1.4.0 (2017-02-15)
|
|
5
|
+
[full changelog](https://github.com/onk/shibaraku/compare/v1.3.0...v1.4.0)
|
|
6
|
+
|
|
7
|
+
* [#5] Support ActiveHash (@Narazaka)
|
|
8
|
+
|
|
3
9
|
|
|
4
10
|
## Shibaraku v1.3.0 (2016-11-08)
|
|
5
11
|
[full changelog](https://github.com/onk/shibaraku/compare/v1.2.0...v1.3.0)
|
data/lib/shibaraku.rb
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
require "active_record"
|
|
2
|
+
begin
|
|
3
|
+
require "active_hash"
|
|
4
|
+
rescue LoadError
|
|
5
|
+
end
|
|
2
6
|
require "shibaraku/active_record_ext"
|
|
3
7
|
|
|
4
8
|
module Shibaraku
|
|
@@ -7,3 +11,8 @@ end
|
|
|
7
11
|
ActiveSupport.on_load :active_record do
|
|
8
12
|
ActiveRecord::Base.include(Shibaraku::ActiveRecordExt)
|
|
9
13
|
end
|
|
14
|
+
|
|
15
|
+
# active_hash do not use ActiveSupport::LazyLoadHooks
|
|
16
|
+
if defined?(ActiveHash)
|
|
17
|
+
ActiveHash::Base.include(Shibaraku::ActiveRecordExt)
|
|
18
|
+
end
|
|
@@ -15,24 +15,6 @@ module Shibaraku
|
|
|
15
15
|
self.shibaraku_end_at_column = options[:end_at] || :end_at
|
|
16
16
|
include Shibaraku::ActiveRecordExt::Core
|
|
17
17
|
end
|
|
18
|
-
|
|
19
|
-
def shibaraku_start_at_column_name(user)
|
|
20
|
-
name = self.shibaraku_start_at_column
|
|
21
|
-
name = test_column_name(name) if user && user.super_user?
|
|
22
|
-
name
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def shibaraku_end_at_column_name(user)
|
|
26
|
-
name = self.shibaraku_end_at_column
|
|
27
|
-
name = test_column_name(name) if user && user.super_user?
|
|
28
|
-
name
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def test_column_name(name)
|
|
32
|
-
define_attribute_methods
|
|
33
|
-
test_name = "test_#{name}"
|
|
34
|
-
self.method_defined?(test_name) ? test_name : name
|
|
35
|
-
end
|
|
36
18
|
end
|
|
37
19
|
|
|
38
20
|
module Core
|
|
@@ -49,12 +31,38 @@ module Shibaraku
|
|
|
49
31
|
end
|
|
50
32
|
|
|
51
33
|
module ClassMethods
|
|
34
|
+
def shibaraku_start_at_column_name(user)
|
|
35
|
+
name = self.shibaraku_start_at_column
|
|
36
|
+
name = test_column_name(name) if user && user.super_user?
|
|
37
|
+
name
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def shibaraku_end_at_column_name(user)
|
|
41
|
+
name = self.shibaraku_end_at_column
|
|
42
|
+
name = test_column_name(name) if user && user.super_user?
|
|
43
|
+
name
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_column_name(name)
|
|
47
|
+
define_attribute_methods
|
|
48
|
+
test_name = "test_#{name}"
|
|
49
|
+
self.method_defined?(test_name) ? test_name : name
|
|
50
|
+
end
|
|
51
|
+
|
|
52
52
|
def in_time(user = nil, now = Time.current)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
if ancestors.include?(::ActiveRecord::Base)
|
|
54
|
+
start_at = arel_table[shibaraku_start_at_column_name(user)]
|
|
55
|
+
end_at = arel_table[shibaraku_end_at_column_name(user)]
|
|
56
|
+
starting = where(start_at.eq(nil).or(start_at.lteq(now)))
|
|
57
|
+
ending = where(end_at.eq(nil).or(end_at.gt(now)))
|
|
58
|
+
starting.merge(ending)
|
|
59
|
+
else
|
|
60
|
+
start_at = shibaraku_start_at_column_name(user)
|
|
61
|
+
end_at = shibaraku_end_at_column_name(user)
|
|
62
|
+
all.select do |record|
|
|
63
|
+
(record.send(start_at).nil? || record.send(start_at) <= now) && (record.send(end_at).nil? || now < record.send(end_at))
|
|
64
|
+
end
|
|
65
|
+
end
|
|
58
66
|
end
|
|
59
67
|
end
|
|
60
68
|
|
data/lib/shibaraku/version.rb
CHANGED
data/shibaraku.gemspec
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: shibaraku
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Takafumi ONAKA
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2017-02-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -80,6 +80,20 @@ dependencies:
|
|
|
80
80
|
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '0'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: active_hash
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0'
|
|
83
97
|
description: Manage model with a period on ActiveRecord.
|
|
84
98
|
email:
|
|
85
99
|
- takafumi.onaka@gmail.com
|
|
@@ -124,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
124
138
|
version: '0'
|
|
125
139
|
requirements: []
|
|
126
140
|
rubyforge_project:
|
|
127
|
-
rubygems_version: 2.6.
|
|
141
|
+
rubygems_version: 2.6.10
|
|
128
142
|
signing_key:
|
|
129
143
|
specification_version: 4
|
|
130
144
|
summary: Manage model with a period on ActiveRecord.
|