forest_liana 7.6.3 → 7.6.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: b2c5dee061bff5a6292ee2524d8ec3df10fdd6698960285532cb847c9407412d
4
- data.tar.gz: 224fc3ad7164a489f3480fe06b153b31a20614a1f4aaf1fc2e66461fa8993218
3
+ metadata.gz: 1f706a8e009cd73a7493662f62db58e8fa05daccd6c51b3303919354573bbdb6
4
+ data.tar.gz: 28c20ebe192a3e9aa366026c1e2f65401cc5627806c6e1348ca6a29297b3889b
5
5
  SHA512:
6
- metadata.gz: b0b21988df4803f55f3ef8a72980af8d52d512faddd0189458bc3ab5639e7608fd240da95d0f0a075458a7d855f8b5ff9f81a2b694ef9adf2e29a1c33c373c48
7
- data.tar.gz: 557a854cee3d809681be1ee96f420266278c3ea2d665f4d4653b574b71ec8a8fa03acf5c6ee4d2c48b031485079d5c3bf0ac39510c31fde228a3d7b18e77dc7f
6
+ metadata.gz: b7119a64a459718a8f65b7c5a85cefcd6e427360ce14a8f5bd0749ef5eb88b30441ea82c1f409e706a60919fc7615f2f2b7b7d21d41e10490d8f9f3f2010205f
7
+ data.tar.gz: e85658a00033eccc188f75e59cb15a4b299044e4f7e012f92b07dad854a40b3811b524a3ba7bfedd74f2d00193d01d53424c5da09468947f5c998fd24595380b
@@ -29,5 +29,27 @@ module ForestLiana
29
29
  def compute_includes
30
30
  @includes = ForestLiana::QueryHelper.get_one_association_names_symbol(@resource)
31
31
  end
32
+
33
+ def optimize_record_loading(resource, records)
34
+ instance_dependent_associations = instance_dependent_associations(resource)
35
+ eager_loads = @includes - instance_dependent_associations
36
+
37
+ result = records.eager_load(eager_loads)
38
+
39
+ # Rails 7 can mix `eager_load` and `preload` in the same scope
40
+ # Rails 6 cannot mix `eager_load` and `preload` in the same scope
41
+ # Rails 6 and 7 cannot mix `eager_load` and `includes` in the same scope
42
+ if Rails::VERSION::MAJOR >= 7
43
+ result = result.preload(instance_dependent_associations)
44
+ end
45
+
46
+ result
47
+ end
48
+
49
+ def instance_dependent_associations(resource)
50
+ @includes.select do |association_name|
51
+ resource.reflect_on_association(association_name)&.scope&.arity&.positive?
52
+ end
53
+ end
32
54
  end
33
55
  end
@@ -64,12 +64,8 @@ module ForestLiana
64
64
  end
65
65
 
66
66
  def prepare_query
67
- @records = @search_query_builder.perform(
68
- get_resource()
69
- .find(@params[:id])
70
- .send(@params[:association_name])
71
- .eager_load(@includes)
72
- )
67
+ association = get_resource().find(@params[:id]).send(@params[:association_name])
68
+ @records = optimize_record_loading(association, @search_query_builder.perform(association))
73
69
  end
74
70
 
75
71
  def offset
@@ -5,7 +5,7 @@ module ForestLiana
5
5
  def perform
6
6
  if @params[:group_by_field]
7
7
  timezone_offset = @params[:timezone].to_i
8
- resource = get_resource().eager_load(@includes)
8
+ resource = optimize_record_loading(@resource, get_resource)
9
9
 
10
10
  filters = ForestLiana::ScopeManager.append_scope_for_user(@params[:filters], @user, @resource.name)
11
11
 
@@ -12,7 +12,7 @@ module ForestLiana
12
12
  end
13
13
 
14
14
  def perform
15
- records = get_resource().eager_load(@includes)
15
+ records = optimize_record_loading(@resource, get_resource())
16
16
  scoped_records = ForestLiana::ScopeManager.apply_scopes_on_records(records, @user, @collection_name, @params[:timezone])
