Sha256: d56654cadd4ed3eb8f0122758693029826835c3534634ead23376b78f5cc6d76

Contents?: true

Size: 919 Bytes

Versions: 1

Compression:

Stored size: 919 Bytes

Contents

TEMPLATE = <<-EOF
  value is <%= five %>
  other is <%= three %>
EOF

require 'delegate'
require 'forwardable'
require 'ostruct'
class Scope < SimpleDelegator
end

require 'erb'
class ShoppingList
  def five
    'FiVe'
  end
  
  def initialize
    renderer = ERB.new(TEMPLATE)
    puts '***'

    values = {one: 'One', three: 'tHrEe'}

    scope = (Class.new do
      def initialize(obj, locals)
        @_obj = obj
        @_locals = OpenStruct.new(locals)
      end

      def method_missing(method, *args, &block)
        if @_locals.respond_to? method
          @_locals.send method, *args, &block
        else
          @_obj.send method, *args, &block
        end
      end

      def get_binding
        binding
      end

      def three
        3
      end
    end).new(self, values)

    puts renderer.result(scope.get_binding)
  end

  def get_binding
    binding
  end
end

puts '?'
test = ShoppingList.new

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dockerfile-rails-0.4.1 lib/erbtest.rb