forest_liana 1.0.0.pre.beta.4 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/app/controllers/forest_liana/apimaps_controller.rb +5 -7
 - data/app/controllers/forest_liana/resources_controller.rb +4 -16
 - data/app/deserializers/forest_liana/resource_deserializer.rb +4 -4
 - data/app/serializers/forest_liana/serializer_factory.rb +26 -15
 - data/app/services/forest_liana/resources_getter.rb +2 -3
 - data/app/services/forest_liana/schema_adapter.rb +29 -13
 - data/app/services/forest_liana/schema_utils.rb +28 -0
 - data/app/services/forest_liana/search_query_builder.rb +1 -2
 - data/config/routes.rb +6 -6
 - data/lib/forest_liana/engine.rb +11 -4
 - data/lib/forest_liana/version.rb +1 -1
 - data/test/dummy/app/models/belongs_to_field.rb +2 -0
 - data/test/dummy/app/models/has_one_field.rb +1 -0
 - data/test/dummy/db/test.sqlite3 +0 -0
 - data/test/dummy/log/test.log +1062 -195
 - data/test/services/forest_liana/schema_adapter_test.rb +12 -10
 - metadata +5 -8
 - data/config/initializers/rails32_http_patch_support_initializer.rb +0 -1
 - data/lib/patches/add_patch_method.rb +0 -124
 - data/test/dummy/db/development.sqlite3 +0 -0
 
| 
         @@ -40,7 +40,8 @@ module ForestLiana 
     | 
|
| 
       40 
40 
     | 
    
         
             
                  assert schema.fields.include?({
         
     | 
| 
       41 
41 
     | 
    
         
             
                    field: 'has_one_field',
         
     | 
| 
       42 
42 
     | 
    
         
             
                    type: 'Number',
         
     | 
| 
       43 
     | 
    
         
            -
                    reference: 'has_one_fields.id'
         
     | 
| 
      
 43 
     | 
    
         
            +
                    reference: 'has_one_fields.id',
         
     | 
| 
      
 44 
     | 
    
         
            +
                    inverseOf: 'belongs_to_field'
         
     | 
| 
       44 
45 
     | 
    
         
             
                  })
         
     | 
| 
       45 
46 
     | 
    
         
             
                end
         
     | 
| 
       46 
47 
     | 
    
         | 
| 
         @@ -64,15 +65,6 @@ module ForestLiana 
     | 
|
| 
       64 
65 
     | 
    
         
             
                  })
         
     | 
| 
       65 
66 
     | 
    
         
             
                end
         
     | 
| 
       66 
67 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
                test 'belongsTo relationhip with specified class_name' do
         
     | 
| 
       68 
     | 
    
         
            -
                  schema = SchemaAdapter.new(BelongsToClassNameField).perform
         
     | 
| 
       69 
     | 
    
         
            -
                  assert schema.fields.include?({
         
     | 
| 
       70 
     | 
    
         
            -
                    field: 'foo',
         
     | 
| 
       71 
     | 
    
         
            -
                    type: 'Number',
         
     | 
| 
       72 
     | 
    
         
            -
                    reference: 'has_one_fields.id'
         
     | 
| 
       73 
     | 
    
         
            -
                  })
         
     | 
| 
       74 
     | 
    
         
            -
                end
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
68 
     | 
    
         
             
                test 'hasMany relationhip with specified class_name' do
         
     | 
| 
       77 
69 
     | 
    
         
             
                  schema = SchemaAdapter.new(HasManyClassNameField).perform
         
     | 
| 
       78 
70 
     | 
    
         
             
                  assert schema.fields.include?({
         
     | 
| 
         @@ -83,5 +75,15 @@ module ForestLiana 
     | 
|
| 
       83 
75 
     | 
    
         
             
                  })
         
     | 
| 
       84 
76 
     | 
    
         
             
                end
         
     | 
| 
       85 
77 
     | 
    
         | 
| 
      
 78 
     | 
    
         
            +
                test 'belongsTo relationhip with specified class_name' do
         
     | 
