drawers 1.0.1 → 1.1.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/README.md +4 -2
- data/lib/drawers.rb +33 -4
- data/lib/drawers/active_support/dependency_extensions.rb +0 -17
- data/lib/drawers/resource_parts.rb +4 -5
- data/lib/drawers/version.rb +1 -1
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f4c6856bb136262cc033ca63ed44d3c77ceb1523
         | 
| 4 | 
            +
              data.tar.gz: d25727def6ac5c084d714dafc5c78d1eef7819b6
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 6a0a280c14732e505235250320d07a7e75a061e832c1a5542d346bf2f78e1cb68dea462fbcf564b26a03a64540963a22aa85c752a838a949ec376a7c8e1924b3
         | 
| 7 | 
            +
              data.tar.gz: 11a1aab740992b64b313c6d4b875907da3a4d7bd2e3f5a798ab56f7a13d6f9dca6b4eb9c2130bb91b29b3f605e784aed27cb436704fcb90cf2a99b24f7720926
         | 
    
        data/README.md
    CHANGED
    
    | @@ -3,8 +3,8 @@ Group related classes together. No more silos. | |
| 3 3 |  | 
| 4 4 | 
             
            [](https://badge.fury.io/rb/drawers)
         | 
| 5 5 | 
             
            [](https://travis-ci.org/NullVoxPopuli/drawers)
         | 
| 6 | 
            -
            [](https://codeclimate.com/github/NullVoxPopuli/drawers)
         | 
| 7 | 
            +
            [](https://codeclimate.com/github/NullVoxPopuli/drawers/coverage)
         | 
| 8 8 | 
             
            [](https://gemnasium.com/github.com/NullVoxPopuli/drawers)
         | 
| 9 9 |  | 
| 10 10 |  | 
| @@ -103,6 +103,8 @@ ActiveModelSerializers.config.serializer_lookup_chain.unshift( | |
| 103 103 | 
             
            ```
         | 
| 104 104 | 
             
            Note: as of 2016-11-04, only [this branch of AMS](https://github.com/rails-api/active_model_serializers/pull/1757) supports a confnigurable lookup chain
         | 
| 105 105 |  | 
| 106 | 
            +
            Note: as of 2016-11-16, the `master` (>= v0.10.3) branch of AMS supports configurable lookup chain.
         | 
| 107 | 
            +
             | 
| 106 108 | 
             
            ## Migrating
         | 
| 107 109 |  | 
| 108 110 | 
             
            Each part of your app can be migrated gradually (either manually or automatically).
         | 
    
        data/lib/drawers.rb
    CHANGED
    
    | @@ -3,6 +3,17 @@ | |
| 3 3 | 
             
            require 'active_support'
         | 
| 4 4 |  | 
| 5 5 | 
             
            module Drawers
         | 
| 6 | 
            +
              DEFAULT_RESOURCE_SUFFIXES = %w(
         | 
| 7 | 
            +
                Controller
         | 
| 8 | 
            +
                Forms
         | 
| 9 | 
            +
                Serializer
         | 
| 10 | 
            +
                Operations
         | 
| 11 | 
            +
                Presenters
         | 
| 12 | 
            +
                Policy
         | 
| 13 | 
            +
                Policies
         | 
| 14 | 
            +
                Services
         | 
| 15 | 
            +
              ).freeze
         | 
| 16 | 
            +
             | 
| 6 17 | 
             
              require 'drawers/active_support/dependency_extensions'
         | 
| 7 18 | 
             
              require 'drawers/action_view/path_extensions'
         | 
| 8 19 | 
             
              require 'drawers/action_view/resource_resolver'
         | 
| @@ -10,6 +21,14 @@ module Drawers | |
| 10 21 |  | 
| 11 22 | 
             
              module_function
         | 
| 12 23 |  | 
| 24 | 
            +
              def resource_suffixes
         | 
| 25 | 
            +
                @resource_suffixes || DEFAULT_RESOURCE_SUFFIXES
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              def resource_suffixes=(suffixes)
         | 
| 29 | 
            +
                @resource_suffixes = suffixes.freeze
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
             | 
| 13 32 | 
             
              def directory=(dir)
         | 
| 14 33 | 
             
                @directory = dir
         | 
| 15 34 | 
             
              end
         | 
| @@ -18,11 +37,21 @@ module Drawers | |
| 18 37 | 
             
                @directory || ''
         | 
| 19 38 | 
             
              end
         | 
| 20 39 |  | 
| 40 | 
            +
              # @api private
         | 
| 41 | 
            +
              # Join all the suffix names together with an "OR" operator
         | 
| 42 | 
            +
              def resource_suffixes_regex
         | 
| 43 | 
            +
                /(#{resource_suffixes.join('|')})/
         | 
| 44 | 
            +
              end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
              # @api private
         | 
| 47 | 
            +
              # split on any of the resource suffixes OR the ruby namespace seperator
         | 
| 48 | 
            +
              def qualified_name_split
         | 
| 49 | 
            +
                /::|#{resource_suffixes_regex}/
         | 
| 50 | 
            +
              end
         | 
| 51 | 
            +
             | 
| 21 52 | 
             
              require 'drawers/railtie'
         | 
| 53 | 
            +
             | 
| 22 54 | 
             
              ActiveSupport::Dependencies.extend Drawers::DependencyExtensions
         | 
| 23 55 | 
             
              ActionController::Base.extend Drawers::PathExtensions
         | 
| 24 | 
            -
             | 
| 25 | 
            -
              if Rails.version > '5'
         | 
| 26 | 
            -
                ActionController::API.extend Drawers::PathExtensions
         | 
| 27 | 
            -
              end
         | 
| 56 | 
            +
              ActionController::API.extend Drawers::PathExtensions if Rails.version > '5'
         | 
| 28 57 | 
             
            end
         | 
| @@ -1,25 +1,8 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 | 
             
            module Drawers
         | 
| 3 3 | 
             
              module DependencyExtensions
         | 
| 4 | 
            -
                RESOURCE_SUFFIX_NAMES = %w(
         | 
| 5 | 
            -
                  Controller
         | 
| 6 | 
            -
                  Forms
         | 
| 7 | 
            -
                  Serializer
         | 
| 8 | 
            -
                  Operations
         | 
| 9 | 
            -
                  Presenters
         | 
| 10 | 
            -
                  Policy
         | 
| 11 | 
            -
                  Policies
         | 
| 12 | 
            -
                  Services
         | 
| 13 | 
            -
                ).freeze
         | 
| 14 | 
            -
             | 
| 15 4 | 
             
                ERROR_CIRCULAR_DEPENDENCY = 'Circular dependency detected while autoloading constant'
         | 
| 16 5 |  | 
| 17 | 
            -
                # Join all the suffix names together with an "OR" operator
         | 
| 18 | 
            -
                RESOURCE_SUFFIXES = /(#{RESOURCE_SUFFIX_NAMES.join('|')})/
         | 
| 19 | 
            -
             | 
| 20 | 
            -
                # split on any of the resource suffixes OR the ruby namespace seperator
         | 
| 21 | 
            -
                QUALIFIED_NAME_SPLIT = /::|#{RESOURCE_SUFFIXES}/
         | 
| 22 | 
            -
             | 
| 23 6 | 
             
                def load_from_path(file_path, qualified_name, from_mod, const_name)
         | 
| 24 7 | 
             
                  expanded = File.expand_path(file_path)
         | 
| 25 8 | 
             
                  expanded.sub!(/\.rb\z/, '')
         | 
| @@ -1,9 +1,6 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 | 
             
            module Drawers
         | 
| 3 3 | 
             
              class ResourceParts
         | 
| 4 | 
            -
                RESOURCE_SUFFIX_NAMES = Drawers::DependencyExtensions::RESOURCE_SUFFIX_NAMES
         | 
| 5 | 
            -
                QUALIFIED_NAME_SPLIT = Drawers::DependencyExtensions::QUALIFIED_NAME_SPLIT
         | 
| 6 | 
            -
             | 
| 7 4 | 
             
                attr_reader :namespace, :resource_name,
         | 
| 8 5 | 
             
                  :resource_type, :named_resource_type,
         | 
| 9 6 | 
             
                  :class_path
         | 
| @@ -80,7 +77,9 @@ module Drawers | |
| 80 77 | 
             
                # Api::V2::PostOperations::Update
         | 
| 81 78 | 
             
                # => Api, V2, Post, Operations, Update
         | 
| 82 79 | 
             
                def qualified_parts
         | 
| 83 | 
            -
                  @qualified_parts ||= @qualified_name | 
| 80 | 
            +
                  @qualified_parts ||= @qualified_name
         | 
| 81 | 
            +
                                       .split(Drawers.qualified_name_split)
         | 
| 82 | 
            +
                                       .reject(&:blank?)
         | 
| 84 83 | 
             
                end
         | 
| 85 84 |  | 
| 86 85 | 
             
                # based on the position of of the resource type name,
         | 
| @@ -91,7 +90,7 @@ module Drawers | |
| 91 90 | 
             
                # Given: Api, V2, Post, Operations, Update
         | 
| 92 91 | 
             
                #                           ^ index_of_resource_type (3)
         | 
| 93 92 | 
             
                def index_of_resource_type
         | 
| 94 | 
            -
                  @index_of_resource_type ||= qualified_parts.index { |x|  | 
| 93 | 
            +
                  @index_of_resource_type ||= qualified_parts.index { |x| Drawers.resource_suffixes.include?(x) }
         | 
| 95 94 | 
             
                end
         | 
| 96 95 | 
             
              end
         | 
| 97 96 | 
             
            end
         | 
    
        data/lib/drawers/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: drawers
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0 | 
| 4 | 
            +
              version: 1.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - L. Preston Sego III
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017- | 
| 11 | 
            +
            date: 2017-08-02 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         | 
| @@ -172,8 +172,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 172 172 | 
             
                  version: '0'
         | 
| 173 173 | 
             
            requirements: []
         | 
| 174 174 | 
             
            rubyforge_project: 
         | 
| 175 | 
            -
            rubygems_version: 2. | 
| 175 | 
            +
            rubygems_version: 2.6.8
         | 
| 176 176 | 
             
            signing_key: 
         | 
| 177 177 | 
             
            specification_version: 4
         | 
| 178 | 
            -
            summary: Drawers-1.0 | 
| 178 | 
            +
            summary: Drawers-1.1.0
         | 
| 179 179 | 
             
            test_files: []
         |