forest_liana 6.3.5 → 7.0.0.beta.1

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.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/forest_liana/application_controller.rb +2 -2
  3. data/app/controllers/forest_liana/associations_controller.rb +1 -1
  4. data/app/controllers/forest_liana/base_controller.rb +1 -1
  5. data/app/controllers/forest_liana/resources_controller.rb +6 -6
  6. data/app/serializers/forest_liana/intercom_attribute_serializer.rb +1 -1
  7. data/app/serializers/forest_liana/intercom_conversation_serializer.rb +1 -1
  8. data/app/serializers/forest_liana/mixpanel_event_serializer.rb +1 -1
  9. data/app/serializers/forest_liana/serializer_factory.rb +1 -1
  10. data/app/serializers/forest_liana/stat_serializer.rb +1 -1
  11. data/app/serializers/forest_liana/stripe_bank_account_serializer.rb +1 -1
  12. data/app/serializers/forest_liana/stripe_card_serializer.rb +1 -1
  13. data/app/serializers/forest_liana/stripe_invoice_serializer.rb +1 -1
  14. data/app/serializers/forest_liana/stripe_payment_serializer.rb +1 -1
  15. data/app/serializers/forest_liana/stripe_subscription_serializer.rb +1 -1
  16. data/app/services/forest_liana/line_stat_getter.rb +2 -4
  17. data/app/services/forest_liana/schema_adapter.rb +1 -1
  18. data/config/initializers/logger.rb +16 -13
  19. data/lib/forest_liana.rb +2 -0
  20. data/lib/forest_liana/bootstrapper.rb +1 -1
  21. data/lib/forest_liana/engine.rb +1 -1
  22. data/lib/forest_liana/version.rb +1 -1
  23. data/spec/config/initializers/logger_spec.rb +30 -0
  24. data/spec/dummy/app/models/product.rb +3 -0
  25. data/spec/dummy/db/migrate/20210526084712_create_products.rb +7 -0
  26. data/spec/dummy/db/schema.rb +5 -1
  27. data/spec/services/forest_liana/line_stat_getter_spec.rb +2 -2
  28. data/spec/services/forest_liana/schema_adapter_spec.rb +13 -0
  29. metadata +131 -125
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 834c9124265c1aee37c5dfcb4bf61bf47f9e874b7491fc746d77f4a8ce2844e2
4
- data.tar.gz: 469622daee20e8211a8808a2a1c6c574f130c9035c6d45cd1b4e6b462696e7f8
3
+ metadata.gz: 69b23785cf391fb245efbf6488e58fb19bbbc010e9dac0a91574412684e89129
4
+ data.tar.gz: 26d9dd7b466009b8a09182dec02778b729e58b83c7b717811c45dca5ce6cc032
5
5
  SHA512:
6
- metadata.gz: 5b1530018ef75a9621156626e13af9b7f0b41b0b555a9dbb6c4e7bafa2cdab1abe6641bc51e45f9c13fc29fe11ba6007f6d2f697f9f9763fe11c5e7120e4db05
7
- data.tar.gz: 3c4e5fcce7f49d40e4e0ca18b385bf152df88675408add741acca22180c773e446730107fc5c1adf09cc70db5da98f978068267fbeddef1ff8b8627c18c36346
6
+ metadata.gz: e216bb8280e6adc87f2ab5f4c0d1a2937306ba1237aedcc9b80375a742227bcdf2187e74b573691324f55d9ef13843b397c25348d442a3e211eda2d8c20cb06c
7
+ data.tar.gz: a3e736ae280744d93d65f9592ff9b9475f1f2b22b24790ee37b202ad361f0f192ff0a2bf87dd2669327492b24d2afee3000130af925d38788879512e086da24e
@@ -34,14 +34,14 @@ module ForestLiana
34
34
 
35
35
  def serialize_model(record, options = {})
36
36
  options[:is_collection] = false
37
- json = JSONAPI::Serializer.serialize(record, options)
37
+ json = ForestAdmin::JSONAPI::Serializer.serialize(record, options)
38
38
 
39
39
  force_utf8_encoding(json)
40
40
  end
41
41
 
42
42
  def serialize_models(records, options = {}, fields_searched = [])