| 
      
 79 
     | 
    
         
            +
                  schema = SchemaAdapter.new(BelongsToClassNameField).perform
         
     | 
| 
      
 80 
     | 
    
         
            +
                  assert schema.fields.include?({
         
     | 
| 
      
 81 
     | 
    
         
            +
                    field: 'foo',
         
     | 
| 
      
 82 
     | 
    
         
            +
                    type: 'Number',
         
     | 
| 
      
 83 
     | 
    
         
            +
                    reference: 'has_one_fields.id',
         
     | 
| 
      
 84 
     | 
    
         
            +
                    inverseOf: 'belongs_to_class_name_field'
         
     | 
| 
      
 85 
     | 
    
         
            +
                  })
         
     | 
| 
      
 86 
     | 
    
         
            +
                end
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
       86 
88 
     | 
    
         
             
              end
         
     | 
| 
       87 
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: 1.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.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: 2015-08- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-08-11 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rails
         
     | 
| 
         @@ -90,16 +90,15 @@ files: 
     | 
|
| 
       90 
90 
     | 
    
         
             
            - app/services/forest_liana/resource_getter.rb
         
     | 
| 
       91 
91 
     | 
    
         
             
            - app/services/forest_liana/resources_getter.rb
         
     | 
| 
       92 
92 
     | 
    
         
             
            - app/services/forest_liana/schema_adapter.rb
         
     | 
| 
      
 93 
     | 
    
         
            +
            - app/services/forest_liana/schema_utils.rb
         
     | 
| 
       93 
94 
     | 
    
         
             
            - app/services/forest_liana/search_query_builder.rb
         
     | 
| 
       94 
95 
     | 
    
         
             
            - app/views/layouts/forest_liana/application.html.erb
         
     | 
| 
       95 
96 
     | 
    
         
             
            - config/initializers/mimetype.rb
         
     | 
| 
       96 
     | 
    
         
            -
            - config/initializers/rails32_http_patch_support_initializer.rb
         
     | 
| 
       97 
97 
     | 
    
         
             
            - config/routes.rb
         
     | 
| 
       98 
98 
     | 
    
         
             
            - lib/forest_liana.rb
         
     | 
| 
       99 
99 
     | 
    
         
             
            - lib/forest_liana/engine.rb
         
     | 
| 
       100 
100 
     | 
    
         
             
            - lib/forest_liana/version.rb
         
     | 
| 
       101 
101 
     | 
    
         
             
            - lib/generators/forest_liana/install_generator.rb
         
     | 
| 
       102 
     | 
    
         
            -
            - lib/patches/add_patch_method.rb
         
     | 
| 
       103 
102 
     | 
    
         
             
            - lib/tasks/forest_tasks.rake
         
     | 
| 
       104 
103 
     | 
    
         
             
            - test/dummy/README.rdoc
         
     | 
| 
       105 
104 
     | 
    
         
             
            - test/dummy/Rakefile
         
     | 
| 
         @@ -144,7 +143,6 @@ files: 
     | 
|
| 
       144 
143 
     | 
    
         
             
            - test/dummy/config/locales/en.yml
         
     | 
| 
       145 
144 
     | 
    
         
             
            - test/dummy/config/routes.rb
         
     | 
| 
       146 
145 
     | 
    
         
             
            - test/dummy/config/secrets.yml
         
     | 
| 
       147 
     | 
    
         
            -
            - test/dummy/db/development.sqlite3
         
     | 
| 
       148 
146 
     | 
    
         
             
            - test/dummy/db/migrate/20150608130516_create_date_field.rb
         
     | 
| 
       149 
147 
     | 
    
         
             
            - test/dummy/db/migrate/20150608131430_create_integer_field.rb
         
     | 
| 
       150 
148 
     | 
    
         
             
            - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
         
     | 
| 
         @@ -184,9 +182,9 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       184 
182 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       185 
183 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       186 
184 
     | 
    
         
             
              requirements:
         
     | 
