Sha256: 5f7ed5866b7571447b4fcca2ad4a37c402c53b3cdeab6747a72b56f4ffe2b7a1

Contents?: true

Size: 1.4 KB

Versions: 15

Compression:

Stored size: 1.4 KB

Contents

module Padrino
  module Module
    attr_writer :root

    ##
    # Register this module as being loaded from a gem. This automatically
    # sets the root and therefore the dependency paths correctly.
    #
    # @param [String] name
    #   The name of the gem. Has to be the name as stated in the gemspec.
    #
    # @returns the gems root.
    def gem!(name)
      self.root = Padrino.gem(name, self)
    end

    ##
    # Helper method for file references within a Padrino module.
    #
    # @param [Array<String>] args
    #   The directories to join to {Module.root}.
    #
    # @return [String]
    #   The absolute path.
    #
    # @example
    #   module MyModule
    #     extend Padrino::Module
    #     gem! 'my_gem'
    #   end
    #   Module.root!
    def root(*args)
      File.expand_path(File.join(@root, *args))
    end

    ##
    # Returns the list of path globs to load as dependencies.
    # Appends custom dependency patterns to the be loaded for Padrino.
    #
    # @return [Array<String>]
    #   The dependency paths.
    #
    # @example
    #   module MyModule
    #     extend Padrino::Module
    #     gem! 'my_gem'
    #   end
    #
    #   Module.dependency_paths << "#{MyModule.root}/uploaders/*.rb"
    #
    def dependency_paths
      [
        "#{root}/lib/**/*.rb", "#{root}/shared/lib/**/*.rb",
        "#{root}/models/**/*.rb", "#{root}/shared/models/**/*.rb"
      ]
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
padrino-core-0.16.0.pre3 lib/padrino-core/module.rb
padrino-core-0.16.0.pre2 lib/padrino-core/module.rb
padrino-core-0.15.3 lib/padrino-core/module.rb
padrino-core-0.15.2 lib/padrino-core/module.rb
padrino-core-0.15.1 lib/padrino-core/module.rb
padrino-core-0.15.0 lib/padrino-core/module.rb
padrino-core-0.14.4 lib/padrino-core/module.rb
padrino-core-0.14.3 lib/padrino-core/module.rb
padrino-core-0.14.2 lib/padrino-core/module.rb
padrino-core-0.14.1.1 lib/padrino-core/module.rb
padrino-core-0.14.1 lib/padrino-core/module.rb
padrino-core-0.14.0.2 lib/padrino-core/module.rb
padrino-core-0.14.0.1 lib/padrino-core/module.rb
padrino-core-0.14.0 lib/padrino-core/module.rb
padrino-core-0.14.0.rc2 lib/padrino-core/module.rb