forest_liana 1.9.8 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/forest_liana/associations_controller.rb +12 -2
- data/app/controllers/forest_liana/resources_controller.rb +14 -5
- data/app/controllers/forest_liana/router.rb +1 -2
- data/app/models/forest_liana/model/collection.rb +3 -1
- data/app/serializers/forest_liana/collection_serializer.rb +1 -0
- data/app/services/forest_liana/base_getter.rb +2 -4
- data/app/services/forest_liana/has_many_getter.rb +2 -3
- data/app/services/forest_liana/resources_getter.rb +8 -8
- data/app/services/forest_liana/schema_adapter.rb +35 -6
- data/app/services/forest_liana/schema_utils.rb +17 -12
- data/lib/forest_liana.rb +12 -2
- data/lib/forest_liana/bootstraper.rb +31 -7
- data/lib/forest_liana/collection.rb +27 -3
- data/lib/forest_liana/version.rb +1 -1
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +22100 -0
- data/test/services/forest_liana/has_many_getter_test.rb +2 -2
- data/test/services/forest_liana/resource_updater_test.rb +5 -5
- data/test/services/forest_liana/resources_getter_test.rb +5 -5
- data/test/services/forest_liana/schema_adapter_test.rb +5 -5
- metadata +2 -2
| @@ -2,12 +2,12 @@ module ForestLiana | |
| 2 2 | 
             
              class ResourcesGetterTest < ActiveSupport::TestCase
         | 
| 3 3 |  | 
| 4 4 | 
             
                collectionOwner = ForestLiana::Model::Collection.new({
         | 
| 5 | 
            -
                  name: ' | 
| 5 | 
            +
                  name: 'Owner',
         | 
| 6 6 | 
             
                  fields: []
         | 
| 7 7 | 
             
                })
         | 
| 8 8 |  | 
| 9 9 | 
             
                collectionTree = ForestLiana::Model::Collection.new({
         | 
| 10 | 
            -
                  name: ' | 
| 10 | 
            +
                  name: 'Tree',
         | 
| 11 11 | 
             
                  fields: []
         | 
| 12 12 | 
             
                })
         | 
| 13 13 |  | 
| @@ -2,7 +2,7 @@ module ForestLiana | |
| 2 2 | 
             
              class ResourceUpdaterTest < ActiveSupport::TestCase
         | 
