forest_liana 6.3.3 → 6.3.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
  SHA256:
3
- metadata.gz: 84424699c2834facc9807360cdefbc7de4bf5e473d5d8976fc257c70a5878695
4
- data.tar.gz: f96a6c6e6ba27fcd42a67ffacd1ddde1133b9980eec177c969494484d2708072
3
+ metadata.gz: 0d8c0675fe5c776a7168baf4e5375ead76bd8319b75c29c620e6888bbd9bfaec
4
+ data.tar.gz: 5d20db5792e2b1a637545cfe4a024df625db72004671fb47fa3eb15c68801736
5
5
  SHA512:
6
- metadata.gz: 8f509cc0cfed575e60c0b68e11cd44a6bb59c86dfd7bd5e40d14f87f9e2400b4ed7fccafc107e2eea1dbe474f564f9a48d76d84331ca5c9727adae7439176dda
7
- data.tar.gz: ffdba30b4b5252116c020b42fde6d439baf910d5bcd572c73d5e6bd6c48a6fd39c9803df2300ad0617e61beb4e33bd0edd5c8286eae0a51e348226d187e04be5
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])
@@ -1,3 +1,3 @@
1
1
  module ForestLiana
2
- VERSION = "6.3.3"
2
+ VERSION = "6.3.4"
3
3
  end
@@ -0,0 +1,2 @@
1
+ class Owner < ActiveRecord::Base
2
+ end
@@ -0,0 +1,8 @@
1
+ class CreateOwners < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :owners do |t|
4
+ t.string :name
5
+ t.datetime :hired_at
6
+ end
7
+ end
8
+ end
@@ -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: 2021_03_26_140855) do
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.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-07 00:00:00.000000000 Z
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: 2.5.2
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: 2.5.2
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