Sha256: 5393d9884d7b290b3b5b5cfdeaccab9f661bca76fc448b334cad8f0a52c291d9

Contents?: true

Size: 1.37 KB

Versions: 4

Compression:

Stored size: 1.37 KB

Contents

# frozen_string_literal: true

module KepplerFrontend
  module Views
  # Assets
    class Add
      def initialize; end

      def new_file(obj)
        file_format = ".html.#{obj[:view_format]}"
        name = "#{views_folder}/#{obj[:name]}#{file_format}"
        if obj[:view_format].eql?('haml')          
          create_file(name, "%h1 #{obj[:name].capitalize} Template")
        else
          create_file(name, "<h1> #{obj[:name].capitalize} Template </h1>")
        end
      end

      def new_route(obj)
        lines = File.readlines(routes)
        lines = lines.split('\n').first
        idx = code(lines).search_line(point)
        lines.insert(idx + 1, template(obj))
        File.write(routes, lines.join)
      end

      private

      def rocket_url
        'rockets/keppler_frontend'
      end

      def views_folder
        "#{rocket_url}/app/views/keppler_frontend/app/frontend"
      end

      def routes
        "#{rocket_url}/config/routes.rb"
      end

      def point
        "KepplerFrontend::Engine.routes.draw do"
      end

      def template(obj)
        "  #{obj[:method].downcase} '#{obj[:url]}', to: 'app/frontend##{obj[:name]}', as: :#{obj[:name]}\n"
      end

      def code(lines)
        KepplerFrontend::Utils::CodeSearch.new(lines)
      end

      def create_file(name, content)
        File.open(name, "w") {|f| f.write(content) }
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
keppler-2.1.22 installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/add.rb
keppler-2.1.21 installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/add.rb
keppler-2.1.20 installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/add.rb
keppler-2.1.19 installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/add.rb