43
43
  options[:is_collection] = true
44
- json = JSONAPI::Serializer.serialize(records, options)
44
+ json = ForestAdmin::JSONAPI::Serializer.serialize(records, options)
45
45
 
46
46
  if options[:params] && options[:params][:search]
47
47
  # NOTICE: Add the Smart Fields with a 'String' type.
@@ -41,7 +41,7 @@ module ForestLiana
41
41
  updater.perform
42
42
 
43
43
  if updater.errors
44
- render serializer: nil, json: JSONAPI::Serializer.serialize_errors(
44
+ render serializer: nil, json: ForestAdmin::JSONAPI::Serializer.serialize_errors(
45
45
  updater.errors), status: 422
46
46
  else
47
47
  head :no_content
@@ -24,7 +24,7 @@ module ForestLiana
24
24
  end
25
25
  end
26
26
  rescue ForestLiana::Errors::ExpectedError => exception
27
- error_data = JSONAPI::Serializer.serialize_errors([{
27
+ error_data = ForestAdmin::JSONAPI::Serializer.serialize_errors([{
28
28
  status: exception.error_code,
29
29
  detail: exception.message
30
30
  }])
@@ -41,7 +41,7 @@ module ForestLiana
41
41
  status: :unprocessable_entity, serializer: nil
42
42
  rescue ForestLiana::Errors::ExpectedError => error
43
43
  error.display_error
44
- error_data = JSONAPI::Serializer.serialize_errors([{
44
+ error_data = ForestAdmin::JSONAPI::Serializer.serialize_errors([{
45
45
  status: error.error_code,
46
46
  detail: error.message
47
47
  }])
@@ -73,7 +73,7 @@ module ForestLiana
73
73
  status: :unprocessable_entity, serializer: nil
74
74
  rescue ForestLiana::Errors::ExpectedError => error
75
75
  error.display_error
76
- error_data = JSONAPI::Serializer.serialize_errors([{
76
+ error_data = ForestAdmin::JSONAPI::Serializer.serialize_errors([{
77
77
  status: error.error_code,
78
78
  detail: error.message
79
79
  }])
@@ -108,12 +108,12 @@ module ForestLiana
108
108
  creator.perform
109
109
 
110
110
  if creator.errors
111
- render serializer: nil, json: JSONAPI::Serializer.serialize_errors(
111
+ render serializer: nil, json: ForestAdmin::JSONAPI::Serializer.serialize_errors(
112
112
  creator.errors), status: 400
113
113
  elsif creator.record.valid?
114
114
  render serializer: nil, json: render_record_jsonapi(creator.record)
115
115
  else
116
- render serializer: nil, json: JSONAPI::Serializer.serialize_errors(
116
+ render serializer: nil, json: ForestAdmin::JSONAPI::Serializer.serialize_errors(
117
117
  creator.record.errors), status: 400
118
118
  end
119
119
  rescue => error
@@ -131,12 +131,12 @@ module ForestLiana
131
131
  updater.perform
132
132
 
133
133
  if updater.errors
134
- render serializer: nil, json: JSONAPI::Serializer.serialize_errors(
134
+ render serializer: nil, json: ForestAdmin::JSONAPI::Serializer.serialize_errors(
135
135
  updater.errors), status: 400
136
136
  elsif updater.record.valid?
137
137
  render serializer: nil, json: render_record_jsonapi(updater.record)
138
138
  else
139
- render serializer: nil, json: JSONAPI::Serializer.serialize_errors(
139
+ render serializer: nil, json: ForestAdmin::JSONAPI::Serializer.serialize_errors(
140
140
  updater.record.errors), status: 400
141
141
  end
142
142
  rescue => error
@@ -1,6 +1,6 @@
1
1
  module ForestLiana
2
2
  class IntercomAttributeSerializer
3
- include JSONAPI::Serializer
3
+ include ForestAdmin::JSONAPI::Serializer
4
4
 
5
5
  attribute :session_count
6
6
  attribute :last_seen_ip
@@ -1,6 +1,6 @@
1
1
  module ForestLiana
2
2
  class IntercomConversationSerializer
3
- include JSONAPI::Serializer
3
+ include ForestAdmin::JSONAPI::Serializer
4
4
 
5
5
  attribute :created_at
6
6
  attribute :updated_at
@@ -1,6 +1,6 @@
1
1
  module ForestLiana
2
2
  class MixpanelEventSerializer
3
- include JSONAPI::Serializer
3
+ include ForestAdmin::JSONAPI::Serializer
4
4
 
5
5
  attribute :id
6
6
  attribute :event
@@ -53,7 +53,7 @@ module ForestLiana
53
53
 
54
54
  def serializer_for(active_record_class)
55
55
  serializer = Class.new {
56
- include JSONAPI::Serializer
56
+ include ForestAdmin::JSONAPI::Serializer
57
57
 
58
58
  def self_link
59
59
  "/forest#{super.underscore}"
@@ -1,6 +1,6 @@
1
1
  module ForestLiana
2
2
  class StatSerializer
3
- include JSONAPI::Serializer
3
+ include ForestAdmin::JSONAPI::Serializer
4
4
 
5
5
  attribute :value
6
6
 
@@ -1,6 +1,6 @@
1
1
  module ForestLiana
2
2
  class StripeBankAccountSerializer
3
- include JSONAPI::Serializer
3
+ include ForestAdmin::JSONAPI::Serializer
4
4
 
5
5
  attribute :account_holder_name
6
6
  attribute :account_holder_type
@@ -1,6 +1,6 @@
1
1
  module ForestLiana
2
2
  class StripeCardSerializer
3
- include JSONAPI::Serializer
3
+ include ForestAdmin::JSONAPI::Serializer
4
4
 
5
5
  attribute :last4
6
6
  attribute :brand
@@ -1,6 +1,6 @@
1
1
  module ForestLiana
2
2
  class StripeInvoiceSerializer
3
- include JSONAPI::Serializer
3
+ include ForestAdmin::JSONAPI::Serializer
4
4
 
5
5
  attribute :amount_due
6
6
  attribute :amount_paid
@@ -1,6 +1,6 @@
1
1
  module ForestLiana
2
2
  class StripePaymentSerializer
3
- include JSONAPI::Serializer
3
+ include ForestAdmin::JSONAPI::Serializer
4
4
 
5
5
  attribute :description
6
6
  attribute :refunded
@@ -1,6 +1,6 @@
1
1
  module ForestLiana
2
2
  class StripeSubscriptionSerializer
3
- include JSONAPI::Serializer
3
+ include ForestAdmin::JSONAPI::Serializer
4
4
 
5
5
  attribute :cancel_at_period_end
6
6
  attribute :canceled_at
@@ -5,7 +5,7 @@ module ForestLiana
5
5
  def client_timezone
6
6
  # As stated here https://github.com/ankane/groupdate#for-sqlite
7
7
  # groupdate does not handle timezone for SQLite
8
- return nil if 'SQLite' == ActiveRecord::Base.connection.adapter_name
8
+ return false if 'SQLite' == ActiveRecord::Base.connection.adapter_name
9
9
  @params[:timezone]
10
10
  end
11
11
 
@@ -31,9 +31,7 @@ module ForestLiana
31
31
 
32
32
  Groupdate.week_start = :monday
33
33
 
34
- value = value.send(time_range, group_by_date_field, {
35
- time_zone: client_timezone
36
- })
34
+ value = value.send(time_range, group_by_date_field, time_zone: client_timezone)
37
35
 
38
36
  value = value.send(@params[:aggregate].downcase, @params[:aggregate_field])
39
37
  .map do |k, v|
@@ -479,7 +479,7 @@ module ForestLiana
479
479
  regex = value.source
480
480
 
481
481
  # NOTICE: Transform a Ruby regex into a JS one
482
- regex = regex.sub('\\A' , '^').sub('\\Z' , '$').sub('\\z' , '$')
482
+ regex = regex.sub('\\A' , '^').sub('\\Z' , '$').sub('\\z' , '$').gsub(/\n+|\s+/, '')
483
483
 
484
484
  column_schema[:validations] << {
485
485
  type: 'is like',
@@ -3,21 +3,24 @@ module ForestLiana
3
3
  class Logger
4
4
  class << self
5
5
  def log
6
- logger = ::Logger.new(STDOUT)
7
- logger_colors = {
8
- DEBUG: 34,
9
- WARN: 33,
10
- ERROR: 31,
11
- INFO: 37
12
- }
6
+ if ForestLiana.logger != nil
7
+ logger = ForestLiana.logger
8
+ else
9
+ logger = ::Logger.new(STDOUT)
10
+ logger_colors = {
11
+ DEBUG: 34,
12
+ WARN: 33,
13
+ ERROR: 31,
14
+ INFO: 37
15
+ }
13
16
 
14
- logger.formatter = proc do |severity, datetime, progname, message|
15
- displayed_message = "[#{datetime.to_s(:db)}] Forest 🌳🌳🌳 " \
16
- "#{message}\n"
17
- "\e[#{logger_colors[severity.to_sym]}m#{displayed_message}\033[0m"
17
+ logger.formatter = proc do |severity, datetime, progname, message|
18
+ displayed_message = "[#{datetime.to_s(:db)}] Forest 🌳🌳🌳 " \
19
+ "#{message}\n"
20
+ "\e[#{logger_colors[severity.to_sym]}m#{displayed_message}\033[0m"
21
+ end
22
+ logger
18
23
  end
19
-
20
- logger
21
24
  end
22
25
  end
23
26
  end
data/lib/forest_liana.rb CHANGED
@@ -27,6 +27,7 @@ module ForestLiana
27
27
  mattr_accessor :user_class_name
28
28
  mattr_accessor :names_overriden
29
29
  mattr_accessor :meta
30
+ mattr_accessor :logger
30
31
  # TODO: Remove once lianas prior to 2.0.0 are not supported anymore.
31
32
  mattr_accessor :names_old_overriden
32
33
 
@@ -38,6 +39,7 @@ module ForestLiana
38
39
  self.user_class_name = nil
39
40
  self.names_overriden = {}
40
41
  self.meta = {}
42
+ self.logger = nil
41
43
 
42
44
  @config_dir = 'lib/forest_liana/**/*.rb'
43
45
 
@@ -139,7 +139,7 @@ module ForestLiana
139
139
 
140
140
  # Monkey patch the find_serializer_class_name method to specify the
141
141
  # good serializer to use.
142
- ::JSONAPI::Serializer.class_eval do
142
+ ::ForestAdmin::JSONAPI::Serializer.class_eval do
143
143
  def self.find_serializer_class_name(record, options)
144
144
  if record.respond_to?(:jsonapi_serializer_class_name)
145
145
  record.jsonapi_serializer_class_name.to_s
@@ -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.5"
2
+ VERSION = "7.0.0.beta.1"
3
3
  end
@@ -0,0 +1,30 @@
1
+ module ForestLiana
2
+ describe Logger do
3
+ describe 'self.log' do
4
+ describe 'with a logger overload' do
5
+ it 'should return the given logger' do
6
+ logger = ActiveSupport::Logger.new($stdout)
7
+ logger.formatter = proc do |severity, datetime, progname, msg|
8
+ {:message => msg}.to_json
9
+ end
10
+ ForestLiana.logger = logger
11
+
12
+ expect(Logger.log.is_a?(ActiveSupport::Logger)).to be_truthy
13
+ expect { Logger.log.error "[error] override logger" }.to output({:message => "[error] override logger"}.to_json).to_stdout_from_any_process
14
+ expect { Logger.log.info "[info] override logger" }.to output({:message => "[info] override logger"}.to_json).to_stdout_from_any_process
15
+ end
16
+ end
17
+
18
+ describe 'with no logger overload' do
19
+ it 'should return an instance of ::Logger' do
20
+ ForestLiana.logger = nil
21
+
22
+ expect(Logger.log.is_a?(::Logger)).to be_truthy
23
+ # RegExp is used to check for the forestadmin logger format
24
+ expect { Logger.log.error "[error] default logger" }.to output(/\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Forest .* \[error\]/).to_stdout_from_any_process
25
+ expect { Logger.log.info "[info] default logger" }.to output(/\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Forest .* \[info\]/).to_stdout_from_any_process
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ class Product < ActiveRecord::Base
2
+ validates :uri, presence: true, format: { with: URI::DEFAULT_PARSER.make_regexp }
3
+ end
@@ -0,0 +1,7 @@
1
+ class CreateProducts < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :products do |t|
4
+ t.string :uri
5
+ end
6
+ end
7
+ 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_05_11_141752) do
13
+ ActiveRecord::Schema.define(version: 2021_05_26_084712) do
14
14
 
15
15
  create_table "isle", force: :cascade do |t|
16
16
  t.string "name"
@@ -32,6 +32,10 @@ ActiveRecord::Schema.define(version: 2021_05_11_141752) do
32
32
  t.datetime "hired_at"
33
33
  end
34
34
 
35
+ create_table "products", force: :cascade do |t|
36
+ t.string "uri"
37
+ end
38
+
35
39
  create_table "references", force: :cascade do |t|
36
40
  t.datetime "created_at", precision: 6, null: false
37
41
  t.datetime "updated_at", precision: 6, null: false
@@ -2,11 +2,11 @@ module ForestLiana
2
2
  describe LineStatGetter do
3
3
  describe 'Check client_timezone function' do
4
4
  describe 'with a SQLite database' do
5
- it 'should return nil' do
5
+ it 'should return false' do
6
6
  expect(LineStatGetter.new(Owner, {
7
7
  timezone: "Europe/Paris",
8
8
  aggregate: "Count",
9
- }).client_timezone).to eq(nil)
9
+ }).client_timezone).to eq(false)
10
10
  end
11
11
  end
12
12
 
@@ -12,6 +12,19 @@ module ForestLiana
12
12
  )
13
13
  end
14
14
  end
15
+
16
+ context 'with a multiline regex validation' do
17
+ it 'should remove new lines in validation' do
18
+
19
+ collection = ForestLiana.apimap.find do |object|
20
+ object.name.to_s == ForestLiana.name_for(Product)
21
+ end
22
+
23
+ uri_field = collection.fields.find { |field| field[:field] == 'uri' }
24
+ uri_regex_validation = uri_field[:validations].find { |validation| validation[:type] == "is like"}
25
+ expect(uri_regex_validation[:value].match('\n')).to eq(nil)
26
+ end
27
+ end
15
28
  end
16
29
  end
17
30
  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.5
4
+ version: 7.0.0.beta.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sandro Munda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-12 00:00:00.000000000 Z
11
+ date: 2021-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: jsonapi-serializers
28
+ name: forestadmin-jsonapi-serializers
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -316,6 +316,7 @@ files:
316
316
  - lib/generators/forest_liana/install_generator.rb
317
317
  - lib/tasks/display_apimap.rake
318
318
  - lib/tasks/send_apimap.rake
319
+ - spec/config/initializers/logger_spec.rb
319
320
  - spec/dummy/README.rdoc
320
321
  - spec/dummy/Rakefile
321
322
  - spec/dummy/app/assets/config/manifest.js
@@ -327,6 +328,7 @@ files:
327
328
  - spec/dummy/app/models/island.rb
328
329
  - spec/dummy/app/models/location.rb
329
330
  - spec/dummy/app/models/owner.rb
331
+ - spec/dummy/app/models/product.rb
330
332
  - spec/dummy/app/models/reference.rb
331
333
  - spec/dummy/app/models/tree.rb
332
334
  - spec/dummy/app/models/user.rb
@@ -362,6 +364,7 @@ files:
362
364
  - spec/dummy/db/migrate/20210326110524_create_references.rb
363
365
  - spec/dummy/db/migrate/20210326140855_create_locations.rb
364
366
  - spec/dummy/db/migrate/20210511141752_create_owners.rb
367
+ - spec/dummy/db/migrate/20210526084712_create_products.rb
365
368
  - spec/dummy/db/schema.rb
366
369
  - spec/dummy/lib/forest_liana/collections/location.rb
367
370
  - spec/dummy/lib/forest_liana/collections/user.rb
@@ -492,173 +495,176 @@ required_ruby_version: !ruby/object:Gem::Requirement
492
495
  version: '0'
493
496
  required_rubygems_version: !ruby/object:Gem::Requirement
494
497
  requirements:
495
- - - ">="
498
+ - - ">"
496
499
  - !ruby/object:Gem::Version
497
- version: '0'
500
+ version: 1.3.1
498
501
  requirements: []
499
502
  rubygems_version: 3.1.2
500
503
  signing_key:
501
504
  specification_version: 4
502
505
  summary: Official Rails Liana for Forest
503
506
  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
507
+ - test/forest_liana_test.rb
514
508
  - test/test_helper.rb
515
- - test/services/forest_liana/scope_validator_test.rb
516
- - test/services/forest_liana/operator_date_interval_parser_test.rb
517
509
  - test/services/forest_liana/has_many_getter_test.rb
518
- - test/services/forest_liana/schema_adapter_test.rb
519
510
  - test/services/forest_liana/pie_stat_getter_test.rb
520
- - test/services/forest_liana/value_stat_getter_test.rb
521
511
  - test/services/forest_liana/resource_updater_test.rb
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
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
535
- - test/dummy/app/helpers/application_helper.rb
536
- - test/dummy/app/views/layouts/application.html.erb
537
- - test/dummy/app/models/has_and_belongs_to_many_field.rb
538
- - test/dummy/app/models/decimal_field.rb
539
- - test/dummy/app/models/owner.rb
540
- - test/dummy/app/models/boolean_field.rb
541
- - test/dummy/app/models/has_one_field.rb
542
- - test/dummy/app/models/has_many_class_name_field.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
- - test/dummy/app/models/polymorphic_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
553
- - test/dummy/app/models/date_field.rb
554
- - test/dummy/app/models/string_field.rb
555
- - test/dummy/app/controllers/application_controller.rb
512
+ - test/services/forest_liana/value_stat_getter_test.rb
513
+ - test/services/forest_liana/scope_validator_test.rb
514
+ - test/services/forest_liana/schema_adapter_test.rb
515
+ - test/services/forest_liana/operator_date_interval_parser_test.rb
516
+ - test/routing/route_test.rb
517
+ - test/fixtures/string_field.yml
518
+ - test/fixtures/serialize_field.yml
519
+ - test/fixtures/has_one_field.yml
520
+ - test/fixtures/has_many_through_field.yml
521
+ - test/fixtures/has_many_field.yml
522
+ - test/fixtures/reference.yml
523
+ - test/fixtures/owner.yml
524
+ - test/fixtures/belongs_to_field.yml
525
+ - test/fixtures/tree.yml
556
526
  - test/dummy/db/schema.rb
557
- - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
527
+ - test/dummy/db/migrate/20150608131610_create_float_field.rb
528
+ - test/dummy/db/migrate/20150608131430_create_integer_field.rb
529
+ - test/dummy/db/migrate/20170614141921_create_serialize_field.rb
530
+ - test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
558
531
  - test/dummy/db/migrate/20150608130516_create_date_field.rb
559
532
  - test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
560
533
  - test/dummy/db/migrate/20150608132621_create_string_field.rb
561
- - test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
562
- - test/dummy/db/migrate/20150608131430_create_integer_field.rb
563
- - test/dummy/db/migrate/20160627172951_create_tree.rb
564
- - test/dummy/db/migrate/20160628173505_add_timestamps.rb
565
- - test/dummy/db/migrate/20150608131610_create_float_field.rb
566
- - test/dummy/db/migrate/20160627172810_create_owner.rb
567
- - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
568
534
  - 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
535
  - test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
572
- - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
536
+ - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
573
537
  - test/dummy/db/migrate/20181111162121_create_references_table.rb
538
+ - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
539
+ - test/dummy/db/migrate/20160627172810_create_owner.rb
540
+ - test/dummy/db/migrate/20160627172951_create_tree.rb
541
+ - test/dummy/db/migrate/20150608150016_create_has_many_field.rb
542
+ - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
574
543
  - 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
544
+ - test/dummy/db/migrate/20160628173505_add_timestamps.rb
545
+ - test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
546
+ - test/dummy/config.ru
547
+ - test/dummy/bin/rake
548
+ - test/dummy/bin/setup
549
+ - test/dummy/bin/bundle
550
+ - test/dummy/bin/rails
551
+ - test/dummy/config/routes.rb
552
+ - test/dummy/config/boot.rb
581
553
  - test/dummy/config/initializers/mime_types.rb
582
554
  - test/dummy/config/initializers/assets.rb
583
- - test/dummy/config/initializers/backtrace_silencers.rb
584
555
  - test/dummy/config/initializers/session_store.rb
556
+ - test/dummy/config/initializers/wrap_parameters.rb
557
+ - test/dummy/config/initializers/filter_parameter_logging.rb
585
558
  - 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
559
+ - test/dummy/config/initializers/backtrace_silencers.rb
560
+ - test/dummy/config/initializers/inflections.rb
589
561
  - test/dummy/config/locales/en.yml
562
+ - test/dummy/config/secrets.yml
590
563
  - test/dummy/config/environment.rb
591
- - test/dummy/config/application.rb
592
564
  - test/dummy/config/environments/production.rb
593
565
  - test/dummy/config/environments/development.rb
594
566
  - test/dummy/config/environments/test.rb
595
- - test/dummy/config/routes.rb
567
+ - test/dummy/config/database.yml
568
+ - test/dummy/config/application.rb
569
+ - test/dummy/README.rdoc
570
+ - test/dummy/Rakefile
571
+ - test/dummy/public/favicon.ico
572
+ - test/dummy/public/404.html
573
+ - test/dummy/public/422.html
574
+ - test/dummy/public/500.html
575
+ - test/dummy/app/controllers/application_controller.rb
576
+ - test/dummy/app/views/layouts/application.html.erb
577
+ - test/dummy/app/helpers/application_helper.rb
578
+ - test/dummy/app/assets/stylesheets/application.css
579
+ - test/dummy/app/assets/config/manifest.js
580
+ - test/dummy/app/assets/javascripts/application.js
581
+ - test/dummy/app/models/boolean_field.rb
582
+ - test/dummy/app/models/decimal_field.rb
583
+ - test/dummy/app/models/date_field.rb
584
+ - test/dummy/app/models/tree.rb
585
+ - test/dummy/app/models/has_and_belongs_to_many_field.rb
586
+ - test/dummy/app/models/owner.rb
587
+ - test/dummy/app/models/belongs_to_class_name_field.rb
588
+ - test/dummy/app/models/has_many_through_field.rb
589
+ - test/dummy/app/models/float_field.rb
590
+ - test/dummy/app/models/polymorphic_field.rb
591
+ - test/dummy/app/models/has_one_field.rb
592
+ - test/dummy/app/models/has_many_class_name_field.rb
593
+ - test/dummy/app/models/belongs_to_field.rb
594
+ - test/dummy/app/models/integer_field.rb
595
+ - test/dummy/app/models/serialize_field.rb
596
+ - test/dummy/app/models/string_field.rb
597
+ - test/dummy/app/models/has_many_field.rb
598
+ - test/dummy/app/models/reference.rb
596
599
  - spec/spec_helper.rb
597
- - spec/rails_helper.rb
598
- - spec/helpers/forest_liana/is_same_data_structure_helper_spec.rb
599
- - spec/helpers/forest_liana/schema_helper_spec.rb
600
- - spec/helpers/forest_liana/query_helper_spec.rb
601
- - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
602
- - spec/services/forest_liana/resources_getter_spec.rb
603
- - spec/services/forest_liana/filters_parser_spec.rb
604
600
  - spec/services/forest_liana/permissions_getter_spec.rb
601
+ - spec/services/forest_liana/resources_getter_spec.rb
605
602
  - spec/services/forest_liana/ip_whitelist_checker_spec.rb
603
+ - spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
604
+ - spec/services/forest_liana/filters_parser_spec.rb
606
605
  - spec/services/forest_liana/schema_adapter_spec.rb
606
+ - spec/services/forest_liana/line_stat_getter_spec.rb
607
607
  - spec/services/forest_liana/permissions_formatter_spec.rb
608
608
  - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
609
609
  - spec/services/forest_liana/apimap_sorter_spec.rb
610
- - spec/services/forest_liana/line_stat_getter_spec.rb
611
- - spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
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
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
624
- - spec/dummy/app/helpers/application_helper.rb
625
- - spec/dummy/app/views/layouts/application.html.erb
626
- - spec/dummy/app/models/user.rb
627
- - spec/dummy/app/models/owner.rb
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
632
- - spec/dummy/app/config/routes.rb
633
- - spec/dummy/app/controllers/application_controller.rb
610
+ - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
611
+ - spec/config/initializers/logger_spec.rb
612
+ - spec/helpers/forest_liana/is_same_data_structure_helper_spec.rb
613
+ - spec/helpers/forest_liana/schema_helper_spec.rb
614
+ - spec/helpers/forest_liana/query_helper_spec.rb
634
615
  - spec/dummy/db/schema.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/20190226173051_create_isle.rb
635
619
  - spec/dummy/db/migrate/20210511141752_create_owners.rb
636
- - spec/dummy/db/migrate/20190226174951_create_tree.rb
637
- - spec/dummy/db/migrate/20210326140855_create_locations.rb
638
620
  - spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
621
+ - spec/dummy/db/migrate/20210326140855_create_locations.rb
622
+ - spec/dummy/db/migrate/20190226174951_create_tree.rb
623
+ - spec/dummy/db/migrate/20210526084712_create_products.rb
639
624
  - spec/dummy/db/migrate/20210326110524_create_references.rb
640
- - spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
641
- - spec/dummy/db/migrate/20190226173051_create_isle.rb
642
- - spec/dummy/db/migrate/20190226172951_create_user.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
625
+ - spec/dummy/config.ru
626
+ - spec/dummy/bin/rake
627
+ - spec/dummy/bin/setup
628
+ - spec/dummy/bin/bundle
629
+ - spec/dummy/bin/rails
630
+ - spec/dummy/config/routes.rb
631
+ - spec/dummy/config/boot.rb
651
632
  - spec/dummy/config/initializers/forest_liana.rb
633
+ - spec/dummy/config/initializers/mime_types.rb
652
634
  - spec/dummy/config/initializers/assets.rb
653
- - spec/dummy/config/initializers/backtrace_silencers.rb
654
635
  - spec/dummy/config/initializers/session_store.rb
636
+ - spec/dummy/config/initializers/wrap_parameters.rb
637
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
655
638
  - spec/dummy/config/initializers/cookies_serializer.rb
639
+ - spec/dummy/config/initializers/backtrace_silencers.rb
640
+ - spec/dummy/config/initializers/inflections.rb
656
641
  - spec/dummy/config/secrets.yml
657
- - spec/dummy/config/database.yml
658
- - spec/dummy/config/boot.rb
659
642
  - spec/dummy/config/environment.rb
660
- - spec/dummy/config/application.rb
661
643
  - spec/dummy/config/environments/production.rb
662
644
  - spec/dummy/config/environments/development.rb
663
645
  - spec/dummy/config/environments/test.rb
664
- - spec/dummy/config/routes.rb
646
+ - spec/dummy/config/database.yml
647
+ - spec/dummy/config/application.rb
648
+ - spec/dummy/lib/forest_liana/collections/user.rb
649
+ - spec/dummy/lib/forest_liana/collections/location.rb
650
+ - spec/dummy/README.rdoc
651
+ - spec/dummy/Rakefile
652
+ - spec/dummy/app/controllers/application_controller.rb
653
+ - spec/dummy/app/views/layouts/application.html.erb
654
+ - spec/dummy/app/config/routes.rb
655
+ - spec/dummy/app/helpers/application_helper.rb
656
+ - spec/dummy/app/assets/stylesheets/application.css
657
+ - spec/dummy/app/assets/config/manifest.js
658
+ - spec/dummy/app/assets/javascripts/application.js
659
+ - spec/dummy/app/models/tree.rb
660
+ - spec/dummy/app/models/owner.rb
661
+ - spec/dummy/app/models/user.rb
662
+ - spec/dummy/app/models/product.rb
663
+ - spec/dummy/app/models/location.rb
664
+ - spec/dummy/app/models/island.rb
665
+ - spec/dummy/app/models/reference.rb
666
+ - spec/rails_helper.rb
667
+ - spec/requests/stats_spec.rb
668
+ - spec/requests/resources_spec.rb
669
+ - spec/requests/actions_controller_spec.rb
670
+ - spec/requests/authentications_spec.rb