activeset 0.8.3 → 0.8.4

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: 0a35c45c1515b720f53f45bbaf0f56a3de6b36af
4
- data.tar.gz: 65588202096e28453bd828643884b51489aa5f4a
3
+ metadata.gz: 111dce72262ab724e87284ae53db551f64f7fbd3
4
+ data.tar.gz: 1b27b096fff28fd454031b867e37e5fa330eca9f
5
5
  SHA512:
6
- metadata.gz: 691731355d82e7fd51af5b76ce8caffe3e54f4decef98986595f67b8916c043ae52cdf3fbbd694d568844302d2f609988befa62df5e6720e1b808111a59f93a7
7
- data.tar.gz: 2c66f5a2d7ae05fbeebf0267ac36736f6ab42c0e42d9f70189af65b03f429ae88de4159489b7725c6f89a677c760230a7f14b9db518c287402f57f9220f38490
6
+ metadata.gz: db987bc554e79ea8153205f488ee9b7a66e1c46eb1e5a7d6ba3a047a681fdb3d7e8251d9bb7a1e67bab29b29fb65036fc6e8e20280d8499432f026d45c34cb42
7
+ data.tar.gz: 3a00cead112dc0a94b2b588ecaece1bbea28936cbd4e5383d5902a36bc4a05cacad6ca22181af02af8d56a700a585983203545d513220433db0d5140b354715c
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ v 0.8.4
2
+ - start using Bundler v2.x
3
+ - check the Gemfile.lock into version control
4
+ - handle transforming Date objects into sortable integers a bit more intelligently to ensure UTC
5
+ - fix Rubocop offenses (safely)
1
6
  v 0.8.3
2
7
  - fix a bug to allow sorting of computed attributes on sets that include nil values
3
8
  v 0.8.2