| 
       187 
     | 
    
         
            -
              - - " 
     | 
| 
      
 185 
     | 
    
         
            +
              - - ">="
         
     | 
| 
       188 
186 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       189 
     | 
    
         
            -
                  version:  
     | 
| 
      
 187 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
       190 
188 
     | 
    
         
             
            requirements: []
         
     | 
| 
       191 
189 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       192 
190 
     | 
    
         
             
            rubygems_version: 2.4.5
         
     | 
| 
         @@ -235,7 +233,6 @@ test_files: 
     | 
|
| 
       235 
233 
     | 
    
         
             
            - test/dummy/config/routes.rb
         
     | 
| 
       236 
234 
     | 
    
         
             
            - test/dummy/config/secrets.yml
         
     | 
| 
       237 
235 
     | 
    
         
             
            - test/dummy/config.ru
         
     | 
| 
       238 
     | 
    
         
            -
            - test/dummy/db/development.sqlite3
         
     | 
| 
       239 
236 
     | 
    
         
             
            - test/dummy/db/migrate/20150608130516_create_date_field.rb
         
     | 
| 
       240 
237 
     | 
    
         
             
            - test/dummy/db/migrate/20150608131430_create_integer_field.rb
         
     | 
| 
       241 
238 
     | 
    
         
             
            - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
         
     | 
| 
         @@ -1 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require_dependency ForestLiana::Engine.root.join("lib/patches/add_patch_method").to_s
         
     | 
| 
         @@ -1,124 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # Rails 3.2 support for HTTP PATCH.
         
     | 
| 
       2 
     | 
    
         
            -
            if Rails::VERSION::MAJOR < 4
         
     | 
| 
       3 
     | 
    
         
            -
            # see http://weblog.rubyonrails.org/2012/2/26/edge-rails-patch-is-the-new-primary-http-method-for-updates/
         
     | 
| 
       4 
     | 
    
         
            -
            # https://github.com/rails/rails/pull/505
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
            ActionDispatch::Routing::Mapper::HttpHelpers.module_eval do
         
     | 
| 
       7 
     | 
    
         
            -
              # Define a route that only recognizes HTTP PATCH.
         
     | 
| 
       8 
     | 
    
         
            -
              # For supported arguments, see <tt>Base#match</tt>.
         
     | 
| 
       9 
     | 
    
         
            -
              #
         
     | 
| 
       10 
     | 
    
         
            -
              # Example:
         
     | 
| 
       11 
     | 
    
         
            -
              #
         
     | 
| 
       12 
     | 
    
         
            -
              # patch 'bacon', :to => 'food#bacon'
         
     | 
| 
       13 
     | 
    
         
            -
              def patch(*args, &block)
         
     | 
| 
       14 
     | 
    
         
            -
                map_method(:patch, *args, &block)
         
     | 
| 
       15 
     | 
    
         
            -
              end
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
              def put(*args, &block)
         
     | 
| 
       18 
     | 
    
         
            -
                map_method(:put, *args, &block)
         
     | 
| 
       19 
     | 
    
         
            -
                map_method(:patch, *args, &block)
         
     | 
| 
       20 
     | 
    
         
            -
              end
         
     | 
| 
       21 
     | 
    
         
            -
            end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
            # Be very conservative not to monkey-patch any methods until
         
     | 
| 
       24 
     | 
    
         
            -
            # the relevant files are loaded.
         
     | 
| 
       25 
     | 
    
         
            -
            ActiveSupport.on_load(:action_controller) do
         
     | 
| 
       26 
     | 
    
         
            -
              ActionDispatch::Request.module_eval do
         
     | 
| 
       27 
     | 
    
         
            -
                # Is this a PATCH request?
         
     | 
| 
       28 
     | 
    
         
            -
                # Equivalent to <tt>request.request_method == :patch</tt>.
         
     | 
| 
       29 
     | 
    
         
            -
                def patch?
         
     | 
| 
       30 
     | 
    
         
            -
                  HTTP_METHOD_LOOKUP[request_method] == :patch
         
     | 
