forest_liana 2.8.6 → 2.9.0

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
  SHA1:
3
- metadata.gz: 06ee98bd084d430f0186929f3110bdbd8ba312c3
4
- data.tar.gz: 620f173b19e149c111f4668ce188963204e9bf75
3
+ metadata.gz: d6ca5367c20024181a9f7fa697a8a8a611808d23
4
+ data.tar.gz: e93a008c261472651aa1684b0394d94bc2e1a774
5
5
  SHA512:
6
- metadata.gz: 4f098615bf8c7d28d7e1bec2cb9d3f550db354a78ea6cc7eb09ad7c4d690da03b2cd56fa09d2810fc7b3e7e3d75c4d7d21618fc559a7f15eb69eeecb72cfd354
7
- data.tar.gz: 1b07fc7dc2af35de9edf6dd06a1b1b82fbdfaec539a58808dfd5475f4a69e4315b0d26e837ca766e4a4b290b31d6beacb79ddadc9b847005c2698959bbc64f0c
6
+ metadata.gz: 39d2528f84175b7ef1a2d61b8c75a0bb98e2c82ac62063d7303fe00ebdb3cbd8e5b326de5afe5fc4131c193cc2fd18d4c1111f0e5d2977e1e8206f1aeb42926a
7
+ data.tar.gz: b41cdd0f644a11c89b8a56e203fb61d12f19b1adc12554ba1e169b18fa8101158f5ea0956d509dd748ae0675bad6454a3620e869d6f4c14dcd2ce963976dedea
@@ -40,18 +40,19 @@ module ForestLiana
40
40
  force_utf8_encoding(json)
41
41
  end
42
42
 
43
- def serialize_models(records, options = {})
43
+ def serialize_models(records, options = {}, fields_searched = [])
44
44
  options[:is_collection] = true
45
45
  json = JSONAPI::Serializer.serialize(records, options)
46
46
 
47
- if options[:count]
48
- json[:meta] = {} unless json[:meta]
49
- json[:meta][:count] = options[:count]
47
+ if options[:params][:search]
48
+ # NOTICE: Add the Smart Fields with a 'String' type.
49
+ fields_searched.concat(get_collection.string_smart_fields_names).uniq!
50
+ json['meta'][:decorators] = ForestLiana::DecorationHelper
51
+ .decorate_for_search(json, fields_searched, options[:params][:search])
50
52
  end
51
53
 
52
54
  if !options[:has_more].nil?
53
- json[:meta] = {} unless json[:meta]
54
- json[:meta][:has_more] = options[:has_more]
55
+ json['meta'][:has_more] = options[:has_more]
55
56
  end
56
57
 
57
58
  force_utf8_encoding(json)
@@ -112,13 +112,22 @@ module ForestLiana
112
112
 
113
113
  json = serialize_models(
114
114
  records,
115
- include: includes,
116
- fields: fields_to_serialize,
117
- count: getter.count,
118
- params: params
115
+ {
116
+ include: includes,
117
+ fields: fields_to_serialize,
118
+ meta: { count: getter.count },
119
+ params: params
120
+ },
121
+ getter.search_query_builder.fields_searched
119
122
  )
120
123
 
121
124
  render serializer: nil, json: json
122
125
  end
126
+
127
+ def get_collection
128
+ model_association = @resource.reflect_on_association(params[:association_name].to_sym).klass
129
+ collection_name = ForestLiana.name_for(model_association)
130
+ @collection ||= ForestLiana.apimap.find { |collection| collection.name.to_s == collection_name }
131
+ end
123
132
  end
124
133
  end
@@ -6,7 +6,7 @@ module ForestLiana
6
6
 
7
7
  render serializer: nil, json: serialize_models(getter.records, {
8
8
  context: { type: get_serializer_type('intercom_conversations') },
9
- count: getter.count
9
+ meta: { count: getter.count }
10
10
  })
11
11
  end
12
12
 
@@ -159,13 +159,21 @@ module ForestLiana
159
159
 
160
160
  json = serialize_models(
161
161
  records,
162
- include: includes(getter),
163
- fields: fields_to_serialize,
164
- count: getter.count,
165
- params: params
162
+ {
163
+ include: includes(getter),
164
+ fields: fields_to_serialize,
165
+ meta: { count: getter.count },
166
+ params: params
167
+ },
168
+ getter.search_query_builder.fields_searched
166
169
  )
167
170
 
168
171
  render serializer: nil, json: json
169
172
  end
173
+
174
+ def get_collection
175
+ collection_name = ForestLiana.name_for(@resource)
176
+ @collection ||= ForestLiana.apimap.find { |collection| collection.name.to_s == collection_name }
177
+ end
170
178
  end
171
179
  end
@@ -8,7 +8,7 @@ module ForestLiana
8
8
 
9
9
  render serializer: nil, json: serialize_models(getter.records, {
10
10
  context: { type: get_serializer_type('stripe_payments') },
11
- count: getter.count,
11
+ meta: { count: getter.count },
12
12
  include: ['customer']
13
13
  })
14
14
  end
@@ -44,7 +44,7 @@ module ForestLiana
44
44
 
45
45
  render serializer: nil, json: serialize_models(getter.records, {
46
46
  context: { type: get_serializer_type('stripe_cards') },
47
- count: getter.count,
47
+ meta: { count: getter.count },
48
48
  include: ['customer']
49
49
  })
50
50
  end
@@ -68,7 +68,7 @@ module ForestLiana
68
68
 
69
69
  render serializer: nil, json: serialize_models(getter.records, {
70
70
  context: { type: get_serializer_type('stripe_invoices') },
71
- count: getter.count,
71
+ meta: { count: getter.count },
72
72
  include: ['customer']
73
73
  })
74
74
  end
@@ -92,7 +92,7 @@ module ForestLiana
92
92
 
93
93
  render serializer: nil, json: serialize_models(getter.records, {
94
94
  context: { type: get_serializer_type('stripe_subscriptions') },
95
- count: getter.count,
95
+ meta: { count: getter.count },
96
96
  include: ['customer']
97
97
  })