17
17
  @record = scoped_records.find(@params[:id])
18
18
  end
@@ -66,13 +66,13 @@ module ForestLiana
66
66
  end
67
67
 
68
68
  def perform
69
- @records = @records.eager_load(@includes)
69
+ @records = optimize_record_loading(@resource, @records)
70
70
  end
71
71
 
72
72
  def count
73
- # NOTICE: For performance reasons, do not eager load the data if there is no search or
73
+ # NOTICE: For performance reasons, do not optimize loading the data if there is no search or
74
74
  # filters on associations.
75
- @records_count = @count_needs_includes ? @records.eager_load(@includes).count : @records.count
75
+ @records_count = @count_needs_includes ? optimize_record_loading(@resource, @records).count : @records.count
76
76
  end
77
77
 
78
78
  def query_for_batch
@@ -4,7 +4,7 @@ module ForestLiana
4
4
 
5
5
  def perform
6
6
  return if @params[:aggregate].blank?
7
- resource = get_resource().eager_load(@includes)
7
+ resource = optimize_record_loading(@resource, get_resource)
8
8
 
9
9
  filters = ForestLiana::ScopeManager.append_scope_for_user(@params[:filters], @user, @resource.name)
10
10
 
@@ -1,3 +1,3 @@
1
1
  module ForestLiana
2
- VERSION = "7.6.3"
2
+ VERSION = "7.6.4"
3
3
  end
@@ -3,4 +3,5 @@ class Island < ActiveRecord::Base
3
3
 
4
4
  has_many :trees
5
5
  has_one :location
6
+ has_one :eponymous_tree, ->(record) { where(name: record.name) }, class_name: 'Tree'
6
7
  end
@@ -2,4 +2,9 @@ class Tree < ActiveRecord::Base
2
2
  belongs_to :owner, class_name: 'User', inverse_of: :trees_owned
3
3
  belongs_to :cutter, class_name: 'User', inverse_of: :trees_cut
4
4
  belongs_to :island
5
+ belongs_to :eponymous_island,
6
+ ->(record) { where(name: record.name) },
7
+ class_name: 'Island',
8
+ inverse_of: :eponymous_tree,
9
+ optional: true
5
10
  end
@@ -14,29 +14,35 @@ module ForestLiana
14
14
  end
15
15
  end
16
16
 
17
- context 'on a model having 3 belongsTo associations' do
17
+ context 'on a model having some belongsTo associations' do
18
+ let(:expected_association_attributes) do
19
+ [
20
+ { name: :owner, klass: User },
21
+ { name: :cutter, klass: User },
22
+ { name: :island, klass: Island },
23
+ { name: :eponymous_island, klass: Island },
24
+ ]
25
+ end
26
+
18
27
  it 'should return the one-one associations' do
19
28
  associations = QueryHelper.get_one_associations(Tree)
20
- expect(associations.length).to eq(3)
21
- expect(associations.first.name).to eq(:owner)
22
- expect(associations.first.klass).to eq(User)
23
- expect(associations.second.name).to eq(:cutter)
24
- expect(associations.second.klass).to eq(User)
25
- expect(associations.third.name).to eq(:island)
26
- expect(associations.third.klass).to eq(Island)
29
+ expect(associations.length).to eq(expected_association_attributes.length)
30
+ associations.zip(expected_association_attributes).each do |association, expected_attributes|
31
+ expect(association).to have_attributes(expected_attributes)
32
+ end
27
33
  end
28
34
  end
29
35
  end
30
36
 
31
37
  describe 'get_one_association_names_symbol' do
32
38
  it 'should return the one-one associations names as symbols' do
33
- expect(QueryHelper.get_one_association_names_symbol(Tree)).to eq([:owner, :cutter, :island])
39
+ expect(QueryHelper.get_one_association_names_symbol(Tree)).to eq([:owner, :cutter, :island, :eponymous_island])
34
40
  end
35
41
  end
36
42
 
37
43
  describe 'get_one_association_names_string' do
38
44
  it 'should return the one-one associations names as strings' do