| 
       31 
     | 
    
         
            -
                end
         
     | 
| 
       32 
     | 
    
         
            -
              end
         
     | 
| 
       33 
     | 
    
         
            -
              module ActionDispatch::Routing
         
     | 
| 
       34 
     | 
    
         
            -
                HTTP_METHODS << :patch unless HTTP_METHODS.include?(:patch)
         
     | 
| 
       35 
     | 
    
         
            -
              end
         
     | 
| 
       36 
     | 
    
         
            -
              ActionDispatch::Integration::RequestHelpers.module_eval do
         
     | 
| 
       37 
     | 
    
         
            -
                # Performs a PATCH request with the given parameters. See +#get+ for more
         
     | 
| 
       38 
     | 
    
         
            -
                # details.
         
     | 
| 
       39 
     | 
    
         
            -
                def patch(path, parameters = nil, headers = nil)
         
     | 
| 
       40 
     | 
    
         
            -
                  process :patch, path, parameters, headers
         
     | 
| 
       41 
     | 
    
         
            -
                end
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
                # Performs a PATCH request, following any subsequent redirect.
         
     | 
| 
       44 
     | 
    
         
            -
                # See +request_via_redirect+ for more information.
         
     | 
| 
       45 
     | 
    
         
            -
                def patch_via_redirect(path, parameters = nil, headers = nil)
         
     | 
| 
       46 
     | 
    
         
            -
                  request_via_redirect(:patch, path, parameters, headers)
         
     | 
| 
       47 
     | 
    
         
            -
                end
         
     | 
| 
       48 
     | 
    
         
            -
              end
         
     | 
| 
       49 
     | 
    
         
            -
              ActionDispatch::Integration::Runner.class_eval do
         
     | 
| 
       50 
     | 
    
         
            -
                %w(patch).each do |method|
         
     | 
| 
       51 
     | 
    
         
            -
                  define_method(method) do |*args|
         
     | 
| 
       52 
     | 
    
         
            -
                    reset! unless integration_session
         
     | 
| 
       53 
     | 
    
         
            -
                    # reset the html_document variable, but only for new get/post calls
         
     | 
| 
       54 
     | 
    
         
            -
                    @html_document = nil unless method.in?(["cookies", "assigns"])
         
     | 
| 
       55 
     | 
    
         
            -
                    integration_session.__send__(method, *args).tap do
         
     | 
| 
       56 
     | 
    
         
            -
                      copy_session_variables!
         
     | 
| 
       57 
     | 
    
         
            -
                    end
         
     | 
| 
       58 
     | 
    
         
            -
                  end
         
     | 
| 
       59 
     | 
    
         
            -
                end
         
     | 
| 
       60 
     | 
    
         
            -
              end
         
     | 
| 
       61 
     | 
    
         
            -
              module ActionController::TestCase::Behavior
         
     | 
| 
       62 
     | 
    
         
            -
                def patch(action, parameters = nil, session = nil, flash = nil)
         
     | 
| 
       63 
     | 
    
         
            -
                  process(action, parameters, session, flash, "PATCH")
         
     | 
| 
       64 
     | 
    
         
            -
                end
         
     | 
| 
       65 
     | 
    
         
            -
              end
         
     | 
| 
       66 
     | 
    
         
            -
              class ActionController::Responder
         
     | 
| 
       67 
     | 
    
         
            -
                ACTIONS_FOR_VERBS.update(:patch => :edit)
         
     | 
| 
       68 
     | 
    
         
            -
                delegate :patch?, :to => :request
         
     | 
| 
       69 
     | 
    
         
            -
              end
         
     | 
| 
       70 
     | 
    
         
            -
              ActionView::Helpers::FormHelper.module_eval do
         
     | 
| 
       71 
     | 
    
         
            -
                # = Action View Form Helpers
         
     | 
| 
       72 
     | 
    
         
            -
                def apply_form_for_options!(record, object, options) #:nodoc:
         
     | 
