forest_liana 6.3.2 → 6.3.7

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: 9ef103500f1ffd2d8ccf3778c90d54ffcf83348448a0693e5508f73c851ac3d5
4
- data.tar.gz: 825e75b4a37c788382e67eb4a9cc3b487ce18420cb652ba836b5ce6c7430769d
3
+ metadata.gz: a93e818cc7b5a0808dd33a6395f607dc5c3e659f69b407268f65ecc614017832
4
+ data.tar.gz: 41f0bb47b931b7042b20f8afeab44f2aa1ee9846a957de30c048e0fe575a6a9b
5
5
  SHA512:
6
- metadata.gz: 75b6c515ab034857ef5ab4eb683013466946528fb31df7cb9ad73bdbbdda18df6fdab44ee4cb6ef86e42356600b0988747c816e781cca19082184848b0329731
7
- data.tar.gz: 6790e0e3bbdb01ad881a5914d9e0151e7202b66747a60bfc30cbcebe1e4c39236e4b5423608f78278468b208d8af970214c310b1e90b4109f5e4a49202317c4b
6
+ metadata.gz: cc768ed1cbeef27e823ebd72c6899a2474a972e3fbe6b66a71097b6abd6488259cef0d9e3798f016ff5f7f59f506c35d52f4cd04f3744cfce346c3aa4af5715f
7
+ data.tar.gz: b3aef0960689302ee58eb8041ee1d76609728294c6d68281aaa4d55e9e55cbf129b791f4df3195609b8c2f9b55da1b253f25742fc18cc1c0d70577b34ac75419
@@ -5,7 +5,7 @@ module ForestLiana
5
5
  class AuthenticationController < ForestLiana::BaseController
6
6
  START_AUTHENTICATION_ROUTE = 'authentication'
7
7
  CALLBACK_AUTHENTICATION_ROUTE = 'authentication/callback'