39
- expect(QueryHelper.get_one_association_names_string(Tree)).to eq(['owner', 'cutter', 'island'])
45
+ expect(QueryHelper.get_one_association_names_string(Tree)).to eq(['owner', 'cutter', 'island', 'eponymous_island'])
40
46
  end
41
47
  end
42
48
 
@@ -64,8 +70,9 @@ module ForestLiana
64
70
  end
65
71
 
66
72
  it 'should return relationships on models having a custom table name' do
67
- expect(tables_associated_to_relations_name['isle'].length).to eq(1)
73
+ expect(tables_associated_to_relations_name['isle'].length).to eq(2)
68
74
  expect(tables_associated_to_relations_name['isle'].first).to eq(:island)
75
+ expect(tables_associated_to_relations_name['isle'].second).to eq(:eponymous_island)
69
76
  end
70
77
  end
71
78
  end
@@ -155,6 +155,21 @@ module ForestLiana
155
155
  end
156
156
  end
157
157
 
158
+ describe 'when getting instance dependent associations' do
159
+ let(:resource) { Island }
160
+ let(:fields) { { 'Island' => 'id,eponymous_tree', 'eponymous_tree' => 'id,name'} }
161
+
162
+ it 'should get only the expected records' do
163
+ getter.perform
164
+ records = getter.records
165
+ count = getter.count
166
+
167
+ expect(records.count).to eq Island.count
168
+ expect(count).to eq Island.count
169
+ expect(records.map(&:name)).to match_array(Island.pluck(:name))
170
+ end
171
+ end
172
+
158
173
  describe 'when filtering on an ambiguous field' do
159
174
  let(:resource) { Tree }
160
175
  let(:pageSize) { 5 }
@@ -8,7 +8,7 @@ module ForestLiana
8
8
  end
9
9
 
10
10
  expect(collection.fields.map { |field| field[:field] }).to eq(
11
- ["created_at", "id", "location", "name", "trees", "updated_at"]
11
+ ["created_at", "eponymous_tree", "id", "location", "name", "trees", "updated_at"]
12
12
  )
13
13
  end
14
14
  end
@@ -20,7 +20,7 @@ module ForestLiana
20
20
  end
21
21
 
22
22
  expect(collection.fields.map { |field| field[:field].to_s}).to eq(
23
- ["age", "created_at", "cutter", "id", "island", "name", "owner", "updated_at"]
23
+ ["age", "created_at", "cutter", "eponymous_island", "id", "island", "name", "owner", "updated_at"]
24
24
  )
25
25
  end
26
26
  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: 7.6.3
4
+ version: 7.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sandro Munda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-19 00:00:00.000000000 Z
11
+ date: 2022-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -515,176 +515,176 @@ signing_key:
515
515
  specification_version: 4
516
516
  summary: Official Rails Liana for Forest
517
517
  test_files:
518
- - test/dummy/db/migrate/20150608132159_create_boolean_field.rb
519
- - test/dummy/db/migrate/20160627172951_create_tree.rb
520
- - test/dummy/db/migrate/20170614141921_create_serialize_field.rb
521
- - test/dummy/db/migrate/20160628173505_add_timestamps.rb
522
- - test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
523
- - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
524
- - test/dummy/db/migrate/20150608133044_create_has_one_field.rb
525
- - test/dummy/db/migrate/20150608131610_create_float_field.rb
526
- - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
527
- - test/dummy/db/migrate/20150608131430_create_integer_field.rb
528
- - test/dummy/db/migrate/20150608150016_create_has_many_field.rb
529
- - test/dummy/db/migrate/20150608132621_create_string_field.rb
530
- - test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
531
- - test/dummy/db/migrate/20160627172810_create_owner.rb
532
- - test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
533
- - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
534
- - test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
535
- - test/dummy/db/migrate/20150608130516_create_date_field.rb
536
- - test/dummy/db/migrate/20181111162121_create_references_table.rb
537
- - test/dummy/db/schema.rb
538
- - test/dummy/public/422.html
539
- - test/dummy/public/500.html
540
- - test/dummy/public/404.html
541
- - test/dummy/public/favicon.ico
542
- - test/dummy/app/controllers/application_controller.rb
518
+ - test/test_helper.rb
519
+ - test/forest_liana_test.rb
520
+ - test/routing/route_test.rb
521
+ - test/services/forest_liana/schema_adapter_test.rb
522
+ - test/services/forest_liana/operator_date_interval_parser_test.rb
543
523
  - test/dummy/app/helpers/application_helper.rb
