Sha256: 61ca1f7e7c8c5ca47f59c1716decaa6dbc3b64158d948d9b6454c49dd8a8cdc6

Contents?: true

Size: 689 Bytes

Versions: 2

Compression:

Stored size: 689 Bytes

Contents

module WebammToRails
  module Sources
    module Routes
      module ResourceDefinition
        class Presenter
          def initialize(crud_definition:)
            @crud_definition = crud_definition
          end

          def render
            base_def = "resources :#{@crud_definition.table}"

            return base_def if @crud_definition.actions.size == 7

            base_actions = @crud_definition.actions.map(&:name)
            base_actions << 'edit' if base_actions.include?('update')
            base_actions << 'new' if base_actions.include?('create')

            base_def + ", only: %i[#{base_actions.join(' ')}]"
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
webamm_to_rails-7.0.1 lib/webamm_to_rails/sources/routes/resource_definition/presenter.rb
webamm_to_rails-7.0.0 lib/webamm_to_rails/sources/routes/resource_definition/presenter.rb