Sha256: b2efe51e402cd396b433618e93ad3c4cd34a034581b2a3c8d4c68ba7e029f496

Contents?: true

Size: 1.18 KB

Versions: 7

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

PUNK::Command.create "list" do
  shortcut 'l'
  description "List routes, actions, models, views, services or workers"

  def process
    case args.join(' ')
    when 'routes'
      PUNK.app
      PUNK::App.route_list
    when 'actions'
      ObjectSpace.each_object(PUNK::Action.singleton_class).map(&:name).reject { |name| name.nil? || name =~ /^PUNK/ }
    when 'models'
      ObjectSpace.each_object(PUNK::Model.singleton_class).map(&:name).reject { |name| name.nil? || name =~ /^PUNK/ }
    when 'views'
      ObjectSpace.each_object(PUNK::View.singleton_class).map(&:name).reject { |name| name.nil? || name =~ /^PUNK/ }
    when 'services'
      ObjectSpace.each_object(PUNK::Service.singleton_class).select { |klass| klass.superclass == PUNK::Service }.map(&:name).reject { |name| name.nil? || name =~ /^PUNK/ }
    when 'workers'
      ObjectSpace.each_object(PUNK::Worker.singleton_class).select { |klass| klass.superclass == PUNK::Worker }.map(&:name).reject { |name| name.nil? || name =~ /^PUNK/ }
    when '', 'help'
      "? specify one of: routes, actions, models, views, services, workers"
    else
      "? unkown arguments: #{args.join(',')}"
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
punk-0.1.4 lib/punk/commands/list.rb
punk-0.1.3 lib/punk/commands/list.rb
punk-0.1.2 lib/punk/commands/list.rb
punk-0.1.0 lib/punk/commands/list.rb
punk-0.0.3 lib/punk/commands/list.rb
punk-0.0.2 lib/punk/commands/list.rb
punk-0.0.1 lib/punk/commands/list.rb