544
- - test/dummy/app/views/layouts/application.html.erb
545
- - test/dummy/app/models/has_many_class_name_field.rb
546
- - test/dummy/app/models/tree.rb
547
- - test/dummy/app/models/boolean_field.rb
524
+ - test/dummy/app/models/serialize_field.rb
548
525
  - test/dummy/app/models/float_field.rb
549
- - test/dummy/app/models/has_one_field.rb
526
+ - test/dummy/app/models/belongs_to_field.rb
527
+ - test/dummy/app/models/has_many_class_name_field.rb
528
+ - test/dummy/app/models/reference.rb
529
+ - test/dummy/app/models/has_many_field.rb
550
530
  - test/dummy/app/models/has_many_through_field.rb
531
+ - test/dummy/app/models/integer_field.rb
532
+ - test/dummy/app/models/string_field.rb
551
533
  - test/dummy/app/models/owner.rb
552
- - test/dummy/app/models/date_field.rb
553
- - test/dummy/app/models/has_and_belongs_to_many_field.rb
554
- - test/dummy/app/models/has_many_field.rb
555
- - test/dummy/app/models/belongs_to_class_name_field.rb
556
534
  - test/dummy/app/models/decimal_field.rb
557
- - test/dummy/app/models/string_field.rb
558
- - test/dummy/app/models/belongs_to_field.rb
535
+ - test/dummy/app/models/has_and_belongs_to_many_field.rb
559
536
  - test/dummy/app/models/polymorphic_field.rb
560
- - test/dummy/app/models/integer_field.rb
561
- - test/dummy/app/models/reference.rb
562
- - test/dummy/app/models/serialize_field.rb
563
- - test/dummy/app/assets/stylesheets/application.css
537
+ - test/dummy/app/models/tree.rb
538
+ - test/dummy/app/models/belongs_to_class_name_field.rb
539
+ - test/dummy/app/models/has_one_field.rb
540
+ - test/dummy/app/models/date_field.rb
541
+ - test/dummy/app/models/boolean_field.rb
542
+ - test/dummy/app/views/layouts/application.html.erb
543
+ - test/dummy/app/controllers/application_controller.rb
564
544
  - test/dummy/app/assets/config/manifest.js
565
545
  - test/dummy/app/assets/javascripts/application.js
546
+ - test/dummy/app/assets/stylesheets/application.css
547
+ - test/dummy/public/422.html
548
+ - test/dummy/public/favicon.ico
549
+ - test/dummy/public/404.html
550
+ - test/dummy/public/500.html
566
551
  - test/dummy/config.ru
552
+ - test/dummy/config/routes.rb
553
+ - test/dummy/config/secrets.yml
554
+ - test/dummy/config/application.rb
555
+ - test/dummy/config/boot.rb
556
+ - test/dummy/config/environments/development.rb
567
557
  - test/dummy/config/environments/production.rb
568
558
  - test/dummy/config/environments/test.rb
569
- - test/dummy/config/environments/development.rb
570
559
  - test/dummy/config/environment.rb
571
- - test/dummy/config/secrets.yml
572
- - test/dummy/config/routes.rb
573
- - test/dummy/config/application.rb
560
+ - test/dummy/config/database.yml
561
+ - test/dummy/config/initializers/assets.rb
574
562
  - test/dummy/config/initializers/backtrace_silencers.rb
575
- - test/dummy/config/initializers/mime_types.rb
576
- - test/dummy/config/initializers/inflections.rb
577
- - test/dummy/config/initializers/wrap_parameters.rb
563
+ - test/dummy/config/initializers/filter_parameter_logging.rb
578
564
  - test/dummy/config/initializers/cookies_serializer.rb