98
98
  end
@@ -117,7 +117,7 @@ module ForestLiana
117
117
 
118
118
  render serializer: nil, json: serialize_models(getter.records, {
119
119
  context: { type: get_serializer_type('stripe_bank_accounts') },
120
- count: getter.count,
120
+ meta: { count: getter.count },
121
121
  include: ['customer']
122
122
  })
123
123
  end
@@ -0,0 +1,21 @@
1
+ module ForestLiana
2
+ module DecorationHelper
3
+ def self.decorate_for_search(records_serialized, field_names, search_value)
4
+ match_fields = {}
5
+ records_serialized['data'].each_with_index do |record, index|
6
+ field_names.each do |field_name|
7
+ value = record['attributes'][field_name]
8
+ if value
9
+ match = value.match(/#{search_value}/i)
10
+ if match
11
+ match_fields[index] = { id: record['id'], search: [] } if match_fields[index].nil?
12
+ match_fields[index][:search] << field_name
13
+ end
14
+ end
15
+ end
16
+ end
17
+ match_fields.empty? ? nil : match_fields
18
+ end
19
+
20
+ end
21
+ end
@@ -33,4 +33,10 @@ class ForestLiana::Model::Collection
33
33
  def fields_belongs_to
34
34
  fields.select { |field| field[:type] == 'String' && !field[:reference].nil? }
35
35
  end
36
+
37
+ def string_smart_fields_names
38
+ fields
39
+ .select { |field| field[:'is-virtual'] && field[:type] == 'String' }
40
+ .map { |field| field[:field].to_s }
41
+ end
36
42
  end
@@ -1,11 +1,15 @@
1
1
  module ForestLiana
2
2
  class HasManyGetter < BaseGetter
3
+ attr_reader :search_query_builder
4
+
3
5
  def initialize(resource, association, params)
4
6
  @resource = resource
5
7
  @association = association
6
8
  @params = params
7
9
  @field_names_requested = field_names_requested
8
10
  @collection = get_collection(ForestLiana.name_for(model_association))
11
+ includes_symbols = includes.map { |association| association.to_sym }
12
+ @search_query_builder = SearchQueryBuilder.new(@params, includes_symbols, @collection)
9
13
  end
10
14
 
11
15
  def perform
@@ -18,8 +22,7 @@ module ForestLiana
18
22
  end
19
23
 
20
24
  def search_query
21
- includesSymbols = includes.map { |association| association.to_sym }
22
- SearchQueryBuilder.new(@records, @params, includesSymbols, @collection).perform
25
+ @search_query_builder.perform(@records)
23
26
  end
24
27
 
25
28
  def includes
@@ -1,5 +1,7 @@
1
1
  module ForestLiana
2
2
  class ResourcesGetter < BaseGetter
3
+ attr_reader :search_query_builder
4
+
3
5
  def initialize(resource, params)
4
6
  @resource = resource
5
7
  @params = params
@@ -8,6 +10,7 @@ module ForestLiana
8
10
  @collection = get_collection(@collection_name)
9
11
  @field_names_requested = field_names_requested
10
12
  get_segment()
13
+ @search_query_builder = SearchQueryBuilder.new(@params, includes, @collection)
11
14
  end
12
15
 
13
16
  def perform
@@ -122,7 +125,7 @@ module ForestLiana
122
125
  end
123
126
 
124
127
  def search_query
125
- SearchQueryBuilder.new(@records, @params, includes, @collection).perform
128
+ @search_query_builder.perform(@records)
126
129
  end
127
130
 
128
131
  def sort_query
@@ -2,14 +2,17 @@ module ForestLiana
2
2
  class SearchQueryBuilder
3
3
  REGEX_UUID = /\A[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\z/i
4
4
 
5
- def initialize(resource, params, includes, collection)
6
- @resource = @records = resource
5
+ attr_reader :fields_searched
6
+
7
+ def initialize(params, includes, collection)
7
8
  @params = params
8
9
  @includes = includes
9
10
  @collection = collection
11
+ @fields_searched = []
10
12
  end
11
13
 
12
- def perform
14
+ def perform(resource)
15
+ @resource = @records = resource
13
16
  @records = search_param
14
17
  @records = filter_param
15
18
  @records = has_many_filter
@@ -50,6 +53,7 @@ module ForestLiana
50
53
  conditions = []
51
54
 
52
55
  @resource.columns.each_with_index do |column, index|
56
+ @fields_searched << column.name if [:string, :text].include? column.type
53
57
  column_name = format_column_name(@resource.table_name, column.name)
54
58
  if (@collection.search_fields && !@collection.search_fields.include?(column.name))
55
59
  conditions
@@ -1,3 +1,3 @@
1
1
  module ForestLiana
2
- VERSION = "2.8.6"
2
+ VERSION = "2.9.0"
3
3
  end
Binary file
@@ -55260,3 +55260,448 @@ ForestLiana::SchemaAdapterTest: test_Boolean_should_have_the_type_`Boolean`
55260
55260
  ForestLiana::SchemaAdapterTest: test_belongsTo_relationship
55261
55261
  -----------------------------------------------------------
55262
55262
   (0.1ms) rollback transaction
55263
+ ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
55264
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
55265
+  (0.1ms)  SELECT sql
55266
+ FROM sqlite_master
55267
+ WHERE name='index_belongs_to_class_name_fields_on_foo_id' AND type='index'
55268
+ UNION ALL
55269
+ SELECT sql
55270
+ FROM sqlite_temp_master
55271
+ WHERE name='index_belongs_to_class_name_fields_on_foo_id' AND type='index'
55272
+ 
55273
+  (0.1ms) SELECT sql
55274
+ FROM sqlite_master
55275
+ WHERE name='index_belongs_to_fields_on_has_many_field_id' AND type='index'
55276
+ UNION ALL
55277
+ SELECT sql
55278
+ FROM sqlite_temp_master
55279
+ WHERE name='index_belongs_to_fields_on_has_many_field_id' AND type='index'
55280
+
55281
+  (0.1ms)  SELECT sql
55282
+ FROM sqlite_master
55283
+ WHERE name='index_belongs_to_fields_on_has_many_class_name_field_id' AND type='index'
55284
+ UNION ALL
55285
+ SELECT sql
55286
+ FROM sqlite_temp_master
55287
+ WHERE name='index_belongs_to_fields_on_has_many_class_name_field_id' AND type='index'
55288
+ 
55289
+  (0.1ms) SELECT sql
55290
+ FROM sqlite_master
55291
+ WHERE name='index_belongs_to_fields_on_has_one_field_id' AND type='index'
55292
+ UNION ALL
55293
+ SELECT sql
55294
+ FROM sqlite_temp_master
55295
+ WHERE name='index_belongs_to_fields_on_has_one_field_id' AND type='index'
55296
+
55297
+  (0.1ms)  SELECT sql
55298
+ FROM sqlite_master
55299
+ WHERE name='index_has_many_fields_on_has_many_through_field_id' AND type='index'
55300
+ UNION ALL
55301
+ SELECT sql
55302
+ FROM sqlite_temp_master
55303
+ WHERE name='index_has_many_fields_on_has_many_through_field_id' AND type='index'
55304
+ 
55305
+  (0.1ms) SELECT sql
55306
+ FROM sqlite_master
55307
+ WHERE name='index_polymorphic_fields_on_has_one_field_id' AND type='index'
55308
+ UNION ALL
55309
+ SELECT sql
55310
+ FROM sqlite_temp_master
55311
+ WHERE name='index_polymorphic_fields_on_has_one_field_id' AND type='index'
55312
+
55313
+  (0.1ms)  SELECT sql
55314
+ FROM sqlite_master
55315
+ WHERE name='index_trees_on_owner_id' AND type='index'
55316
+ UNION ALL
55317
+ SELECT sql
55318
+ FROM sqlite_temp_master
55319
+ WHERE name='index_trees_on_owner_id' AND type='index'
55320
+ 
55321
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
55322
+  (0.1ms) begin transaction
55323
+ Fixture Delete (0.7ms) DELETE FROM "has_many_through_fields"
55324
+ Fixture Insert (0.4ms) INSERT INTO "has_many_through_fields" ("id") VALUES (1)
55325
+ Fixture Insert (0.1ms) INSERT INTO "has_many_through_fields" ("id") VALUES (2)
55326
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (3)
55327
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (4)
55328
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (5)
55329
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (6)
55330
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (7)
55331
+ Fixture Insert (0.1ms) INSERT INTO "has_many_through_fields" ("id") VALUES (8)
55332
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (9)
55333
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (10)
55334
+ Fixture Delete (0.4ms) DELETE FROM "string_fields"
55335
+ Fixture Insert (0.1ms) INSERT INTO "string_fields" ("id", "field") VALUES (1, 'Test 1')
55336
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (2, 'Test 2')
55337
+ Fixture Insert (3.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (3, 'Test 3')
55338
+ Fixture Insert (0.1ms) INSERT INTO "string_fields" ("id", "field") VALUES (4, 'Test 4')
55339
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (5, 'Test 5')
55340
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (6, 'Test 6')
55341
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (7, 'Test 7')
55342
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (8, 'Test 8')
55343
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (9, 'Test 9')
55344
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (10, 'Test 10')
55345
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (11, 'Test 11')
55346
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (12, 'Test 12')
55347
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (13, 'Test 13')
55348
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (14, 'Test 14')
55349
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (15, 'Test 15')
55350
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (16, 'Test 16')
55351
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (17, 'Test 17')
55352
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (18, 'Test 18')
55353
+ Fixture Insert (0.1ms) INSERT INTO "string_fields" ("id", "field") VALUES (19, 'Test 19')
55354
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (20, 'Test 20')
55355
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (21, 'Test 21')
55356
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (22, 'Test 22')
55357
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (23, 'Test 23')
55358
+ Fixture Insert (0.1ms) INSERT INTO "string_fields" ("id", "field") VALUES (24, 'Test 24')
55359
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (25, 'Test 25')
55360
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (26, 'Test 26')
55361
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (27, 'Test 27')
55362
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (28, 'Test 28')
55363
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (29, 'Test 29')
55364
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (30, 'Test 30')
55365
+ Fixture Delete (1.0ms) DELETE FROM "belongs_to_fields"
55366
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (1, 1, 1)
55367
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (2, 2, 1)
55368
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (3, 3, 1)
55369
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (4, 4, 2)
55370
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (5, 5, 2)
55371
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (6, 6, 2)
55372
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (7, 7, 3)
55373
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (8, 8, 3)
55374
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (9, 9, 3)
55375
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (10, 10, 4)
55376
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (11, 11, 4)
55377
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (12, 12, 4)
55378
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (13, 13, 5)
55379
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (14, 14, 5)
55380
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (15, 15, 5)
55381
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (16, 16, 6)
55382
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (17, 17, 6)
55383
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (18, 18, 6)
55384
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (19, 19, 7)
55385
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (20, 20, 7)
55386
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (21, 21, 7)
55387
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (22, 22, 7)
55388
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (23, 23, 8)
55389
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (24, 24, 8)
55390
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (25, 25, 9)
55391
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (26, 26, 9)
55392
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (27, 27, 9)
55393
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (28, 28, 10)
55394
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (29, 29, 10)
55395
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (30, 30, 10)
55396
+ Fixture Delete (0.7ms) DELETE FROM "trees"
55397
+ Fixture Insert (0.1ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (1, 'Oak', 1, '2011-02-11 11:00:00.000000', '2011-02-11 11:00:00.000000')
55398
+ Fixture Insert (0.1ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (2, 'Mapple', 2, '2011-02-15 21:00:00.000000', '2011-02-15 21:00:00.000000')
55399
+ Fixture Insert (0.0ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (3, 'Mapple', 2, '2013-04-11 12:00:00.000000', '2013-04-11 12:00:00.000000')
55400
+ Fixture Insert (0.0ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (4, 'Oak', 2, '2016-06-18 09:00:00.000000', '2016-06-18 09:00:00.000000')
55401
+ Fixture Insert (0.0ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (5, 'Oak', 3, '2015-06-18 09:00:00.000000', '2015-06-18 09:00:00.000000')
55402
+ Fixture Insert (0.0ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (6, 'Oak', 3, '2018-06-28 17:26:42.000000', '2018-06-28 17:26:42.000000')
55403
+ Fixture Insert (0.0ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (7, 'Sequoia', 1, '2018-06-28 17:26:42.000000', '2018-06-28 17:26:42.000000')
55404
+ Fixture Insert (0.0ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (8, 'Fir', 1, '2018-06-28 17:26:42.000000', '2018-06-28 17:26:42.000000')
55405
+ Fixture Delete (0.4ms) DELETE FROM "has_one_fields"
55406
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (1, 't', 0)
55407
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (2, 't', 0)
55408
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (3, 't', 0)
55409
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (4, 't', 0)
55410
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (5, 't', 0)
55411
+ Fixture Insert (0.2ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (6, 't', 0)
55412
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (7, 't', 0)
55413
+ Fixture Insert (0.2ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (8, 't', 0)
55414
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (9, 't', 0)
55415
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (10, 't', 0)
55416
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (11, 't', 0)
55417
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (12, 't', 0)
55418
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (13, 't', 0)
55419
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (14, 't', 0)
55420
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (15, 't', 0)
55421
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (16, 't', 0)
55422
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (17, 't', 0)
55423
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (18, 't', 0)
55424
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (19, 't', 0)
55425
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (20, 't', 0)
55426
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (21, 't', 0)
55427
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (22, 't', 0)
55428
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (23, 't', 0)
55429
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (24, 't', 0)
55430
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (25, 't', 0)
55431
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (26, 't', 0)
55432
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (27, 't', 0)
55433
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (28, 't', 0)
55434
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (29, 't', 0)
55435
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (30, 't', 1)
55436
+ Fixture Delete (0.5ms) DELETE FROM "owners"
55437
+ Fixture Insert (0.1ms) INSERT INTO "owners" ("id", "name", "created_at", "updated_at") VALUES (1, 'Sandro Munda', '2017-05-30 09:00:00.000000', '2018-06-27 20:00:00.000000')
55438
+ Fixture Insert (0.3ms) INSERT INTO "owners" ("id", "name", "created_at", "updated_at") VALUES (2, 'Arnaud Besnier', '2018-05-02 09:00:00.000000', '2018-06-28 08:00:00.000000')
55439
+ Fixture Insert (0.1ms) INSERT INTO "owners" ("id", "name", "created_at", "updated_at") VALUES (3, 'John Doe', '2016-05-02 09:00:00.000000', '2017-06-28 08:00:00.000000')
55440
+ Fixture Delete (0.7ms) DELETE FROM "has_many_fields"
55441
+ Fixture Insert (0.1ms) INSERT INTO "has_many_fields" ("id") VALUES (1)
55442
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id") VALUES (2)
55443
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id") VALUES (3)
55444
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id") VALUES (4)
55445
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id", "has_many_through_field_id") VALUES (5, 3)
55446
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id", "has_many_through_field_id") VALUES (6, 2)
55447
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id") VALUES (7)
55448
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id", "has_many_through_field_id") VALUES (8, 2)
55449
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id") VALUES (9)
55450
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id") VALUES (10)
55451
+ Fixture Delete (0.1ms) DELETE FROM "serialize_fields"
55452
+ Fixture Insert (0.0ms) INSERT INTO "serialize_fields" ("id", "field") VALUES (1, 'value 1')
55453
+ Fixture Insert (0.0ms) INSERT INTO "serialize_fields" ("id", "field") VALUES (2, 'value 2')
55454
+ Fixture Insert (0.0ms) INSERT INTO "serialize_fields" ("id", "field") VALUES (3, 'value 3')
55455
+ Fixture Insert (0.1ms) INSERT INTO "serialize_fields" ("id", "field") VALUES (4, 'value 4')
55456
+ Fixture Insert (0.1ms) INSERT INTO "serialize_fields" ("id", "field") VALUES (5, 'value 5')
55457
+  (1.8ms) commit transaction
55458
+  (0.0ms) begin transaction
55459
+ ------------------------------------------------------------------------------------
55460
+ ForestLiana::SchemaAdapterTest: test_belongsTo_relationhip_with_specified_class_name
55461
+ ------------------------------------------------------------------------------------
55462
+  (0.1ms) rollback transaction
55463
+  (0.2ms) begin transaction
55464
+ ---------------------------------------------------------------------
55465
+ ForestLiana::SchemaAdapterTest: test_Date_should_have_the_type_`Date`
55466
+ ---------------------------------------------------------------------
55467
+  (0.1ms) rollback transaction
55468
+  (0.1ms) begin transaction
55469
+ -----------------------------------------------------------
55470
+ ForestLiana::SchemaAdapterTest: test_belongsTo_relationship
55471
+ -----------------------------------------------------------
55472
+  (0.1ms) rollback transaction
55473
+  (0.0ms) begin transaction
55474
+ -------------------------------------------------------------------------
55475
+ ForestLiana::SchemaAdapterTest: test_DateTime_should_have_the_type_`Date`
55476
+ -------------------------------------------------------------------------
55477
+  (0.1ms) rollback transaction
55478
+  (0.1ms) begin transaction
55479
+ --------------------------------------------------------------------------
55480
+ ForestLiana::SchemaAdapterTest: test_Integer_should_have_the_type_`Number`
55481
+ --------------------------------------------------------------------------
55482
+  (0.1ms) rollback transaction
55483
+  (0.1ms) begin transaction
55484
+ ----------------------------------------------------------------------------------
55485
+ ForestLiana::SchemaAdapterTest: test_hasMany_relationhip_with_specified_class_name
55486
+ ----------------------------------------------------------------------------------
55487
+  (0.1ms) rollback transaction
55488
+  (0.0ms) begin transaction
55489
+ ---------------------------------------------------------------------------
55490
+ ForestLiana::SchemaAdapterTest: test_Boolean_should_have_the_type_`Boolean`
55491
+ ---------------------------------------------------------------------------
55492
+  (0.1ms) rollback transaction
55493
+  (0.1ms) begin transaction
55494
+ -------------------------------------------------------------------------
55495
+ ForestLiana::SchemaAdapterTest: test_String_should_have_the_type_`String`
55496
+ -------------------------------------------------------------------------
55497
+  (0.1ms) rollback transaction
55498
+  (0.0ms) begin transaction
55499
+ ------------------------------------------------------------------------
55500
+ ForestLiana::SchemaAdapterTest: test_Float_should_have_the_type_`Number`
55501
+ ------------------------------------------------------------------------
55502
+  (0.1ms) rollback transaction
55503
+  (0.1ms) begin transaction
55504
+ --------------------------------------------------------------------------
55505
+ ForestLiana::SchemaAdapterTest: test_Decimal_should_have_the_type_`Number`
55506
+ --------------------------------------------------------------------------
55507
+  (0.1ms) rollback transaction
55508
+  (0.1ms) begin transaction
55509
+ --------------------------------------------------------
55510
+ ForestLiana::SchemaAdapterTest: test_hasOne_relationship
55511
+ --------------------------------------------------------
55512
+  (0.1ms) rollback transaction
55513
+  (0.1ms) begin transaction
55514
+ ---------------------------------------------------------
55515
+ ForestLiana::SchemaAdapterTest: test_hasMany_relationship
55516
+ ---------------------------------------------------------
55517
+  (0.1ms) rollback transaction
55518
+  (0.1ms) begin transaction
55519
+ -----------------------------------------------------------------------------------------
55520
+ ForestLiana::PieStatGetterTest: test_Pie_stat_getter_with_an_aggregate_on_a_boolean_field
55521
+ -----------------------------------------------------------------------------------------
55522
+  (0.5ms) SELECT COUNT(*) AS count_all, boolean_fields.field AS boolean_fields_field FROM "boolean_fields" GROUP BY boolean_fields.field ORDER BY count_all DESC
55523
+  (0.1ms) rollback transaction
55524
+  (0.1ms) begin transaction
55525
+ ---------------------------------------------------------------------------------------
55526
+ ForestLiana::PieStatGetterTest: test_Pie_stat_getter_with_an_aggregate_on_a_foreign_key
55527
+ ---------------------------------------------------------------------------------------
55528
+  (1.0ms) SELECT COUNT(DISTINCT "belongs_to_fields"."id") AS count_id, belongs_to_fields.has_one_field_id AS belongs_to_fields_has_one_field_id FROM "belongs_to_fields" LEFT OUTER JOIN "has_one_fields" ON "has_one_fields"."id" = "belongs_to_fields"."has_one_field_id" LEFT OUTER JOIN "has_many_fields" ON "has_many_fields"."id" = "belongs_to_fields"."has_many_field_id" LEFT OUTER JOIN "has_many_class_name_fields" ON "has_many_class_name_fields"."id" = "belongs_to_fields"."has_many_class_name_field_id" GROUP BY belongs_to_fields.has_one_field_id ORDER BY count_id DESC
55529
+  (0.1ms) rollback transaction
55530
+  (0.1ms) begin transaction
55531
+ ---------------------------
55532
+ ForestLianaTest: test_truth
55533
+ ---------------------------
55534
+  (0.0ms) rollback transaction
55535
+  (0.2ms) begin transaction
55536
+ ------------------------------------------------------------------------------------------------------
55537
+ ForestLiana::ResourceUpdaterTest: test_Update_a_record_on_a_"serialize"_attribute_with_a_missing_value
55538
+ ------------------------------------------------------------------------------------------------------
55539
+ SerializeField Load (0.2ms) SELECT "serialize_fields".* FROM "serialize_fields" WHERE "serialize_fields"."id" = ? LIMIT 1 [["id", 1]]
55540
+  (0.1ms) SAVEPOINT active_record_1
55541
+  (0.1ms) RELEASE SAVEPOINT active_record_1
55542
+  (0.1ms) rollback transaction
55543
+  (0.0ms) begin transaction
55544
+ ---------------------------------------------------------------------------------------------------------
55545
+ ForestLiana::ResourceUpdaterTest: test_Update_a_record_on_a_"serialize"_attribute_with_a_bad_format_value
55546
+ ---------------------------------------------------------------------------------------------------------
55547
+ SerializeField Load (0.1ms) SELECT "serialize_fields".* FROM "serialize_fields" WHERE "serialize_fields"."id" = ? LIMIT 1 [["id", 1]]
55548
+  (0.1ms) rollback transaction
55549
+  (0.1ms) begin transaction
55550
+ ---------------------------------------------------------------------------------------------------
55551
+ ForestLiana::ResourceUpdaterTest: test_Update_a_record_on_a_"serialize"_attribute_with_a_null_value
55552
+ ---------------------------------------------------------------------------------------------------
55553
+ SerializeField Load (0.1ms) SELECT "serialize_fields".* FROM "serialize_fields" WHERE "serialize_fields"."id" = ? LIMIT 1 [["id", 1]]
55554
+  (0.0ms) SAVEPOINT active_record_1
55555
+ SQL (0.4ms) UPDATE "serialize_fields" SET "field" = ? WHERE "serialize_fields"."id" = ? [["field", nil], ["id", 1]]
55556
+  (0.1ms) RELEASE SAVEPOINT active_record_1
55557
+  (0.5ms) rollback transaction
55558
+  (0.1ms) begin transaction
55559
+ ------------------------------------------------------------------------------------------------------------
55560
+ ForestLiana::ResourceUpdaterTest: test_Update_a_record_on_a_"serialize"_attribute_with_a_well_formated_value
55561
+ ------------------------------------------------------------------------------------------------------------
55562
+ SerializeField Load (0.1ms) SELECT "serialize_fields".* FROM "serialize_fields" WHERE "serialize_fields"."id" = ? LIMIT 1 [["id", 1]]
55563
+  (0.1ms) SAVEPOINT active_record_1
55564
+ SQL (0.3ms) UPDATE "serialize_fields" SET "field" = ? WHERE "serialize_fields"."id" = ? [["field", "---\n- test\n- test\n"], ["id", 1]]
55565
+  (0.1ms) RELEASE SAVEPOINT active_record_1
55566
+  (0.5ms) rollback transaction
55567
+  (0.1ms) begin transaction
55568
+ ------------------------------------------------------------------------------------------------
55569
+ ForestLiana::ResourcesGetterTest: test_Filter_on_an_updated_at_field_of_an_associated_collection
55570
+ ------------------------------------------------------------------------------------------------
55571
+ SQL (0.4ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE (owners.updated_at BETWEEN '2017-01-01 08:00:00 UTC' AND '2018-01-01 07:59:59 UTC') ORDER BY trees.created_at DESC LIMIT 10 OFFSET 0
55572
+  (0.3ms) SELECT COUNT(DISTINCT "trees"."id") FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE (owners.updated_at BETWEEN '2017-01-01 08:00:00 UTC' AND '2018-01-01 07:59:59 UTC')
55573
+  (0.1ms) rollback transaction
55574
+  (0.0ms) begin transaction
55575
+ ----------------------------------------------------------------
55576
+ ForestLiana::ResourcesGetterTest: test_StringField_sort_by_field
55577
+ ----------------------------------------------------------------
55578
+ SQL (0.3ms) SELECT "string_fields"."id" AS t0_r0, "string_fields"."field" AS t0_r1 FROM "string_fields" ORDER BY string_fields.field DESC LIMIT 10 OFFSET 0
55579
+  (0.1ms) SELECT COUNT(*) FROM "string_fields"
55580
+  (0.3ms) rollback transaction
55581
+  (0.2ms) begin transaction
55582
+ ------------------------------------------------------------------------------------------------------
55583
+ ForestLiana::ResourcesGetterTest: test_Filter_equal_on_an_updated_at_field_of_an_associated_collection
55584
+ ------------------------------------------------------------------------------------------------------
55585
+ SQL (0.3ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE (owners.updated_at = 'Sat Jul 02 2016 11:52:00 GMT-0400 (EDT)') ORDER BY trees.created_at DESC LIMIT 10 OFFSET 0
55586
+  (0.2ms) SELECT COUNT(DISTINCT "trees"."id") FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE (owners.updated_at = 'Sat Jul 02 2016 11:52:00 GMT-0400 (EDT)')
55587
+  (0.1ms) rollback transaction
55588
+  (0.0ms) begin transaction
55589
+ -----------------------------------------------------------------------
55590
+ ForestLiana::ResourcesGetterTest: test_Sort_by_a_belongs_to_association
55591
+ -----------------------------------------------------------------------
55592
+ SQL (9.3ms) SELECT "belongs_to_fields"."id" AS t0_r0, "belongs_to_fields"."has_one_field_id" AS t0_r1, "belongs_to_fields"."has_many_class_name_field_id" AS t0_r2, "belongs_to_fields"."has_many_field_id" AS t0_r3, "has_one_fields"."id" AS t1_r0, "has_one_fields"."checked" AS t1_r1, "has_one_fields"."status" AS t1_r2, "has_many_fields"."id" AS t2_r0, "has_many_fields"."has_many_through_field_id" AS t2_r1, "has_many_class_name_fields"."id" AS t3_r0 FROM "belongs_to_fields" LEFT OUTER JOIN "has_one_fields" ON "has_one_fields"."id" = "belongs_to_fields"."has_one_field_id" LEFT OUTER JOIN "has_many_fields" ON "has_many_fields"."id" = "belongs_to_fields"."has_many_field_id" LEFT OUTER JOIN "has_many_class_name_fields" ON "has_many_class_name_fields"."id" = "belongs_to_fields"."has_many_class_name_field_id" ORDER BY "has_one_fields"."id" ASC LIMIT 10 OFFSET 0
55593
+  (0.3ms) SELECT COUNT(*) FROM "belongs_to_fields"
55594
+  (0.1ms) rollback transaction
55595
+  (0.0ms) begin transaction
55596
+ ------------------------------------------------------------
55597
+ ForestLiana::ResourcesGetterTest: test_Filter_before_x_hours
55598
+ ------------------------------------------------------------
55599
+ SQL (0.2ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4 FROM "trees" WHERE ("trees"."created_at" < '2018-06-28 17:25:42 UTC') ORDER BY trees.created_at DESC LIMIT 10 OFFSET 0
55600
+  (0.1ms) SELECT COUNT(*) FROM "trees" WHERE ("trees"."created_at" < '2018-06-28 17:25:42 UTC')
55601
+ Owner Load (0.1ms) SELECT "owners".* FROM "owners" WHERE "owners"."id" = ? LIMIT 1 [["id", 2]]
55602
+  (0.1ms) rollback transaction
55603
+  (0.0ms) begin transaction
55604
+ -----------------------------------------------------------------
55605
+ ForestLiana::ResourcesGetterTest: test_StringField_page_2_size_10
55606
+ -----------------------------------------------------------------
55607
+ SQL (0.2ms) SELECT "string_fields"."id" AS t0_r0, "string_fields"."field" AS t0_r1 FROM "string_fields" ORDER BY string_fields.id DESC LIMIT 10 OFFSET 10
55608
+  (0.1ms) SELECT COUNT(*) FROM "string_fields"
55609
+  (0.1ms) rollback transaction
55610
+  (0.2ms) begin transaction
55611
+ -------------------------------------------------------------------------------------------
55612
+ ForestLiana::ResourcesGetterTest: test_Filter_on_an_updated_at_field_of_the_main_collection
55613
+ -------------------------------------------------------------------------------------------
55614
+ SQL (0.2ms) SELECT "owners"."id" AS t0_r0, "owners"."name" AS t0_r1, "owners"."created_at" AS t0_r2, "owners"."updated_at" AS t0_r3 FROM "owners" WHERE ("owners"."updated_at" BETWEEN '2017-01-01 08:00:00 UTC' AND '2018-01-01 07:59:59 UTC') ORDER BY owners.created_at DESC LIMIT 10 OFFSET 0
55615
+  (0.1ms) SELECT COUNT(*) FROM "owners" WHERE ("owners"."updated_at" BETWEEN '2017-01-01 08:00:00 UTC' AND '2018-01-01 07:59:59 UTC')
55616
+  (0.1ms) rollback transaction
55617
+  (0.0ms) begin transaction
55618
+ --------------------------------------------------------------------
55619
+ ForestLiana::ResourcesGetterTest: test_Sort_by_a_has_one_association
55620
+ --------------------------------------------------------------------
55621
+ SQL (0.6ms) SELECT "has_one_fields"."id" AS t0_r0, "has_one_fields"."checked" AS t0_r1, "has_one_fields"."status" AS t0_r2, "belongs_to_fields"."id" AS t1_r0, "belongs_to_fields"."has_one_field_id" AS t1_r1, "belongs_to_fields"."has_many_class_name_field_id" AS t1_r2, "belongs_to_fields"."has_many_field_id" AS t1_r3, "belongs_to_class_name_fields"."id" AS t2_r0, "belongs_to_class_name_fields"."foo_id" AS t2_r1 FROM "has_one_fields" LEFT OUTER JOIN "belongs_to_fields" ON "belongs_to_fields"."has_one_field_id" = "has_one_fields"."id" LEFT OUTER JOIN "belongs_to_class_name_fields" ON "belongs_to_class_name_fields"."foo_id" = "has_one_fields"."id" ORDER BY "belongs_to_fields"."id" DESC LIMIT 10 OFFSET 0
55622
+  (0.1ms) SELECT COUNT(*) FROM "has_one_fields"
55623
+  (0.0ms) rollback transaction
55624
+  (0.1ms) begin transaction
55625
+ ------------------------------------------------------------------------------------
55626
+ ForestLiana::ResourcesGetterTest: test_Sort_on_an_ambiguous_field_name_with_a_filter
55627
+ ------------------------------------------------------------------------------------
55628
+ SQL (0.2ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE (owners.name = 'Arnaud Besnier') ORDER BY trees.name DESC LIMIT 10 OFFSET 0
55629
+  (0.1ms) SELECT COUNT(DISTINCT "trees"."id") FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE (owners.name = 'Arnaud Besnier')
55630
+  (0.0ms) rollback transaction
55631
+  (0.0ms) begin transaction
55632
+ -----------------------------------------------------------------
55633
+ ForestLiana::ResourcesGetterTest: test_StringField_page_1_size_15
55634
+ -----------------------------------------------------------------
55635
+ SQL (0.1ms) SELECT "string_fields"."id" AS t0_r0, "string_fields"."field" AS t0_r1 FROM "string_fields" ORDER BY string_fields.id DESC LIMIT 15 OFFSET 0
55636
+  (0.1ms) SELECT COUNT(*) FROM "string_fields"
55637
+  (0.0ms) rollback transaction
55638
+  (0.0ms) begin transaction
55639
+ ----------------------------------------------------------
55640
+ ForestLiana::ResourcesGetterTest: test_Filter_after_x_days
55641
+ ----------------------------------------------------------
55642
+ SQL (0.2ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4 FROM "trees" WHERE ("trees"."created_at" > '2018-06-28 17:25:42 UTC') ORDER BY trees.created_at DESC LIMIT 10 OFFSET 0
55643
+  (0.1ms) SELECT COUNT(*) FROM "trees" WHERE ("trees"."created_at" > '2018-06-28 17:25:42 UTC')
55644
+  (0.1ms) rollback transaction
55645
+  (0.1ms) begin transaction
55646
+ ----------------------------------------------------------------
55647
+ ForestLiana::ResourcesGetterTest: test_Filter_on_ambiguous_field
55648
+ ----------------------------------------------------------------
55649
+ SQL (0.2ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE ("trees"."created_at" > '2015-06-18 08:00:00') AND (owners.name = 'Arnaud Besnier') ORDER BY trees.created_at DESC LIMIT 10 OFFSET 0
55650
+  (0.2ms) SELECT COUNT(DISTINCT "trees"."id") FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE ("trees"."created_at" > '2015-06-18 08:00:00') AND (owners.name = 'Arnaud Besnier')
55651
+  (0.1ms) rollback transaction
55652
+  (0.1ms) begin transaction
55653
+ -----------------------------------
55654
+ ForestLiana::RouteTest: test_Routes
55655
+ -----------------------------------
55656
+  (0.1ms) rollback transaction
55657
+  (0.1ms) begin transaction
55658
+ ----------------------------------------------------------------------------------------------------
55659
+ ForestLiana::ValueStatGetterTest: test_Value_stat_getter_with_a_filter_on_a_belongs_to_boolean_field
55660
+ ----------------------------------------------------------------------------------------------------
55661
+  (0.2ms) SELECT DISTINCT COUNT(DISTINCT "belongs_to_fields"."id") FROM "belongs_to_fields" LEFT OUTER JOIN "has_one_fields" ON "has_one_fields"."id" = "belongs_to_fields"."has_one_field_id" LEFT OUTER JOIN "has_many_fields" ON "has_many_fields"."id" = "belongs_to_fields"."has_many_field_id" LEFT OUTER JOIN "has_many_class_name_fields" ON "has_many_class_name_fields"."id" = "belongs_to_fields"."has_many_class_name_field_id" WHERE ("has_one_fields"."checked" = 0)
55662
+  (0.0ms) rollback transaction
55663
+  (0.0ms) begin transaction
55664
+ -------------------------------------------------------------------------------------------------
55665
+ ForestLiana::ValueStatGetterTest: test_Value_stat_getter_with_a_filter_on_a_belongs_to_enum_field
55666
+ -------------------------------------------------------------------------------------------------
55667
+  (0.2ms) SELECT DISTINCT COUNT(DISTINCT "belongs_to_fields"."id") FROM "belongs_to_fields" LEFT OUTER JOIN "has_one_fields" ON "has_one_fields"."id" = "belongs_to_fields"."has_one_field_id" LEFT OUTER JOIN "has_many_fields" ON "has_many_fields"."id" = "belongs_to_fields"."has_many_field_id" LEFT OUTER JOIN "has_many_class_name_fields" ON "has_many_class_name_fields"."id" = "belongs_to_fields"."has_many_class_name_field_id" WHERE ("has_one_fields"."status" = '1')
55668
+  (0.0ms) rollback transaction
55669
+  (0.0ms) begin transaction
55670
+ -----------------------------------------------------------------------------
55671
+ ForestLiana::ValueStatGetterTest: test_Value_stat_getter_with_a_simple_filter
55672
+ -----------------------------------------------------------------------------
55673
+  (0.1ms) SELECT DISTINCT COUNT(DISTINCT "boolean_fields"."id") FROM "boolean_fields" WHERE ("boolean_fields"."field" = 1)
55674
+  (0.0ms) rollback transaction
55675
+  (0.0ms) begin transaction
55676
+ ----------------------------------------------------------------------------------------------------
55677
+ ForestLiana::ValueStatGetterTest: test_Value_stat_getter_with_a_filter_on_a_belongs_to_integer_field
55678
+ ----------------------------------------------------------------------------------------------------
55679
+  (0.3ms) SELECT DISTINCT COUNT(DISTINCT "belongs_to_fields"."id") FROM "belongs_to_fields" LEFT OUTER JOIN "has_one_fields" ON "has_one_fields"."id" = "belongs_to_fields"."has_one_field_id" LEFT OUTER JOIN "has_many_fields" ON "has_many_fields"."id" = "belongs_to_fields"."has_many_field_id" LEFT OUTER JOIN "has_many_class_name_fields" ON "has_many_class_name_fields"."id" = "belongs_to_fields"."has_many_class_name_field_id" WHERE ("has_one_fields"."id" = '3')
55680
+  (0.0ms) rollback transaction
55681
+  (0.0ms) begin transaction
55682
+ -------------------------------------------------------------------------
55683
+ ForestLiana::HasManyGetterTest: test_HasMany_Getter_with_search_parameter
55684
+ -------------------------------------------------------------------------
55685
+ Owner Load (0.1ms) SELECT "owners".* FROM "owners" WHERE "owners"."id" = ? LIMIT 1 [["id", 1]]
55686
+  (0.1ms) SELECT COUNT(DISTINCT "trees"."id") FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? AND (LOWER("trees"."name") LIKE '%fir%') [["owner_id", 1]]
55687
+  (0.1ms) SELECT COUNT(DISTINCT count_column) FROM (SELECT "trees"."id" AS count_column FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? AND (LOWER("trees"."name") LIKE '%fir%') LIMIT 15 OFFSET 0) subquery_for_count [["owner_id", 1]]
55688
+ SQL (0.1ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? AND (LOWER("trees"."name") LIKE '%fir%') ORDER BY "trees"."id" ASC LIMIT 1 OFFSET 0 [["owner_id", 1]]
55689
+  (0.1ms) rollback transaction
55690
+  (0.0ms) begin transaction
55691
+ -----------------------------------------------------------------------
55692
+ ForestLiana::HasManyGetterTest: test_HasMany_Getter_with_sort_parameter
55693
+ -----------------------------------------------------------------------
55694
+ Owner Load (0.1ms) SELECT "owners".* FROM "owners" WHERE "owners"."id" = ? LIMIT 1 [["id", 1]]
55695
+  (0.1ms) SELECT COUNT(DISTINCT "trees"."id") FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? [["owner_id", 1]]
55696
+  (0.2ms) SELECT COUNT(DISTINCT count_column) FROM (SELECT "trees"."id" AS count_column FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? LIMIT 15 OFFSET 0) subquery_for_count [["owner_id", 1]]
55697
+ SQL (0.1ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? ORDER BY trees.id DESC LIMIT 1 OFFSET 0 [["owner_id", 1]]
55698
+  (0.1ms) rollback transaction
55699
+  (0.0ms) begin transaction
55700
+ ------------------------------------------------------------------
55701
+ ForestLiana::HasManyGetterTest: test_HasMany_Getter_page_1_size_15
55702
+ ------------------------------------------------------------------
55703
+ Owner Load (0.1ms) SELECT "owners".* FROM "owners" WHERE "owners"."id" = ? LIMIT 1 [["id", 1]]
55704
+  (0.1ms) SELECT COUNT(DISTINCT "trees"."id") FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? [["owner_id", 1]]
55705
+  (0.1ms) SELECT COUNT(DISTINCT count_column) FROM (SELECT "trees"."id" AS count_column FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? LIMIT 15 OFFSET 0) subquery_for_count [["owner_id", 1]]
55706
+ SQL (0.1ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? ORDER BY "trees"."id" ASC LIMIT 1 OFFSET 0 [["owner_id", 1]]
55707
+  (0.0ms) rollback transaction
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: 2.8.6
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sandro Munda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-27 00:00:00.000000000 Z
11
+ date: 2018-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -152,6 +152,7 @@ files:
152
152
  - app/deserializers/forest_liana/resource_deserializer.rb
153
153
  - app/helpers/forest_liana/adapter_helper.rb
154
154
  - app/helpers/forest_liana/application_helper.rb
155
+ - app/helpers/forest_liana/decoration_helper.rb
155
156
  - app/models/forest_liana/model/action.rb
156
157
  - app/models/forest_liana/model/collection.rb
157
158
  - app/models/forest_liana/model/segment.rb