Sha256: fa0d409e58e3b1ee81046c811d4e24ef71297ff5462476c73f76cbe5b593fb94

Contents?: true

Size: 650 Bytes

Versions: 4

Compression:

Stored size: 650 Bytes

Contents

module RailsDevtools
  module Routes
    class ControllerInfo
      attr_reader :action

      def initialize(controller_name: nil, action: nil)
        @controller_name = controller_name
        @action = action
      end

      def file_path
        full_class_name.underscore + ".rb"
      end

      def full_class_name
        @full_class_name ||= [@controller_name, "controller"].join("_").camelize
      end

      def controller
        @controller ||= full_class_name.safe_constantize
      end

      def action_exists?
        return false unless controller

        controller.action_methods.include?(@action)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rails_devtools-0.1.3 app/models/rails_devtools/routes/controller_info.rb
rails_devtools-0.1.2 app/models/rails_devtools/routes/controller_info.rb
rails_devtools-0.1.1 app/models/rails_devtools/routes/controller_info.rb
rails_devtools-0.1.0 app/models/rails_devtools/routes/controller_info.rb