565
+ - test/dummy/config/initializers/wrap_parameters.rb
566
+ - test/dummy/config/initializers/inflections.rb
567
+ - test/dummy/config/initializers/mime_types.rb
579
568
  - test/dummy/config/initializers/session_store.rb
580
- - test/dummy/config/initializers/filter_parameter_logging.rb
581
- - test/dummy/config/initializers/assets.rb
582
569
  - test/dummy/config/locales/en.yml
583
- - test/dummy/config/database.yml
584
- - test/dummy/config/boot.rb
585
- - test/dummy/Rakefile
586
- - test/dummy/bin/bundle
570
+ - test/dummy/bin/setup
587
571
  - test/dummy/bin/rake
588
572
  - test/dummy/bin/rails
589
- - test/dummy/bin/setup
573
+ - test/dummy/bin/bundle
574
+ - test/dummy/Rakefile
575
+ - test/dummy/db/schema.rb
576
+ - test/dummy/db/migrate/20150608131610_create_float_field.rb
577
+ - test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
578
+ - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
579
+ - test/dummy/db/migrate/20181111162121_create_references_table.rb
580
+ - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
581
+ - test/dummy/db/migrate/20170614141921_create_serialize_field.rb
582
+ - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
583
+ - test/dummy/db/migrate/20150608132621_create_string_field.rb
584
+ - test/dummy/db/migrate/20150608130516_create_date_field.rb
585
+ - test/dummy/db/migrate/20160628173505_add_timestamps.rb
586
+ - test/dummy/db/migrate/20160627172810_create_owner.rb
587
+ - test/dummy/db/migrate/20150608133044_create_has_one_field.rb
588
+ - test/dummy/db/migrate/20160627172951_create_tree.rb
589
+ - test/dummy/db/migrate/20150608150016_create_has_many_field.rb
590
+ - test/dummy/db/migrate/20150608131430_create_integer_field.rb
591
+ - test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
592
+ - test/dummy/db/migrate/20150608132159_create_boolean_field.rb
593
+ - test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
594
+ - test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
590
595
  - test/dummy/README.rdoc
591
- - test/test_helper.rb
592
- - test/forest_liana_test.rb
593
- - test/fixtures/has_many_through_field.yml
594
- - test/fixtures/has_one_field.yml
595
- - test/fixtures/has_many_field.yml
596
- - test/fixtures/reference.yml
596
+ - test/fixtures/serialize_field.yml
597
597
  - test/fixtures/belongs_to_field.yml
598
+ - test/fixtures/has_one_field.yml
598
599
  - test/fixtures/string_field.yml
600
+ - test/fixtures/reference.yml
599
601
  - test/fixtures/owner.yml
600
- - test/fixtures/serialize_field.yml
601
602
  - test/fixtures/tree.yml
