Sha256: 0061d28d3f891d52a78175b42744846291488468cad1961cb3627c2c4f6b783b

Contents?: true

Size: 1.07 KB

Versions: 2

Compression:

Stored size: 1.07 KB

Contents

require_relative 'authentication_definition/presenter'
require_relative 'resource_definition/presenter'

module WebammToRails
  module Sources
    module Routes
      class Definition
        def initialize(waml_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 authentication_definition
          ::WebammToRails::Sources::Routes::AuthenticationDefinition::Presenter.new(
            waml_definition: @waml_definition
          ).render
        end

        def resources
          @waml_definition.database.crud.map do |resource|
            ::WebammToRails::Sources::Routes::ResourceDefinition::Presenter.new(
              crud_definition: resource
            ).render
          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/definition.rb
webamm_to_rails-7.0.0 lib/webamm_to_rails/sources/routes/definition.rb