Sha256: 5c81cf0bb5f6a50fa1982a65cb7506ff741bb1ab9b124f4218f68bd8baf3f5ad

Contents?: true

Size: 1.45 KB

Versions: 1

Compression:

Stored size: 1.45 KB

Contents

require_relative '../code_generator/code_generator'
require_relative 'code_model'
require 'liquid'

module KCommercial
  module Resources
    class OCGenerator
      class << self
        def templates_root
          Pathname(__FILE__).parent.join('templates')
        end
      end

      def initialize(file_model, name, keys, resources_status, options)
        @file_model = file_model
        @name = name
        @keys = keys
        @super_module_name = options.delete(:super) { :KCSemanticResources }
        @resources_status = resources_status
      end

      def header_contents
        ERB.new(File.read(@file_model.header)).result(code_model.get_binding)
      end

      def imp_contents
        ERB.new(File.read(@file_model.implementation)).result(code_model.get_binding)
      end

      def code_model
        @code_model ||= begin
                          model = CodeModel.new
                          model.keys = @keys
                          model.super_module_name = @super_module_name
                          model.component_name = @name
                          model.resources_status = @resources_status
                          model
                        end
      end

      private

      def render_map
        {
          "oc_class_name" => code_model.oc_class_name,
          "bundle_name" => code_model.bundle_name,
          "component_name" => code_model.component_name,
          "keys" => @keys
        }
      end


    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
KCommercialPipeline-0.2.5.1 lib/KCommercialPipeline/core/resource/objective-c/oc_generator.rb