query_filter 0.1.7 → 0.1.8

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: a3b80f6ebbda9a72dbdf5006bacf0b86df4f31d7
4
- data.tar.gz: 65b0caa32fc7b1d16b04e05765a11a0609649b08
3
+ metadata.gz: 4b6afc4d8301e89187a25929659d0bf700393759
4
+ data.tar.gz: f02b574cca6bb204af006029925294da51b8ea0b
5
5
  SHA512:
6
- metadata.gz: e17a1e98a36c33e1d72334a256c2b81729fded4654e0c6dc7769a0d6c18834a7af5dafa9fc6b219b67215ca0403186ff8cd47cbf8bf04e61adb9e90bd02bebee
7
- data.tar.gz: 051fba31c512c8cc5a62ea1f7af59cb1047c7d4d3cc0328ca351d2c563d5ad17f29205e21f59f0e789ea45b855b2ef66fe43c131d95b4bb44bb47f223fddee14
6
+ metadata.gz: 907332261dafbb301d9d59ab4cf50673dcb8b4fe08ce120b4a0e42f7fa5a4d12feca5dfb95bf40adc9682e3ef81f5a83d8d5dea817b540a2bc5a33669f9406cd
7
+ data.tar.gz: 4fd382934f56ffcc95722d9ac05c4e02a20575f29402e197b4c1518a6b7f697c9aa3caf8dc7402a8d4096f7ce5da9ca466deef646c86934a39e1aeae972e8511
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- query_filter (0.1.7)
4
+ query_filter (0.1.8)
5
5
  activesupport (>= 4.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -94,6 +94,23 @@ This gem support next types of filter params:
94
94
  orders.created_at BETWEEN '2017-06-24 04:00:00.000000' AND '2017-07-01 03:59:59.999999'
95
95
  ```
96
96
 
97
+ When we have date with custom time:
98
+ ```ruby
99
+ date_range :range, format: '%m/%d/%Y %H:%M'
100
+
101
+ def date_range_range(period)
102
+ query.where(created_at: period.range)
103
+ end
104
+ ```
105
+
106
+ `period.range` will ignore time and always return time start_of_day and end_of_day, but the method `period.range_original` will return dates without time modification
107
+
108
+ ```ruby
109
+ def date_range_range(period)
110
+ query.where(created_at: period.range_original)
111
+ end
112
+ ```
113
+
97
114
  * order by
98
115
  ```ruby
99
116
  order_by :sort_column, via: :sort_mode
@@ -3,7 +3,7 @@
3
3
  module QueryFilter
4
4
  module Utils
5
5
  class DatePeriod
6
- attr_reader :date_from, :date_to, :format
6
+ attr_reader :date_from_raw, :date_to_raw, :format
7
7
 
8
8
  TIME_FORMAT = '%Y-%m-%d %H:%M:%S'
9
9
 
@@ -11,25 +11,42 @@ module QueryFilter
11
11
  @format = (format.blank? ? QueryFilter.date_period_format : format)
12
12
  @date_from_raw = date_from
13
13
  @date_to_raw = date_to
14
-
15
- @date_from = normalize_date(date_from).beginning_of_day
16
- @date_to = normalize_date(date_to).end_of_day
17
14
  end
18
15
 
19
16
  def range
20
17
  @range ||= date_from..date_to
21
18
  end
22
19
 
20
+ def range_original
21
+ @range_original ||= date_from_original..date_to_original
22
+ end
23
+
24
+ def date_from
25
+ @date_from ||= date_from_original.beginning_of_day
26
+ end
27
+
28
+ def date_to
29
+ @date_to ||= date_to_original.end_of_day
30
+ end
31
+
32
+ def date_from_original
33
+ @date_from_original ||= normalize_date(@date_from_raw)
34
+ end
35
+
36
+ def date_to_original
37
+ @date_to_original ||= normalize_date(@date_to_raw)
38
+ end
39
+
23
40
  def title
24
41
  @title ||= to_human
25
42
  end
26
43
 
27
44
  def datefrom
28
- @datefrom ||= I18n.l(@date_from, format: @format)
45
+ @datefrom ||= I18n.l(date_from, format: @format)
29
46
  end
30
47
 
31
48
  def dateto
32
- @dateto ||= I18n.l(@date_to, format: @format)
49
+ @dateto ||= I18n.l(date_to, format: @format)
33
50
  end
34
51
 
35
52
  def to_param
@@ -1,3 +1,3 @@
1
1
  module QueryFilter
2
- VERSION = '0.1.7'.freeze
2
+ VERSION = '0.1.8'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: query_filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Galeta
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-01-04 00:00:00.000000000 Z
12
+ date: 2018-01-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler