query_filter 0.1.7 → 0.1.8

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