8
- LOGOUT_ROUTE = 'authentication/logout';
8
+ LOGOUT_ROUTE = 'authentication/logout'
9
9
  PUBLIC_ROUTES = [
10
10
  "/#{START_AUTHENTICATION_ROUTE}",
11
11
  "/#{CALLBACK_AUTHENTICATION_ROUTE}",
@@ -89,6 +89,11 @@ module ForestLiana
89
89
  parameters.delete('controller');
90
90
  parameters.delete('action');
91
91
 
92
+ # NOTICE: Remove the field information from group_by_field => collection:id
93
+ if parameters['group_by_field']
94
+ parameters['group_by_field'] = parameters['group_by_field'].split(':').first
95
+ end
96
+
92
97
  return parameters;
93
98
  end
94
99
 
@@ -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 false if 'SQLite' == ActiveRecord::Base.connection.adapter_name
6
9
  @params[:timezone]
7
10
  end
8
11
 
@@ -26,10 +29,9 @@ module ForestLiana
26
29
  value = FiltersParser.new(@params[:filters], value, @params[:timezone]).apply_filters
27
30
  end
28
31
 
29
- value = value.send(time_range, group_by_date_field, {
30
- time_zone: client_timezone,
31
- week_start: :mon
32
- })
32
+ Groupdate.week_start = :monday
33
+
34
+ value = value.send(time_range, group_by_date_field, time_zone: client_timezone)
33
35
 
34
36
  value = value.send(@params[:aggregate].downcase, @params[:aggregate_field])
35
37
  .map do |k, v|
@@ -177,13 +177,12 @@ module ForestLiana
177
177
  return false unless pool_permissions
178
178
 
179
179
  # NOTICE: equivalent to Object.values in js & removes nil values
180
- array_query_request_info = @query_request_info.values.filter_map{ |x| x unless x.nil? }
180
+ array_permission_infos = @query_request_info.values.filter_map{ |x| x unless x.nil? }
181
181
 
182
- # NOTICE: pool_permissions contains the @query_request_info
183
- # we use the intersection between statPermission and @query_request_info
182
+ # NOTICE: Is there any pool_permissions containing the array_permission_infos
184
183
  return pool_permissions.any? {
185
184
  |statPermission|
186
- (array_query_request_info & statPermission.values) == array_query_request_info;
185
+ (array_permission_infos.all? { |info| statPermission.values.include?(info) });
187
186
  }
188
187
  end
189
188
 
@@ -53,6 +53,18 @@ module ForestLiana
53
53
  collection.actions.find {|action| action.name == action_name}
54
54
  end
55
55
 
56
+ def generate_action_hooks()
57
+ @collections_sent.each do |collection|
58
+ collection['actions'].each do |action|
59
+ c = get_collection(collection['name'])
60
+ a = get_action(c, action['name'])
61
+ load = !a.hooks.nil? && a.hooks.key?(:load) && a.hooks[:load].is_a?(Proc)
62
+ change = !a.hooks.nil? && a.hooks.key?(:change) && a.hooks[:change].is_a?(Hash) ? a.hooks[:change].keys : []
63
+ action['hooks'] = {:load => load, :change => change}
64
+ end
65
+ end
66
+ end
67
+
56
68
  def generate_apimap
57
69
  create_apimap
58
70
  require_lib_forest_liana
@@ -60,18 +72,8 @@ module ForestLiana
60
72
 
61
73
  if Rails.env.development?
62
74
  @collections_sent = ForestLiana.apimap.as_json
63
-
64
- @collections_sent.each do |collection|
65
- collection['actions'].each do |action|
66
- c = get_collection(collection['name'])
67
- a = get_action(c, action['name'])
68
- load = !a.hooks.nil? && a.hooks.key?(:load) && a.hooks[:load].is_a?(Proc)
69
- change = !a.hooks.nil? && a.hooks.key?(:change) && a.hooks[:change].is_a?(Hash) ? a.hooks[:change].keys : []
70
- action['hooks'] = {:load => load, :change => change}
71
- end
72
- end
73
-
74
75
  @meta_sent = ForestLiana.meta
76
+ generate_action_hooks
75
77
  SchemaFileUpdater.new(SCHEMA_FILENAME, @collections_sent, @meta_sent).perform()
76
78
  else
77
79
  if File.exists?(SCHEMA_FILENAME)
@@ -79,6 +81,7 @@ module ForestLiana
79
81
  content = JSON.parse(File.read(SCHEMA_FILENAME))
80
82
  @collections_sent = content['collections']
81
83
  @meta_sent = content['meta']
84
+ generate_action_hooks
82
85
  rescue JSON::JSONError
83
86
  FOREST_LOGGER.error "The content of .forestadmin-schema.json file is not a correct JSON."
84
87
  FOREST_LOGGER.error "The schema cannot be synchronized with Forest Admin servers."
@@ -66,7 +66,7 @@ module ForestLiana
66
66
  ActiveStorage::Attachment
67
67
  end
68
68
 
69
- if Rails::VERSION::MAJOR > 5 && defined?(Zeitwerk::Loader)
69
+ if Rails::VERSION::MAJOR > 5 && Rails.autoloaders.zeitwerk_enabled?
70
70
  Zeitwerk::Loader.eager_load_all
71
71
  else
72
72
  app.eager_load!
@@ -1,3 +1,3 @@
1
1
  module ForestLiana
2
- VERSION = "6.3.2"
2
+ VERSION = "6.3.7"
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
@@ -72,12 +72,14 @@ describe "Stats", type: :request do
72
72
  expect(response.status).to eq(404)
73
73
  end
74
74
 
75
- # it 'should respond 403 Forbidden' do
76
- # allow_any_instance_of(ForestLiana::PermissionsChecker).to receive(:is_authorized?) { false }
75
+ it 'should respond 403 Forbidden' do
76
+ allow_any_instance_of(ForestLiana::PermissionsChecker).to receive(:is_authorized?) { false }
77
+ # NOTICE: bypass : find_resource error
78
+ allow_any_instance_of(ForestLiana::StatsController).to receive(:find_resource) { true }
77
79
 
78
- # post '/forest/stats/Products', params: JSON.dump(params), headers: headers
79
- # expect(response.status).to eq(403)
80
- # end
80
+ post '/forest/stats/Products', params: JSON.dump(params), headers: headers
81
+ expect(response.status).to eq(403)
82
+ end
81
83
  end
82
84
 
83
85
  describe 'POST /stats' do
@@ -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 false' do
6
+ expect(LineStatGetter.new(Owner, {
7
+ timezone: "Europe/Paris",
8
+ aggregate: "Count",
9
+ }).client_timezone).to eq(false)
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.2
4
+ version: 6.3.7
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-04-27 00:00:00.000000000 Z
11
+ date: 2021-05-18 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,165 +497,168 @@ 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:
504
+ - test/routing/route_test.rb
505
+ - test/fixtures/tree.yml
506
+ - test/fixtures/has_many_field.yml
507
+ - test/fixtures/serialize_field.yml
508
+ - test/fixtures/owner.yml
509
+ - test/fixtures/reference.yml
510
+ - test/fixtures/string_field.yml
511
+ - test/fixtures/belongs_to_field.yml
512
+ - test/fixtures/has_many_through_field.yml
513
+ - test/fixtures/has_one_field.yml
514
+ - test/test_helper.rb
515
+ - test/services/forest_liana/scope_validator_test.rb
501
516
  - test/services/forest_liana/operator_date_interval_parser_test.rb
517
+ - test/services/forest_liana/has_many_getter_test.rb
502
518
  - test/services/forest_liana/schema_adapter_test.rb
519
+ - test/services/forest_liana/pie_stat_getter_test.rb
503
520
  - test/services/forest_liana/value_stat_getter_test.rb
504
521
  - test/services/forest_liana/resource_updater_test.rb
505
- - test/services/forest_liana/scope_validator_test.rb
506
- - test/services/forest_liana/pie_stat_getter_test.rb
507
- - test/services/forest_liana/has_many_getter_test.rb
508
- - test/dummy/README.rdoc
509
- - test/dummy/config/environments/production.rb
510
- - test/dummy/config/environments/development.rb
511
- - test/dummy/config/environments/test.rb
512
- - test/dummy/config/application.rb
513
- - test/dummy/config/secrets.yml
514
- - test/dummy/config/initializers/assets.rb
515
- - test/dummy/config/initializers/wrap_parameters.rb
516
- - test/dummy/config/initializers/session_store.rb
517
- - test/dummy/config/initializers/mime_types.rb
518
- - test/dummy/config/initializers/inflections.rb
519
- - test/dummy/config/initializers/backtrace_silencers.rb
520
- - test/dummy/config/initializers/cookies_serializer.rb
521
- - test/dummy/config/initializers/filter_parameter_logging.rb
522
- - test/dummy/config/boot.rb
523
- - test/dummy/config/database.yml
524
- - test/dummy/config/environment.rb
525
- - test/dummy/config/routes.rb
526
- - test/dummy/config/locales/en.yml
527
- - test/dummy/public/favicon.ico
528
- - test/dummy/public/422.html
529
- - test/dummy/public/404.html
530
- - test/dummy/public/500.html
531
- - test/dummy/Rakefile
522
+ - test/forest_liana_test.rb
523
+ - test/dummy/bin/bundle
524
+ - test/dummy/bin/setup
525
+ - test/dummy/bin/rake
526
+ - test/dummy/bin/rails
532
527
  - test/dummy/config.ru
528
+ - test/dummy/public/500.html
529
+ - test/dummy/public/404.html
530
+ - test/dummy/public/422.html
531
+ - test/dummy/public/favicon.ico
532
+ - test/dummy/app/assets/stylesheets/application.css
533
+ - test/dummy/app/assets/config/manifest.js
534
+ - test/dummy/app/assets/javascripts/application.js
533
535
  - test/dummy/app/helpers/application_helper.rb
534
- - test/dummy/app/models/float_field.rb
536
+ - test/dummy/app/views/layouts/application.html.erb
535
537
  - test/dummy/app/models/has_and_belongs_to_many_field.rb
536
- - test/dummy/app/models/has_one_field.rb
537
- - test/dummy/app/models/serialize_field.rb
538
+ - test/dummy/app/models/decimal_field.rb
538
539
  - test/dummy/app/models/owner.rb
539
- - test/dummy/app/models/integer_field.rb
540
- - test/dummy/app/models/reference.rb
541
- - test/dummy/app/models/has_many_through_field.rb
542
540
  - test/dummy/app/models/boolean_field.rb
543
- - test/dummy/app/models/belongs_to_class_name_field.rb
544
- - test/dummy/app/models/decimal_field.rb
545
- - test/dummy/app/models/belongs_to_field.rb
541
+ - test/dummy/app/models/has_one_field.rb
546
542
  - test/dummy/app/models/has_many_class_name_field.rb
547
- - test/dummy/app/models/tree.rb
543
+ - test/dummy/app/models/has_many_through_field.rb
544
+ - test/dummy/app/models/has_many_field.rb
545
+ - test/dummy/app/models/belongs_to_field.rb
546
+ - test/dummy/app/models/integer_field.rb
547
+ - test/dummy/app/models/belongs_to_class_name_field.rb
548
548
  - test/dummy/app/models/polymorphic_field.rb
549
- - test/dummy/app/models/string_field.rb
549
+ - test/dummy/app/models/serialize_field.rb
550
+ - test/dummy/app/models/tree.rb
551
+ - test/dummy/app/models/float_field.rb
552
+ - test/dummy/app/models/reference.rb
550
553
  - test/dummy/app/models/date_field.rb
551
- - test/dummy/app/models/has_many_field.rb
552
- - test/dummy/app/views/layouts/application.html.erb
554
+ - test/dummy/app/models/string_field.rb
553
555
  - test/dummy/app/controllers/application_controller.rb
554
- - test/dummy/app/assets/config/manifest.js
555
- - test/dummy/app/assets/stylesheets/application.css
556
- - test/dummy/app/assets/javascripts/application.js
556
+ - test/dummy/db/schema.rb
557
+ - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
558
+ - test/dummy/db/migrate/20150608130516_create_date_field.rb
559
+ - test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
557
560
  - test/dummy/db/migrate/20150608132621_create_string_field.rb
558
- - test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
559
- - test/dummy/db/migrate/20150608150016_create_has_many_field.rb
560
561
  - test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
561
- - test/dummy/db/migrate/20150608131610_create_float_field.rb
562
- - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
563
- - test/dummy/db/migrate/20181111162121_create_references_table.rb
564
562
  - test/dummy/db/migrate/20150608131430_create_integer_field.rb
565
- - test/dummy/db/migrate/20170614141921_create_serialize_field.rb
566
- - test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
567
- - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
568
- - test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
569
- - test/dummy/db/migrate/20150608133044_create_has_one_field.rb
570
563
  - test/dummy/db/migrate/20160627172951_create_tree.rb
571
- - test/dummy/db/migrate/20150608132159_create_boolean_field.rb
572
- - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
573
564
  - test/dummy/db/migrate/20160628173505_add_timestamps.rb
574
- - test/dummy/db/migrate/20150608130516_create_date_field.rb
565
+ - test/dummy/db/migrate/20150608131610_create_float_field.rb
575
566
  - test/dummy/db/migrate/20160627172810_create_owner.rb
576
- - test/dummy/db/schema.rb
577
- - test/dummy/bin/bundle
578
- - test/dummy/bin/setup
579
- - test/dummy/bin/rails
580
- - test/dummy/bin/rake
581
- - test/forest_liana_test.rb
582
- - test/routing/route_test.rb
583
- - test/fixtures/belongs_to_field.yml
584
- - test/fixtures/has_many_through_field.yml
585
- - test/fixtures/owner.yml
586
- - test/fixtures/string_field.yml
587
- - test/fixtures/has_many_field.yml
588
- - test/fixtures/has_one_field.yml
589
- - test/fixtures/serialize_field.yml
590
- - test/fixtures/tree.yml
591
- - test/fixtures/reference.yml
592
- - test/test_helper.rb
593
- - spec/helpers/forest_liana/schema_helper_spec.rb
567
+ - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
568
+ - test/dummy/db/migrate/20150608132159_create_boolean_field.rb
569
+ - test/dummy/db/migrate/20170614141921_create_serialize_field.rb
570
+ - test/dummy/db/migrate/20150608150016_create_has_many_field.rb
571
+ - test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
572
+ - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
573
+ - test/dummy/db/migrate/20181111162121_create_references_table.rb
574
+ - test/dummy/db/migrate/20150608133044_create_has_one_field.rb
575
+ - test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
576
+ - test/dummy/README.rdoc
577
+ - test/dummy/Rakefile
578
+ - test/dummy/config/initializers/inflections.rb
579
+ - test/dummy/config/initializers/filter_parameter_logging.rb
580
+ - test/dummy/config/initializers/wrap_parameters.rb
581
+ - test/dummy/config/initializers/mime_types.rb
582
+ - test/dummy/config/initializers/assets.rb
583
+ - test/dummy/config/initializers/backtrace_silencers.rb
584
+ - test/dummy/config/initializers/session_store.rb
585
+ - test/dummy/config/initializers/cookies_serializer.rb
586
+ - test/dummy/config/secrets.yml
587
+ - test/dummy/config/database.yml
588
+ - test/dummy/config/boot.rb
589
+ - test/dummy/config/locales/en.yml
590
+ - test/dummy/config/environment.rb
591
+ - test/dummy/config/application.rb
592
+ - test/dummy/config/environments/production.rb
593
+ - test/dummy/config/environments/development.rb
594
+ - test/dummy/config/environments/test.rb
595
+ - test/dummy/config/routes.rb
596
+ - spec/spec_helper.rb
597
+ - spec/rails_helper.rb
594
598
  - spec/helpers/forest_liana/is_same_data_structure_helper_spec.rb
599
+ - spec/helpers/forest_liana/schema_helper_spec.rb
595
600
  - spec/helpers/forest_liana/query_helper_spec.rb
596
- - spec/requests/resources_spec.rb
597
- - spec/requests/authentications_spec.rb
598
- - spec/requests/stats_spec.rb
599
- - spec/requests/actions_controller_spec.rb
600
- - spec/spec_helper.rb
601
- - spec/services/forest_liana/schema_adapter_spec.rb
601
+ - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
602
+ - spec/services/forest_liana/resources_getter_spec.rb
602
603
  - spec/services/forest_liana/filters_parser_spec.rb
603
604
  - spec/services/forest_liana/permissions_getter_spec.rb
604
- - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
605
605
  - spec/services/forest_liana/ip_whitelist_checker_spec.rb
606
- - spec/services/forest_liana/resources_getter_spec.rb
606
+ - spec/services/forest_liana/schema_adapter_spec.rb
607
+ - spec/services/forest_liana/permissions_formatter_spec.rb
608
+ - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
607
609
  - spec/services/forest_liana/apimap_sorter_spec.rb
608
- - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
610
+ - spec/services/forest_liana/line_stat_getter_spec.rb
609
611
  - spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
610
- - spec/services/forest_liana/permissions_formatter_spec.rb
611
- - spec/dummy/README.rdoc
612
- - spec/dummy/config/environments/production.rb
613
- - spec/dummy/config/environments/development.rb
614
- - spec/dummy/config/environments/test.rb
615
- - spec/dummy/config/application.rb
616
- - spec/dummy/config/secrets.yml
617
- - spec/dummy/config/initializers/assets.rb
618
- - spec/dummy/config/initializers/wrap_parameters.rb
619
- - spec/dummy/config/initializers/session_store.rb
620
- - spec/dummy/config/initializers/mime_types.rb
621
- - spec/dummy/config/initializers/inflections.rb
622
- - spec/dummy/config/initializers/backtrace_silencers.rb
623
- - spec/dummy/config/initializers/cookies_serializer.rb
624
- - spec/dummy/config/initializers/forest_liana.rb
625
- - spec/dummy/config/initializers/filter_parameter_logging.rb
626
- - spec/dummy/config/boot.rb
627
- - spec/dummy/config/database.yml
628
- - spec/dummy/config/environment.rb
629
- - spec/dummy/config/routes.rb
630
- - spec/dummy/lib/forest_liana/collections/location.rb
631
- - spec/dummy/lib/forest_liana/collections/user.rb
632
- - spec/dummy/Rakefile
612
+ - spec/requests/actions_controller_spec.rb
613
+ - spec/requests/stats_spec.rb
614
+ - spec/requests/authentications_spec.rb
615
+ - spec/requests/resources_spec.rb
616
+ - spec/dummy/bin/bundle
617
+ - spec/dummy/bin/setup
618
+ - spec/dummy/bin/rake
619
+ - spec/dummy/bin/rails
633
620
  - spec/dummy/config.ru
621
+ - spec/dummy/app/assets/stylesheets/application.css
622
+ - spec/dummy/app/assets/config/manifest.js
623
+ - spec/dummy/app/assets/javascripts/application.js
634
624
  - spec/dummy/app/helpers/application_helper.rb
635
- - spec/dummy/app/models/location.rb
636
- - spec/dummy/app/models/reference.rb
625
+ - spec/dummy/app/views/layouts/application.html.erb
637
626
  - spec/dummy/app/models/user.rb
638
- - spec/dummy/app/models/tree.rb
627
+ - spec/dummy/app/models/owner.rb
639
628
  - spec/dummy/app/models/island.rb
629
+ - spec/dummy/app/models/location.rb
630
+ - spec/dummy/app/models/tree.rb
631
+ - spec/dummy/app/models/reference.rb
640
632
  - spec/dummy/app/config/routes.rb
641
- - spec/dummy/app/views/layouts/application.html.erb
642
633
  - spec/dummy/app/controllers/application_controller.rb
643
- - spec/dummy/app/assets/config/manifest.js
644
- - spec/dummy/app/assets/stylesheets/application.css
645
- - spec/dummy/app/assets/javascripts/application.js
634
+ - spec/dummy/db/schema.rb
635
+ - spec/dummy/db/migrate/20210511141752_create_owners.rb
646
636
  - spec/dummy/db/migrate/20190226174951_create_tree.rb
637
+ - spec/dummy/db/migrate/20210326140855_create_locations.rb
647
638
  - spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
648
- - spec/dummy/db/migrate/20190226173051_create_isle.rb
639
+ - spec/dummy/db/migrate/20210326110524_create_references.rb
649
640
  - spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
641
+ - spec/dummy/db/migrate/20190226173051_create_isle.rb
650
642
  - spec/dummy/db/migrate/20190226172951_create_user.rb
651
- - spec/dummy/db/migrate/20210326140855_create_locations.rb
652
- - spec/dummy/db/migrate/20210326110524_create_references.rb
653
- - spec/dummy/db/schema.rb
654
- - spec/dummy/bin/bundle
655
- - spec/dummy/bin/setup
656
- - spec/dummy/bin/rails
657
- - spec/dummy/bin/rake
658
- - spec/rails_helper.rb
643
+ - spec/dummy/lib/forest_liana/collections/user.rb
644
+ - spec/dummy/lib/forest_liana/collections/location.rb
645
+ - spec/dummy/README.rdoc
646
+ - spec/dummy/Rakefile
647
+ - spec/dummy/config/initializers/inflections.rb
648
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
649
+ - spec/dummy/config/initializers/wrap_parameters.rb
650
+ - spec/dummy/config/initializers/mime_types.rb
651
+ - spec/dummy/config/initializers/forest_liana.rb
652
+ - spec/dummy/config/initializers/assets.rb
653
+ - spec/dummy/config/initializers/backtrace_silencers.rb
654
+ - spec/dummy/config/initializers/session_store.rb
655
+ - spec/dummy/config/initializers/cookies_serializer.rb
656
+ - spec/dummy/config/secrets.yml
657
+ - spec/dummy/config/database.yml
658
+ - spec/dummy/config/boot.rb
659
+ - spec/dummy/config/environment.rb
660
+ - spec/dummy/config/application.rb
661
+ - spec/dummy/config/environments/production.rb
662
+ - spec/dummy/config/environments/development.rb
663
+ - spec/dummy/config/environments/test.rb
664
+ - spec/dummy/config/routes.rb