forest_liana 6.3.5 → 7.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
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