drawers 0.9.0 → 1.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/README.md +10 -2
- data/lib/drawers/active_support/dependency_extensions.rb +25 -8
- data/lib/drawers/version.rb +1 -1
- metadata +5 -5
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 547bbfdc39e1cc5b38254434164b02117a230183
         | 
| 4 | 
            +
              data.tar.gz: fc3935786da5d374eea5396f311b38013e8270cb
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: b5306dd6851fc5657187a102ab3440e479ceb4aec382a965014515b73afed89d4bbfd94f510296f0a43b07d5ae2d7147a097320364f8472a4ad45b94ffd02414
         | 
| 7 | 
            +
              data.tar.gz: 374d3683b4ff1d5defe22d287e60ad73e42099bbc38c78224395dafd9c3a63162f7590b36322c0bca5a74250afb84713ac8e07971a08ba50fe259d94de4c236a
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 | 
            -
            #  | 
| 2 | 
            -
            Group  | 
| 1 | 
            +
            # Drawers
         | 
| 2 | 
            +
            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)
         | 
| @@ -127,3 +127,11 @@ Sets the folder for the new structure to be in the `app/pods` directory if you w | |
| 127 127 | 
             
            Feel free to open an issue, or fork and make a pull request.
         | 
| 128 128 |  | 
| 129 129 | 
             
            All discussion is welcome :-)
         | 
| 130 | 
            +
             | 
| 131 | 
            +
             | 
| 132 | 
            +
            ---------------
         | 
| 133 | 
            +
             | 
| 134 | 
            +
            The gem name 'Drawers' was provided by @bartboy011.
         | 
| 135 | 
            +
            Thanks @bartboy011!
         | 
| 136 | 
            +
             | 
| 137 | 
            +
            The previous name of this gem was Rails Module Unification -- which, while a homage to its inspiration, Ember's Module Unification app architecture, it's quite a mouthful, and doesn't exactly make for a good gem name.
         | 
| @@ -3,6 +3,7 @@ module Drawers | |
| 3 3 | 
             
              module DependencyExtensions
         | 
| 4 4 | 
             
                RESOURCE_SUFFIX_NAMES = %w(
         | 
| 5 5 | 
             
                  Controller
         | 
| 6 | 
            +
                  Form
         | 
| 6 7 | 
             
                  Serializer
         | 
| 7 8 | 
             
                  Operations
         | 
| 8 9 | 
             
                  Presenters
         | 
| @@ -11,6 +12,8 @@ module Drawers | |
| 11 12 | 
             
                  Services
         | 
| 12 13 | 
             
                ).freeze
         | 
| 13 14 |  | 
| 15 | 
            +
                ERROR_CIRCULAR_DEPENDENCY = 'Circular dependency detected while autoloading constant'
         | 
| 16 | 
            +
             | 
| 14 17 | 
             
                # Join all the suffix names together with an "OR" operator
         | 
| 15 18 | 
             
                RESOURCE_SUFFIXES = /(#{RESOURCE_SUFFIX_NAMES.join('|')})/
         | 
| 16 19 |  | 
| @@ -21,16 +24,14 @@ module Drawers | |
| 21 24 | 
             
                  expanded = File.expand_path(file_path)
         | 
| 22 25 | 
             
                  expanded.sub!(/\.rb\z/, '')
         | 
| 23 26 |  | 
| 24 | 
            -
                  if loading.include?(expanded)
         | 
| 25 | 
            -
                    raise "Circular dependency detected while autoloading constant #{qualified_name}"
         | 
| 26 | 
            -
                  else
         | 
| 27 | 
            -
                    require_or_load(expanded, qualified_name)
         | 
| 28 | 
            -
                    unless from_mod.const_defined?(const_name, false)
         | 
| 29 | 
            -
                      raise LoadError, "Unable to autoload constant #{qualified_name}, expected #{file_path} to define it"
         | 
| 30 | 
            -
                    end
         | 
| 27 | 
            +
                  raise "#{ERROR_CIRCULAR_DEPENDENCY} #{qualified_name}" if loading.include?(expanded)
         | 
| 31 28 |  | 
| 32 | 
            -
             | 
| 29 | 
            +
                  require_or_load(expanded, qualified_name)
         | 
| 30 | 
            +
                  unless from_mod.const_defined?(const_name, false)
         | 
| 31 | 
            +
                    raise LoadError, "Unable to autoload constant #{qualified_name}, expected #{file_path} to define it"
         | 
| 33 32 | 
             
                  end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                  from_mod.const_get(const_name)
         | 
| 34 35 | 
             
                end
         | 
| 35 36 |  | 
| 36 37 | 
             
                # A look for the possible places that various qualified names could be
         | 
| @@ -105,9 +106,25 @@ module Drawers | |
| 105 106 | 
             
                    break if file_path.present?
         | 
| 106 107 | 
             
                  end
         | 
| 107 108 |  | 
| 109 | 
            +
                  # Note that sometimes, the resource_type path may only be defined in a
         | 
| 110 | 
            +
                  # resource type folder
         | 
| 111 | 
            +
                  # So, look for the first file within the resource type folder
         | 
| 112 | 
            +
                  # because of ruby namespacing conventions if there is a file in the folder,
         | 
| 113 | 
            +
                  # it MUST define the namespace
         | 
| 114 | 
            +
                  file_path = path_for_first_file_in(path_options.last) unless file_path
         | 
| 115 | 
            +
             | 
| 108 116 | 
             
                  file_path
         | 
| 109 117 | 
             
                end
         | 
| 110 118 |  | 
| 119 | 
            +
                def path_for_first_file_in(path)
         | 
| 120 | 
            +
                  return if path.blank?
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                  path_in_app = "#{Rails.root}/app/resources/#{path.pluralize}"
         | 
| 123 | 
            +
                  return unless File.directory?(path_in_app)
         | 
| 124 | 
            +
             | 
| 125 | 
            +
                  Dir.glob("#{path_in_app}/*.rb").first
         | 
| 126 | 
            +
                end
         | 
| 127 | 
            +
             | 
| 111 128 | 
             
                def to_path(*args)
         | 
| 112 129 | 
             
                  args.flatten.reject(&:blank?).map(&:underscore).join('/')
         | 
| 113 130 | 
             
                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: 0. | 
| 4 | 
            +
              version: 1.0.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:  | 
| 11 | 
            +
            date: 2017-01-22 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         | 
| @@ -136,7 +136,7 @@ dependencies: | |
| 136 136 | 
             
                - - ">="
         | 
| 137 137 | 
             
                  - !ruby/object:Gem::Version
         | 
| 138 138 | 
             
                    version: '0'
         | 
| 139 | 
            -
            description: Group  | 
| 139 | 
            +
            description: Group related classes together. No more silos.
         | 
| 140 140 | 
             
            email: LPSego3+dev@gmail.com
         | 
| 141 141 | 
             
            executables: []
         | 
| 142 142 | 
             
            extensions: []
         | 
| @@ -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.5. | 
| 175 | 
            +
            rubygems_version: 2.5.2
         | 
| 176 176 | 
             
            signing_key: 
         | 
| 177 177 | 
             
            specification_version: 4
         | 
| 178 | 
            -
            summary: Drawers-0. | 
| 178 | 
            +
            summary: Drawers-1.0.0
         | 
| 179 179 | 
             
            test_files: []
         |