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