@@ -0,0 +1,190 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ activeset (0.8.3)
5
+ activesupport (>= 4.0.2)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ actioncable (5.1.6)
11
+ actionpack (= 5.1.6)
12
+ nio4r (~> 2.0)
13
+ websocket-driver (~> 0.6.1)
14
+ actionmailer (5.1.6)
15
+ actionpack (= 5.1.6)
16
+ actionview (= 5.1.6)
17
+ activejob (= 5.1.6)
18
+ mail (~> 2.5, >= 2.5.4)
19
+ rails-dom-testing (~> 2.0)
20
+ actionpack (5.1.6)
21
+ actionview (= 5.1.6)
22
+ activesupport (= 5.1.6)
23
+ rack (~> 2.0)
24
+ rack-test (>= 0.6.3)
25
+ rails-dom-testing (~> 2.0)
26
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
27
+ actionview (5.1.6)
28
+ activesupport (= 5.1.6)
29
+ builder (~> 3.1)
30
+ erubi (~> 1.4)
31
+ rails-dom-testing (~> 2.0)
32
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
33
+ activejob (5.1.6)
34
+ activesupport (= 5.1.6)
35
+ globalid (>= 0.3.6)
36
+ activemodel (5.1.6)
37
+ activesupport (= 5.1.6)
38
+ activerecord (5.1.6)
39
+ activemodel (= 5.1.6)
40
+ activesupport (= 5.1.6)
41
+ arel (~> 8.0)
42
+ activesupport (5.1.6)
43
+ concurrent-ruby (~> 1.0, >= 1.0.2)
44
+ i18n (>= 0.7, < 2)
45
+ minitest (~> 5.1)
46
+ tzinfo (~> 1.1)
47
+ ansi (1.5.0)
48
+ arel (8.0.0)
49
+ ast (2.4.0)
50
+ builder (3.2.3)
51
+ codecov (0.1.13)
52
+ json
53
+ simplecov
54
+ url
55
+ combustion (0.7.0)
56
+ activesupport (>= 3.0.0)
57
+ railties (>= 3.0.0)
58
+ thor (>= 0.14.6)
59
+ concurrent-ruby (1.0.5)
60
+ crass (1.0.4)
61
+ database_cleaner (1.6.2)
62
+ diff-lcs (1.3)
63
+ docile (1.1.5)
64
+ erubi (1.7.1)
65
+ factory_bot (4.8.2)
66
+ activesupport (>= 3.0.0)
67
+ faker (1.8.7)
68
+ i18n (>= 0.7)
69
+ globalid (0.4.1)
70
+ activesupport (>= 4.2.0)
71
+ hirb (0.7.3)
72
+ i18n (1.1.1)
73
+ concurrent-ruby (~> 1.0)
74
+ jaro_winkler (1.5.1)
75
+ json (2.1.0)
76
+ loofah (2.2.3)
77
+ crass (~> 1.0.2)
78
+ nokogiri (>= 1.5.9)
79
+ mail (2.7.1)
80
+ mini_mime (>= 0.1.1)
81
+ method_source (0.9.0)
82
+ mini_mime (1.0.1)
83
+ mini_portile2 (2.3.0)
84
+ minitest (5.11.3)
85
+ nio4r (2.3.1)
86
+ nokogiri (1.8.5)
87
+ mini_portile2 (~> 2.3.0)
88
+ parallel (1.12.1)
89
+ parser (2.5.3.0)
90
+ ast (~> 2.4.0)
91
+ powerpack (0.1.2)
92
+ rack (2.0.5)
93
+ rack-test (1.1.0)
94
+ rack (>= 1.0, < 3)
95
+ rails (5.1.6)
96
+ actioncable (= 5.1.6)
97
+ actionmailer (= 5.1.6)
98
+ actionpack (= 5.1.6)
99
+ actionview (= 5.1.6)
100
+ activejob (= 5.1.6)
101
+ activemodel (= 5.1.6)
102
+ activerecord (= 5.1.6)
103
+ activesupport (= 5.1.6)
104
+ bundler (>= 1.3.0)
105
+ railties (= 5.1.6)
106
+ sprockets-rails (>= 2.0.0)
107
+ rails-dom-testing (2.0.3)
108
+ activesupport (>= 4.2.0)
109
+ nokogiri (>= 1.6)
110
+ rails-html-sanitizer (1.0.4)
111
+ loofah (~> 2.2, >= 2.2.2)
112
+ railties (5.1.6)
113
+ actionpack (= 5.1.6)
114
+ activesupport (= 5.1.6)
115
+ method_source
116
+ rake (>= 0.8.7)
117
+ thor (>= 0.18.1, < 2.0)
118
+ rainbow (3.0.0)
119
+ rake (10.5.0)
120
+ rspec (3.8.0)
121
+ rspec-core (~> 3.8.0)
122
+ rspec-expectations (~> 3.8.0)
123
+ rspec-mocks (~> 3.8.0)
124
+ rspec-core (3.8.0)
125
+ rspec-support (~> 3.8.0)
126
+ rspec-expectations (3.8.2)
127
+ diff-lcs (>= 1.2.0, < 2.0)
128
+ rspec-support (~> 3.8.0)
129
+ rspec-mocks (3.8.0)
130
+ diff-lcs (>= 1.2.0, < 2.0)
131
+ rspec-support (~> 3.8.0)
132
+ rspec-support (3.8.0)
133
+ rubocop (0.60.0)
134
+ jaro_winkler (~> 1.5.1)
135
+ parallel (~> 1.10)
136
+ parser (>= 2.5, != 2.5.1.1)
137
+ powerpack (~> 0.1)
138
+ rainbow (>= 2.2.2, < 4.0)
139
+ ruby-progressbar (~> 1.7)
140
+ unicode-display_width (~> 1.4.0)
141
+ ruby-progressbar (1.10.0)
142
+ simplecov (0.15.1)
143
+ docile (~> 1.1.0)
144
+ json (>= 1.8, < 3)
145
+ simplecov-html (~> 0.10.0)
146
+ simplecov-console (0.4.2)
147
+ ansi
148
+ hirb
149
+ simplecov
150
+ simplecov-html (0.10.2)
151
+ sprockets (3.7.2)
152
+ concurrent-ruby (~> 1.0)
153
+ rack (> 1, < 3)
154
+ sprockets-rails (3.2.1)
155
+ actionpack (>= 4.0)
156
+ activesupport (>= 4.0)
157
+ sprockets (>= 3.0.0)
158
+ sqlite3 (1.3.13)
159
+ thor (0.20.0)
160
+ thread_safe (0.3.6)
161
+ tzinfo (1.2.5)
162
+ thread_safe (~> 0.1)
163
+ unicode-display_width (1.4.0)
164
+ url (0.3.2)
165
+ websocket-driver (0.6.5)
166
+ websocket-extensions (>= 0.1.0)
167
+ websocket-extensions (0.1.3)
168
+
169
+ PLATFORMS
170
+ ruby
171
+
172
+ DEPENDENCIES
173
+ activerecord
174
+ activeset!
175
+ bundler (~> 2.0)
176
+ codecov
177
+ combustion (~> 0.7.0)
178
+ database_cleaner (~> 1.6.1)
179
+ factory_bot (~> 4.8.0)
180
+ faker (~> 1.8.4)
181
+ rails (~> 5.1.0)
182
+ rake (~> 10.0)
183
+ rspec (~> 3.0)
184
+ rubocop
185
+ simplecov (~> 0.15.0)
186
+ simplecov-console (~> 0.4.2)
187
+ sqlite3
188
+
189
+ BUNDLED WITH
190
+ 2.0.1
@@ -6,7 +6,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
6
  Gem::Specification.new do |spec|
