Sha256: 5a9ec29c914203102effbde0fa2fad95decd7340687f34f29b448f32669a8f44

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

module WebammToRails
  module Sources
    module Controllers
      module Actions
        module IndexDefinition
          class Presenter
            def initialize(table_name:, crud_definition:)
              @table_name = table_name
              @crud_definition = crud_definition
            end

            def render
              template_path = File.expand_path('template.erb', __dir__)
              template_content = File.read(template_path)
              raw_content = ERB.new(template_content, trim_mode: '-').result(instance_eval { binding })

              ::WebammToRails::Utils::FormatCode.call(raw_content)
            end

            def access_scope = :public

            def render?
              @crud_definition.actions.find { |action| action.name == 'index' }.present?
            end

            private

            def variable_name
              "@#{@table_name}"
            end

            def all_call
              "#{@table_name.classify}.all"
            end
          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/controllers/actions/index_definition/presenter.rb
webamm_to_rails-7.0.0 lib/webamm_to_rails/sources/controllers/actions/index_definition/presenter.rb