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 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.