7
7
  spec.platform = Gem::Platform::RUBY
8
8
  spec.name = 'activeset'
9
- spec.version = '0.8.3'
9
+ spec.version = '0.8.4'
10
10
  spec.authors = ['Stephen Margheim']
11
11
  spec.email = ['stephen.margheim@gmail.com']
12
12
 
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.add_dependency 'activesupport', '>= 4.0.2'
26
26
 
27
- spec.add_development_dependency 'bundler', '~> 1.15'
27
+ spec.add_development_dependency 'bundler', '~> 2.0'
28
28
  spec.add_development_dependency 'codecov'
29
29
  spec.add_development_dependency 'combustion', '~> 0.7.0'
30
30
  spec.add_development_dependency 'database_cleaner', '~> 1.6.1'
@@ -24,16 +24,11 @@ def transform_to_sortable_numeric(value)
24
24
  elsif key == false
25
25
  0
26
26
  elsif key.is_a?(String) || key.is_a?(Symbol)
27
- key
28
- .to_s # 'aB09ü'
29
- .split('') # ["a", "B", "0", "9", "ü"]
30
- .map { |char| char.ord.to_s.rjust(3, '0') } # ["097", "066", "048", "057", "252"]
31
- .insert(1, '.') # ["097", ".", "066", "048", "057", "252"]
32
- .reduce(&:concat) # "097.066048057252"
33
- .to_r # (24266512014313/250000000000)
27
+ string_to_sortable_numeric(key.to_s)
28
+ elsif key.is_a?(Date)
29
+ time_to_sortable_numeric(Time.new(key.year, key.month, key.day, 0o0, 0o0, 0o0, 0))
34
30
  elsif key.respond_to?(:to_time)
35
- # https://stackoverflow.com/a/30604935/2884386
36
- (key.to_time.to_f * 1000).round
31
+ time_to_sortable_numeric(key.to_time)
37
32
  else
38
33
  key
39
34
  end
@@ -42,3 +37,17 @@ def transform_to_sortable_numeric(value)
42
37
  end
43
38
  # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
44
39
  # rubocop:enable Style/AsciiComments
40
+
41
+ def string_to_sortable_numeric(string)
42
+ string # 'aB09ü'
43
+ .split('') # ["a", "B", "0", "9", "ü"]
44
+ .map { |char| char.ord.to_s.rjust(3, '0') } # ["097", "066", "048", "057", "252"]
45
+ .insert(1, '.') # ["097", ".", "066", "048", "057", "252"]
46
+ .reduce(&:concat) # "097.066048057252"
47
+ .to_r # (24266512014313/250000000000)
48
+ end
49
+
50
+ def time_to_sortable_numeric(time)
51
+ # https://stackoverflow.com/a/30604935/2884386
52
+ (time.utc.to_f * 1000).round
53
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeset
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen Margheim
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.15'
33
+ version: '2.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.15'
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: codecov
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -207,6 +207,7 @@ files:
207
207
  - ".travis.yml"
208
208
  - CHANGELOG
209
209
  - Gemfile
210
+ - Gemfile.lock
210
211
  - LICENSE.txt
211
212
  - README.md
212
213
  - Rakefile