forest_liana 6.3.3 → 6.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/services/forest_liana/line_stat_getter.rb +6 -2
- data/lib/forest_liana/version.rb +1 -1
- data/spec/dummy/app/models/owner.rb +2 -0
- data/spec/dummy/db/migrate/20210511141752_create_owners.rb +8 -0
- data/spec/dummy/db/schema.rb +6 -1
- data/spec/services/forest_liana/line_stat_getter_spec.rb +50 -0
- metadata +15 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d8c0675fe5c776a7168baf4e5375ead76bd8319b75c29c620e6888bbd9bfaec
|
4
|
+
data.tar.gz: 5d20db5792e2b1a637545cfe4a024df625db72004671fb47fa3eb15c68801736
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8de8c18b1b18b60f8d7096734e16a187a4e0d87cd9d5e00ef6fa70e7a8efb042bcbc08c084c33102c810c11da56402a8f77f554e4bbfbe4e9de60e3b3b90fdcf
|
7
|
+
data.tar.gz: 9959a3a3a53996d7cfcf638f82c24b93a471a01cb6f7eb75e20c459711235e68ea3077c9d44a0d606f5e4a396a5739649945d26d617d1e16da58234e6e03454f
|
@@ -3,6 +3,9 @@ module ForestLiana
|
|
3
3
|
attr_accessor :record
|
4
4
|
|
5
5
|
def client_timezone
|
6
|
+
# As stated here https://github.com/ankane/groupdate#for-sqlite
|
7
|
+
# groupdate does not handle timezone for SQLite
|
8
|
+
return nil if 'SQLite' == ActiveRecord::Base.connection.adapter_name
|
6
9
|
@params[:timezone]
|
7
10
|
end
|
8
11
|
|
@@ -26,9 +29,10 @@ module ForestLiana
|
|
26
29
|
value = FiltersParser.new(@params[:filters], value, @params[:timezone]).apply_filters
|
27
30
|
end
|
28
31
|
|
32
|
+
Groupdate.week_start = :monday
|
33
|
+
|
29
34
|
value = value.send(time_range, group_by_date_field, {
|
30
|
-
time_zone: client_timezone
|
31
|
-
week_start: :mon
|
35
|
+
time_zone: client_timezone
|
32
36
|
})
|
33
37
|
|
34
38
|
value = value.send(@params[:aggregate].downcase, @params[:aggregate_field])
|
data/lib/forest_liana/version.rb
CHANGED
data/spec/dummy/db/schema.rb
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
#
|
11
11
|
# It's strongly recommended that you check this file into your version control system.
|
12
12
|
|
13
|
-
ActiveRecord::Schema.define(version:
|
13
|
+
ActiveRecord::Schema.define(version: 2021_05_11_141752) do
|
14
14
|
|
15
15
|
create_table "isle", force: :cascade do |t|
|
16
16
|
t.string "name"
|
@@ -27,6 +27,11 @@ ActiveRecord::Schema.define(version: 2021_03_26_140855) do
|
|
27
27
|
t.index ["island_id"], name: "index_locations_on_island_id"
|
28
28
|
end
|
29
29
|
|
30
|
+
create_table "owners", force: :cascade do |t|
|
31
|
+
t.string "name"
|
32
|
+
t.datetime "hired_at"
|
33
|
+
end
|
34
|
+
|
30
35
|
create_table "references", force: :cascade do |t|
|
31
36
|
t.datetime "created_at", precision: 6, null: false
|
32
37
|
t.datetime "updated_at", precision: 6, null: false
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module ForestLiana
|
2
|
+
describe LineStatGetter do
|
3
|
+
describe 'Check client_timezone function' do
|
4
|
+
describe 'with a SQLite database' do
|
5
|
+
it 'should return nil' do
|
6
|
+
expect(LineStatGetter.new(Owner, {
|
7
|
+
timezone: "Europe/Paris",
|
8
|
+
aggregate: "Count",
|
9
|
+
}).client_timezone).to eq(nil)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe 'with a non-SQLite database' do
|
14
|
+
it 'should return the timezone' do
|
15
|
+
ActiveRecord::Base.connection.stub(:adapter_name) { 'NotSQLite' }
|
16
|
+
expect(LineStatGetter.new(Owner, {
|
17
|
+
timezone: "Europe/Paris",
|
18
|
+
aggregate: "Count",
|
19
|
+
}).client_timezone).to eq('Europe/Paris')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'Check perform function' do
|
25
|
+
describe 'Using a Count aggregation' do
|
26
|
+
describe 'Using a Week time range' do
|
27
|
+
it 'should return consistent data based on monday as week_start ' do
|
28
|
+
|
29
|
+
# Week should start on monday
|
30
|
+
# 08-05-2021 was a Saturday
|
31
|
+
Owner.create(name: 'Michel', hired_at: Date.parse('08-05-2021'));
|
32
|
+
Owner.create(name: 'Robert', hired_at: Date.parse('09-05-2021'));
|
33
|
+
Owner.create(name: 'José', hired_at: Date.parse('10-05-2021'));
|
34
|
+
Owner.create(name: 'Yves', hired_at: Date.parse('11-05-2021'));
|
35
|
+
|
36
|
+
stat = LineStatGetter.new(Owner, {
|
37
|
+
timezone: "Europe/Paris",
|
38
|
+
aggregate: "Count",
|
39
|
+
time_range: "Week",
|
40
|
+
group_by_date_field: "hired_at",
|
41
|
+
}).perform
|
42
|
+
|
43
|
+
expect(stat.value.find { |item| item[:label] == "W18-2021" }[:values][:value]).to eq(2)
|
44
|
+
expect(stat.value.find { |item| item[:label] == "W19-2021" }[:values][:value]).to eq(2)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: forest_liana
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.3.
|
4
|
+
version: 6.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sandro Munda
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-05-
|
11
|
+
date: 2021-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -84,16 +84,16 @@ dependencies:
|
|
84
84
|
name: groupdate
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 5.0.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 5.0.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: useragent
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -326,6 +326,7 @@ files:
|
|
326
326
|
- spec/dummy/app/helpers/application_helper.rb
|
327
327
|
- spec/dummy/app/models/island.rb
|
328
328
|
- spec/dummy/app/models/location.rb
|
329
|
+
- spec/dummy/app/models/owner.rb
|
329
330
|
- spec/dummy/app/models/reference.rb
|
330
331
|
- spec/dummy/app/models/tree.rb
|
331
332
|
- spec/dummy/app/models/user.rb
|
@@ -360,6 +361,7 @@ files:
|
|
360
361
|
- spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
|
361
362
|
- spec/dummy/db/migrate/20210326110524_create_references.rb
|
362
363
|
- spec/dummy/db/migrate/20210326140855_create_locations.rb
|
364
|
+
- spec/dummy/db/migrate/20210511141752_create_owners.rb
|
363
365
|
- spec/dummy/db/schema.rb
|
364
366
|
- spec/dummy/lib/forest_liana/collections/location.rb
|
365
367
|
- spec/dummy/lib/forest_liana/collections/user.rb
|
@@ -374,6 +376,7 @@ files:
|
|
374
376
|
- spec/services/forest_liana/apimap_sorter_spec.rb
|
375
377
|
- spec/services/forest_liana/filters_parser_spec.rb
|
376
378
|
- spec/services/forest_liana/ip_whitelist_checker_spec.rb
|
379
|
+
- spec/services/forest_liana/line_stat_getter_spec.rb
|
377
380
|
- spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
|
378
381
|
- spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
|
379
382
|
- spec/services/forest_liana/permissions_checker_live_queries_spec.rb
|
@@ -478,7 +481,7 @@ homepage: https://github.com/ForestAdmin/forest-rails
|
|
478
481
|
licenses:
|
479
482
|
- GPL-3.0
|
480
483
|
metadata: {}
|
481
|
-
post_install_message:
|
484
|
+
post_install_message:
|
482
485
|
rdoc_options: []
|
483
486
|
require_paths:
|
484
487
|
- lib
|
@@ -494,7 +497,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
494
497
|
version: '0'
|
495
498
|
requirements: []
|
496
499
|
rubygems_version: 3.1.2
|
497
|
-
signing_key:
|
500
|
+
signing_key:
|
498
501
|
specification_version: 4
|
499
502
|
summary: Official Rails Liana for Forest
|
500
503
|
test_files:
|
@@ -604,6 +607,7 @@ test_files:
|
|
604
607
|
- spec/services/forest_liana/permissions_formatter_spec.rb
|
605
608
|
- spec/services/forest_liana/permissions_checker_live_queries_spec.rb
|
606
609
|
- spec/services/forest_liana/apimap_sorter_spec.rb
|
610
|
+
- spec/services/forest_liana/line_stat_getter_spec.rb
|
607
611
|
- spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
|
608
612
|
- spec/requests/actions_controller_spec.rb
|
609
613
|
- spec/requests/stats_spec.rb
|
@@ -620,6 +624,7 @@ test_files:
|
|
620
624
|
- spec/dummy/app/helpers/application_helper.rb
|
621
625
|
- spec/dummy/app/views/layouts/application.html.erb
|
622
626
|
- spec/dummy/app/models/user.rb
|
627
|
+
- spec/dummy/app/models/owner.rb
|
623
628
|
- spec/dummy/app/models/island.rb
|
624
629
|
- spec/dummy/app/models/location.rb
|
625
630
|
- spec/dummy/app/models/tree.rb
|
@@ -627,6 +632,7 @@ test_files:
|
|
627
632
|
- spec/dummy/app/config/routes.rb
|
628
633
|
- spec/dummy/app/controllers/application_controller.rb
|
629
634
|
- spec/dummy/db/schema.rb
|
635
|
+
- spec/dummy/db/migrate/20210511141752_create_owners.rb
|
630
636
|
- spec/dummy/db/migrate/20190226174951_create_tree.rb
|
631
637
|
- spec/dummy/db/migrate/20210326140855_create_locations.rb
|
632
638
|
- spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
|