| 
       73 
     | 
    
         
            -
                  object = convert_to_model(object)
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                  as = options[:as]
         
     | 
| 
       76 
     | 
    
         
            -
                  action, method = object.respond_to?(:persisted?) && object.persisted? ? [:edit, :patch] : [:new, :post]
         
     | 
| 
       77 
     | 
    
         
            -
                  options[:html].reverse_merge!(
         
     | 
| 
       78 
     | 
    
         
            -
                    :class  => as ? "#{action}_#{as}" : dom_class(object, action),
         
     | 
| 
       79 
     | 
    
         
            -
                    :id     => as ? "#{action}_#{as}" : [options[:namespace], dom_id(object, action)].compact.join("_").presence,
         
     | 
| 
       80 
     | 
    
         
            -
                    :method => method
         
     | 
| 
       81 
     | 
    
         
            -
                  )
         
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
                  options[:url] ||= polymorphic_path(record, :format => options.delete(:format))
         
     | 
| 
       84 
     | 
    
         
            -
                end
         
     | 
| 
       85 
     | 
    
         
            -
                private :apply_form_for_options!
         
     | 
| 
       86 
     | 
    
         
            -
              end
         
     | 
| 
       87 
     | 
    
         
            -
              module ActionDispatch::Routing::Mapper::Resources
         
     | 
| 
       88 
     | 
    
         
            -
                class SingletonResource
         
     | 
| 
       89 
     | 
    
         
            -
                  def resource(*resources, &block)
         
     | 
| 
       90 
     | 
    
         
            -
                    options = resources.extract_options!.dup
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
                    if apply_common_behavior_for(:resource, resources, options, &block)
         
     | 
| 
       93 
     | 
    
         
            -
                      return self
         
     | 
| 
       94 
     | 
    
         
            -
                    end
         
     | 
| 
       95 
     | 
    
         
            -
             
     | 
| 
       96 
     | 
    
         
            -
                    resource_scope(:resource, SingletonResource.new(resources.pop, options)) do
         
     | 
| 
       97 
     | 
    
         
            -
                      yield if block_given?
         
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
                      collection do
         
     | 
| 
       100 
     | 
    
         
            -
                        post :create
         
     | 
| 
       101 
     | 
    
         
            -
                      end if parent_resource.actions.include?(:create)
         
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
                      new do
         
     | 
| 
       104 
     | 
    
         
            -
                        get :new
         
     | 
| 
       105 
     | 
    
         
            -
                      end if parent_resource.actions.include?(:new)
         
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
       107 
     | 
    
         
            -
                      member do
         
     | 
| 
       108 
     | 
    
         
            -
                        get    :edit if parent_resource.actions.include?(:edit)
         
     | 
| 
       109 
     | 
    
         
            -
                        get    :show if parent_resource.actions.include?(:show)
         
     | 
| 
       110 
     | 
    
         
            -
                        if parent_resource.actions.include?(:update)
         
     | 
| 
       111 
     | 
    
         
            -
                           # all that for this PATCH
         
     | 
| 
       112 
     | 
    
         
            -
                           patch  :update
         
     | 
| 
       113 
     | 
    
         
            -
                           put    :update
         
     | 
| 
       114 
     | 
    
         
            -
                        end
         
     | 
| 
       115 
     | 
    
         
            -
                        delete :destroy if parent_resource.actions.include?(:destroy)
         
     | 
| 
       116 
     | 
    
         
            -
                      end
         
     | 
| 
       117 
     | 
    
         
            -
                    end
         
     | 
| 
       118 
     | 
    
         
            -
             
     | 
| 
       119 
     | 
    
         
            -
                    self
         
     | 
| 
       120 
     | 
    
         
            -
                  end
         
     | 
| 
       121 
     | 
    
         
            -
                end
         
     | 
| 
       122 
     | 
    
         
            -
              end
         
     | 
| 
       123 
     | 
    
         
            -
            end
         
     | 
| 
       124 
     | 
    
         
            -
            end
         
     | 
| 
         Binary file 
     |