Sha256: 3422e906e8c4a0bdad8395da5c5ee280e9b1a2b69619a26af45982d91c0102ec

Contents?: true

Size: 1.31 KB

Versions: 2

Compression:

Stored size: 1.31 KB

Contents

require_relative 'class_definition/presenter'
require_relative 'actions/definition'
require_relative 'filters/definition'

module WebammToRails
  module Sources
    module Controllers
      class Definition
        def initialize(crud_definition:, waml_definition:)
          @crud_definition = crud_definition
          @waml_definition = waml_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

        private

        def class_definition
          ::WebammToRails::Sources::Controllers::ClassDefinition::Presenter.new(table_name: @crud_definition.table).render
        end

        def actions
          ::WebammToRails::Sources::Controllers::Actions::Definition.new(
            crud_definition: @crud_definition,
            waml_definition: @waml_definition
          ).collection
        end

        def filters
          ::WebammToRails::Sources::Controllers::Filters::Definition.new(
            crud_definition: @crud_definition,
            waml_definition: @waml_definition
          ).collection
        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/definition.rb
webamm_to_rails-7.0.0 lib/webamm_to_rails/sources/controllers/definition.rb