Sha256: daccf455ef4f81d5ce4a3412078e87c314f5997d9fac51b10c89df870e485dfe

Contents?: true

Size: 891 Bytes

Versions: 4

Compression:

Stored size: 891 Bytes

Contents

require_relative './syntax_builder_base'

module JsGenerator
  module SyntaxBuilder
    class WithoutNamespaced < SyntaxBuilderBase
      def action_namespace
        "window.#{top_level_js_namespace}.#{model_name.capitalize.pluralize}.#{action_name.capitalize}"
      end

      def script_for_append
        <<~TEXT
          #{define_namespace(model_namespace)}
          import #{import_name} from '#{import_path}';
          #{action_namespace} = #{action_namespace} || {};
          #{action_namespace} = #{import_name};
        TEXT
      end

      private

      def model_namespace
        "window.#{top_level_js_namespace}.#{model_name.capitalize.pluralize}"
      end

      def import_path
        "./views/#{model_name.pluralize}/#{action_name}"
      end

      def import_name
        "#{model_name.capitalize.pluralize}#{action_name.capitalize}"
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
js_generator-0.1.4 lib/js_generator/syntax_builder/without_namespace.rb
js_generator-0.1.3 lib/js_generator/syntax_builder/without_namespace.rb
js_generator-0.1.2 lib/js_generator/syntax_builder/without_namespace.rb
js_generator-0.1.1 lib/js_generator/syntax_builder/without_namespace.rb