shibaraku 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 249745c0787cffbfe23b9b9e3ddae9e2c7e43906
4
- data.tar.gz: 0b1e63a29e6d513a912a1eaaa96ed6b739a6d7dd
3
+ metadata.gz: 2fffc67a48192b7316ba31cfdffc0686ca4aa672
4
+ data.tar.gz: 4391a32d5f93d146a4b674d69845ec1b0d44d028
5
5
  SHA512:
6
- metadata.gz: 7476a96143771afc55c93fc76ac90d861365caeb62cbeb13d7fa5dfe21706a149292d1883df7d578dd6ac0525194a5875e748c8d0ab356e4484a9e72d7598f45
7
- data.tar.gz: e13c0d8509fd31719a63671441bb89d19fb98154a30d4fea2ce8186d455084095fd015508f02482b845c60d8a16f597345eb2337ef5d39f42a5d2043f8e9d897
6
+ metadata.gz: 92b21a4c02c4921179e6d0a1e1ab3543339863ade1f05bbe9a368ae01f1d7ae11354b510878030d35a4f619a7d5171de3f10deab616fc69e8eed8e294fd154a7
7
+ data.tar.gz: 4ac54d031eb54400ed3ad74bf4f50b2d539d21037333e1c087d1188f456e78639293005af023bafed54c86ee15a579a3739ab06da7210e3d111b364fc7634ee9
@@ -1,5 +1,11 @@
1
1
  ## Shibaraku master (unreleased)
2
- [full changelog](https://github.com/onk/shibaraku/compare/v1.3.0...master)
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)
@@ -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
- start_at = arel_table[shibaraku_start_at_column_name(user)]
54
- end_at = arel_table[shibaraku_end_at_column_name(user)]
55
- starting = where(start_at.eq(nil).or(start_at.lteq(now)))
56
- ending = where(end_at.eq(nil).or(end_at.gt(now)))
57
- starting.merge(ending)
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
 
@@ -1,3 +1,3 @@
1
1
  module Shibaraku
2
- VERSION = "1.3.0"
2
+ VERSION = "1.4.0"
3
3
  end
@@ -24,4 +24,5 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "rake"
25
25
  spec.add_development_dependency "mysql2"
26
26
  spec.add_development_dependency "rspec"
27
+ spec.add_development_dependency "active_hash"
27
28
  end
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.3.0
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: 2016-11-08 00:00:00.000000000 Z
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.8
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.