602
- - test/routing/route_test.rb
603
- - test/services/forest_liana/schema_adapter_test.rb
604
- - test/services/forest_liana/operator_date_interval_parser_test.rb
605
- - spec/dummy/lib/forest_liana/collections/user.rb
606
- - spec/dummy/lib/forest_liana/collections/location.rb
607
- - spec/dummy/lib/forest_liana/collections/island.rb
608
- - spec/dummy/lib/forest_liana/controllers/owners_controller.rb
609
- - spec/dummy/lib/forest_liana/controllers/owner_trees_controller.rb
610
- - spec/dummy/db/migrate/20210526084712_create_products.rb
611
- - spec/dummy/db/migrate/20190226173051_create_isle.rb
612
- - spec/dummy/db/migrate/20210326140855_create_locations.rb
613
- - spec/dummy/db/migrate/20210326110524_create_references.rb
614
- - spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
615
- - spec/dummy/db/migrate/20190226174951_create_tree.rb
616
- - spec/dummy/db/migrate/20190226172951_create_user.rb
617
- - spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
618
- - spec/dummy/db/migrate/20210511141752_create_owners.rb
619
- - spec/dummy/db/schema.rb
620
- - spec/dummy/app/controllers/forest/islands_controller.rb
621
- - spec/dummy/app/controllers/application_controller.rb
603
+ - test/fixtures/has_many_through_field.yml
604
+ - test/fixtures/has_many_field.yml
605
+ - spec/helpers/forest_liana/query_helper_spec.rb
606
+ - spec/helpers/forest_liana/schema_helper_spec.rb
607
+ - spec/lib/forest_liana/schema_file_updater_spec.rb
608
+ - spec/lib/forest_liana/bootstrapper_spec.rb
609
+ - spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
610
+ - spec/services/forest_liana/scope_manager_spec.rb
611
+ - spec/services/forest_liana/has_many_getter_spec.rb
612
+ - spec/services/forest_liana/smart_action_field_validator_spec.rb
613
+ - spec/services/forest_liana/permissions_getter_spec.rb
614
+ - spec/services/forest_liana/apimap_sorter_spec.rb
615
+ - spec/services/forest_liana/resources_getter_spec.rb
616
+ - spec/services/forest_liana/ip_whitelist_checker_spec.rb
617
+ - spec/services/forest_liana/value_stat_getter_spec.rb
618
+ - spec/services/forest_liana/schema_adapter_spec.rb
619
+ - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
620
+ - spec/services/forest_liana/filters_parser_spec.rb
621
+ - spec/services/forest_liana/pie_stat_getter_spec.rb
622
+ - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
623
+ - spec/services/forest_liana/resource_updater_spec.rb
624
+ - spec/services/forest_liana/line_stat_getter_spec.rb
625
+ - spec/services/forest_liana/permissions_formatter_spec.rb
626
+ - spec/config/initializers/logger_spec.rb
622
627
  - spec/dummy/app/helpers/application_helper.rb
623
- - spec/dummy/app/views/layouts/application.html.erb
624
- - spec/dummy/app/models/tree.rb
628
+ - spec/dummy/app/models/reference.rb
625
629
  - spec/dummy/app/models/owner.rb
630
+ - spec/dummy/app/models/location.rb
631
+ - spec/dummy/app/models/tree.rb
626
632
  - spec/dummy/app/models/product.rb
627
633
  - spec/dummy/app/models/user.rb
628
- - spec/dummy/app/models/location.rb
629
634
  - spec/dummy/app/models/island.rb
630
- - spec/dummy/app/models/reference.rb
631
- - spec/dummy/app/assets/stylesheets/application.css
635
+ - spec/dummy/app/views/layouts/application.html.erb
636
+ - spec/dummy/app/controllers/forest/islands_controller.rb
637
+ - spec/dummy/app/controllers/application_controller.rb
638
+ - spec/dummy/app/config/routes.rb
632
639
  - spec/dummy/app/assets/config/manifest.js
633
640
  - spec/dummy/app/assets/javascripts/application.js
634
- - spec/dummy/app/config/routes.rb
641
+ - spec/dummy/app/assets/stylesheets/application.css
635
642
  - spec/dummy/config.ru
643
+ - spec/dummy/lib/forest_liana/controllers/owner_trees_controller.rb
644
+ - spec/dummy/lib/forest_liana/controllers/owners_controller.rb
645
+ - spec/dummy/lib/forest_liana/collections/location.rb
646
+ - spec/dummy/lib/forest_liana/collections/user.rb
647
+ - spec/dummy/lib/forest_liana/collections/island.rb
648
+ - spec/dummy/config/routes.rb
649
+ - spec/dummy/config/secrets.yml
650
+ - spec/dummy/config/application.rb
651
+ - spec/dummy/config/boot.rb
652
+ - spec/dummy/config/environments/development.rb
636
653
  - spec/dummy/config/environments/production.rb
637
654
  - spec/dummy/config/environments/test.rb
638
- - spec/dummy/config/environments/development.rb
639
655
  - spec/dummy/config/environment.rb
640
- - spec/dummy/config/secrets.yml
641
- - spec/dummy/config/routes.rb
642
- - spec/dummy/config/application.rb
656
+ - spec/dummy/config/database.yml
657
+ - spec/dummy/config/initializers/assets.rb
643
658
  - spec/dummy/config/initializers/backtrace_silencers.rb