| 3 3 |  | 
| 4 4 | 
             
                collection = ForestLiana::Model::Collection.new({
         | 
| 5 | 
            -
                  name: ' | 
| 5 | 
            +
                  name: 'SerializeField',
         | 
| 6 6 | 
             
                  fields: [{
         | 
| 7 7 | 
             
                    type: 'String',
         | 
| 8 8 | 
             
                    field: 'field'
         | 
| @@ -17,7 +17,7 @@ module ForestLiana | |
| 17 17 | 
             
                    id: 1,
         | 
| 18 18 | 
             
                    data: {
         | 
| 19 19 | 
             
                      id: 1,
         | 
| 20 | 
            -
                      type: " | 
| 20 | 
            +
                      type: "SerializeField",
         | 
| 21 21 | 
             
                      attributes: {}
         | 
| 22 22 | 
             
                    }
         | 
| 23 23 | 
             
                  )
         | 
| @@ -33,7 +33,7 @@ module ForestLiana | |
| 33 33 | 
             
                    id: 1,
         | 
| 34 34 | 
             
                    data: {
         | 
| 35 35 | 
             
                      id: 1,
         | 
| 36 | 
            -
                      type: " | 
| 36 | 
            +
                      type: "SerializeField",
         | 
| 37 37 | 
             
                      attributes: {
         | 
| 38 38 | 
             
                        field: nil
         | 
| 39 39 | 
             
                      }
         | 
| @@ -51,7 +51,7 @@ module ForestLiana | |
| 51 51 | 
             
                    id: 1,
         | 
| 52 52 | 
             
                    data: {
         | 
| 53 53 | 
             
                      id: 1,
         | 
| 54 | 
            -
                      type: " | 
| 54 | 
            +
                      type: "SerializeField",
         | 
| 55 55 | 
             
                      attributes: {
         | 
| 56 56 | 
             
                        field: "Lucas"
         | 
| 57 57 | 
             
                      }
         | 
| @@ -70,7 +70,7 @@ module ForestLiana | |
| 70 70 | 
             
                    id: 1,
         | 
| 71 71 | 
             
                    data: {
         | 
| 72 72 | 
             
                      id: 1,
         | 
| 73 | 
            -
                      type: " | 
| 73 | 
            +
                      type: "SerializeField",
         | 
| 74 74 | 
             
                      attributes: {
         | 
| 75 75 | 
             
                        field: "[\"test\", \"test\"]"
         | 
| 76 76 | 
             
                      }
         | 
| @@ -84,7 +84,7 @@ module ForestLiana | |
| 84 84 |  | 
| 85 85 | 
             
                test 'Filter on ambiguous field' do
         | 
| 86 86 | 
             
                  getter = ResourcesGetter.new(Tree, {
         | 
| 87 | 
            -
                    fields: { ' | 
| 87 | 
            +
                    fields: { 'Tree' => 'id' },
         | 
| 88 88 | 
             
                    page: { size: 10, number: 1 },
         | 
| 89 89 | 
             
                    filter: {
         | 
| 90 90 | 
             
                      'created_at' => '>2015-06-18 08:00:00',
         | 
| @@ -106,7 +106,7 @@ module ForestLiana | |
| 106 106 |  | 
| 107 107 | 
             
                test 'Filter before x days' do
         | 
| 108 108 | 
             
                  getter = ResourcesGetter.new(Tree, {
         | 
| 109 | 
            -
                    fields: { ' | 
| 109 | 
            +
                    fields: { 'Tree' => 'id' },
         | 
| 110 110 | 
             
                    page: { size: 10, number: 1 },
         | 
| 111 111 | 
             
                    filter: {
         | 
| 112 112 | 
             
                      'created_at' => '$3HoursBefore',
         | 
| @@ -127,7 +127,7 @@ module ForestLiana | |
| 127 127 |  | 
| 128 128 | 
             
                test 'Sort on an ambiguous field name with a filter' do
         | 
| 129 129 | 
             
                  getter = ResourcesGetter.new(Tree, {
         | 
| 130 | 
            -
                    fields: { ' | 
| 130 | 
            +
                    fields: { 'Tree' => 'id' },
         | 
| 131 131 | 
             
                    page: { size: 10, number: 1 },
         | 
| 132 132 | 
             
                    sort: '-name',
         | 
| 133 133 | 
             
                    filter: { 'owner:name' => 'Arnaud Besnier' },
         | 
| @@ -161,7 +161,7 @@ module ForestLiana | |
| 161 161 |  | 
| 162 162 | 
             
                test 'Filter on an updated_at field of an associated collection' do
         | 
| 163 163 | 
             
                  getter = ResourcesGetter.new(Tree, {
         | 
| 164 | 
            -
                    fields: { ' | 
| 164 | 
            +
                    fields: { 'Tree' => 'id' },
         | 
| 165 165 | 
             
                    page: { size: 10, number: 1 },
         | 
| 166 166 | 
             
                    filter: { 'owner:updated_at' => '$previousYear' },
         | 
| 167 167 | 
             
                    filterType: 'and',
         | 
| @@ -178,7 +178,7 @@ module ForestLiana | |
| 178 178 |  | 
| 179 179 | 
             
                test 'Filter equal on an updated_at field of an associated collection' do
         | 
| 180 180 | 
             
                  getter = ResourcesGetter.new(Tree, {
         | 
| 181 | 
            -
                    fields: { ' | 
| 181 | 
            +
                    fields: { 'Tree' => 'id' },
         | 
| 182 182 | 
             
                    page: { size: 10, number: 1 },
         | 
| 183 183 | 
             
                    filter: {
         | 
| 184 184 | 
             
                      'owner:updated_at' => 'Sat Jul 02 2016 11:52:00 GMT-0400 (EDT)',
         | 
| @@ -40,7 +40,7 @@ module ForestLiana | |
| 40 40 | 
             
                  assert schema.fields.include?({
         | 
| 41 41 | 
             
                    field: :has_one_field,
         | 
| 42 42 | 
             
                    type: 'Number',
         | 
| 43 | 
            -
                    reference: ' | 
| 43 | 
            +
                    reference: 'HasOneField.id',
         | 
| 44 44 | 
             
                    inverseOf: 'belongs_to_field'
         | 
| 45 45 | 
             
                  })
         | 
| 46 46 | 
             
                end
         | 
| @@ -50,7 +50,7 @@ module ForestLiana | |
| 50 50 | 
             
                  assert schema.fields.include?({
         | 
| 51 51 | 
             
                    field: 'belongs_to_field',
         | 
| 52 52 | 
             
                    type: 'Number',
         | 
| 53 | 
            -
                    reference: ' | 
| 53 | 
            +
                    reference: 'BelongsToField.id',
         | 
| 54 54 | 
             
                    inverseOf: 'has_one_field',
         | 
| 55 55 | 
             
                    "is-filterable": true
         | 
| 56 56 | 
             
                  })
         | 
| @@ -61,7 +61,7 @@ module ForestLiana | |
| 61 61 | 
             
                  assert schema.fields.include?({
         | 
| 62 62 | 
             
                    field: 'belongs_to_fields',
         | 
| 63 63 | 
             
                    type: ['Number'],
         | 
| 64 | 
            -
                    reference: ' | 
| 64 | 
            +
                    reference: 'BelongsToField.id',
         | 
| 65 65 | 
             
                    inverseOf: 'has_many_field',
         | 
| 66 66 | 
             
                    "is-filterable": false
         | 
| 67 67 | 
             
                  })
         | 
| @@ -72,7 +72,7 @@ module ForestLiana | |
| 72 72 | 
             
                  assert schema.fields.include?({
         | 
| 73 73 | 
             
                    field: 'foo',
         | 
| 74 74 | 
             
                    type: ['Number'],
         | 
| 75 | 
            -
                    reference: ' | 
| 75 | 
            +
                    reference: 'BelongsToField.id',
         | 
| 76 76 | 
             
                    inverseOf: 'has_many_class_name_field',
         | 
| 77 77 | 
             
                    "is-filterable": false
         | 
| 78 78 | 
             
                  })
         | 
| @@ -83,7 +83,7 @@ module ForestLiana | |
| 83 83 | 
             
                  assert schema.fields.include?({
         | 
| 84 84 | 
             
                    field: :foo,
         | 
| 85 85 | 
             
                    type: 'Number',
         | 
| 86 | 
            -
                    reference: ' | 
| 86 | 
            +
                    reference: 'HasOneField.id',
         | 
| 87 87 | 
             
                    inverseOf: 'belongs_to_class_name_field'
         | 
| 88 88 | 
             
                  })
         | 
| 89 89 | 
             
                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:  | 
| 4 | 
            +
              version: 2.0.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: 2017-11- | 
| 11 | 
            +
            date: 2017-11-24 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         |