Sha256: bba2b93f4b993aeb1bb0daecf6f3f3e2b7a7813d77f3a90223de0c1ef4b9e819

Contents?: true

Size: 1004 Bytes

Versions: 11

Compression:

Stored size: 1004 Bytes

Contents

require 'active_support/core_ext/string/inflections' # String#{demodulize,underscore}
require 'erb'
require 'forwardable'

module TurnipFormatter
  module Renderer
    module Html
      class Base
        extend Forwardable

        TEMPLATE_DIRECTORY = File.dirname(__FILE__) + '/views'

        class << self
          def view
            @view ||= ::ERB.new(
              File.read("#{TEMPLATE_DIRECTORY}/#{resource_name}.html.erb")
            )
          end

          def resource_name
            @resource_name ||= self.to_s.demodulize.underscore
          end

          def delegate(*props)
            def_delegators :@resource, *props
          end
        end

        def initialize(resource)
          @resource = resource
        end

        def id
          @id ||= self.class.resource_name + '_' + @resource.object_id.to_s
        end

        def view
          self.class.view
        end

        def render
          view.result(binding)
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
turnip_formatter-0.8.0 lib/turnip_formatter/renderer/html/base.rb
turnip_formatter-0.7.2 lib/turnip_formatter/renderer/html/base.rb
turnip_formatter-0.7.1 lib/turnip_formatter/renderer/html/base.rb
turnip_formatter-0.7.0 lib/turnip_formatter/renderer/html/base.rb
turnip_formatter-0.6.1 lib/turnip_formatter/renderer/html/base.rb
turnip_formatter-0.6.0 lib/turnip_formatter/renderer/html/base.rb
turnip_formatter-0.6.0.pre.beta.7 lib/turnip_formatter/renderer/html/base.rb
turnip_formatter-0.6.0.pre.beta.6 lib/turnip_formatter/renderer/html/base.rb
turnip_formatter-0.6.0.pre.beta.5 lib/turnip_formatter/renderer/html/base.rb
turnip_formatter-0.6.0.pre.beta.4 lib/turnip_formatter/renderer/html/base.rb
turnip_formatter-0.6.0.pre.beta.3 lib/turnip_formatter/renderer/html/base.rb