644
- - spec/dummy/config/initializers/mime_types.rb
645
- - spec/dummy/config/initializers/inflections.rb
646
- - spec/dummy/config/initializers/wrap_parameters.rb
647
- - spec/dummy/config/initializers/cookies_serializer.rb
648
- - spec/dummy/config/initializers/session_store.rb
649
659
  - spec/dummy/config/initializers/filter_parameter_logging.rb
650
- - spec/dummy/config/initializers/assets.rb
660
+ - spec/dummy/config/initializers/cookies_serializer.rb
651
661
  - spec/dummy/config/initializers/forest_liana.rb
652
- - spec/dummy/config/database.yml
653
- - spec/dummy/config/boot.rb
654
- - spec/dummy/Rakefile
655
- - spec/dummy/bin/bundle
662
+ - spec/dummy/config/initializers/wrap_parameters.rb
663
+ - spec/dummy/config/initializers/inflections.rb
664
+ - spec/dummy/config/initializers/mime_types.rb
665
+ - spec/dummy/config/initializers/session_store.rb
666
+ - spec/dummy/bin/setup
656
667
  - spec/dummy/bin/rake
657
668
  - spec/dummy/bin/rails
658
- - spec/dummy/bin/setup
669
+ - spec/dummy/bin/bundle
670
+ - spec/dummy/Rakefile
671
+ - spec/dummy/db/schema.rb
672
+ - spec/dummy/db/migrate/20190226173051_create_isle.rb
673
+ - spec/dummy/db/migrate/20210326140855_create_locations.rb
674
+ - spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
675
+ - spec/dummy/db/migrate/20210326110524_create_references.rb
676
+ - spec/dummy/db/migrate/20210526084712_create_products.rb
677
+ - spec/dummy/db/migrate/20210511141752_create_owners.rb
678
+ - spec/dummy/db/migrate/20190226172951_create_user.rb
679
+ - spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
680
+ - spec/dummy/db/migrate/20190226174951_create_tree.rb
659
681
  - spec/dummy/README.rdoc
660
- - spec/lib/forest_liana/bootstrapper_spec.rb
661
- - spec/lib/forest_liana/schema_file_updater_spec.rb
662
682
  - spec/rails_helper.rb
663
- - spec/helpers/forest_liana/query_helper_spec.rb
664
- - spec/helpers/forest_liana/schema_helper_spec.rb
665
683
  - spec/requests/test.ru
666
- - spec/requests/stats_spec.rb
667
- - spec/requests/cors_spec.rb
668
684
  - spec/requests/count_spec.rb
669
- - spec/requests/actions_controller_spec.rb
685
+ - spec/requests/cors_spec.rb
686
+ - spec/requests/stats_spec.rb
670
687
  - spec/requests/resources_spec.rb
671
688
  - spec/requests/authentications_spec.rb
672
- - spec/config/initializers/logger_spec.rb
673
- - spec/services/forest_liana/resources_getter_spec.rb
674
- - spec/services/forest_liana/schema_adapter_spec.rb
675
- - spec/services/forest_liana/has_many_getter_spec.rb
676
- - spec/services/forest_liana/resource_updater_spec.rb
677
- - spec/services/forest_liana/line_stat_getter_spec.rb
678
- - spec/services/forest_liana/permissions_getter_spec.rb
679
- - spec/services/forest_liana/smart_action_field_validator_spec.rb
680
- - spec/services/forest_liana/apimap_sorter_spec.rb
681
- - spec/services/forest_liana/scope_manager_spec.rb
682
- - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
683
- - spec/services/forest_liana/filters_parser_spec.rb
684
- - spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
685
- - spec/services/forest_liana/permissions_formatter_spec.rb
686
- - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
687
- - spec/services/forest_liana/ip_whitelist_checker_spec.rb
688
- - spec/services/forest_liana/pie_stat_getter_spec.rb
689
- - spec/services/forest_liana/value_stat_getter_spec.rb
689
+ - spec/requests/actions_controller_spec.rb
690
690
  - spec/spec_helper.rb