Sha256: 989cc282cdc5f26000cb4cc4afb8e074798b7504176e54ceb4e561a31647faf9

Contents?: true

Size: 714 Bytes

Versions: 57

Compression:

Stored size: 714 Bytes

Contents

require 'ostruct'

class OpenStruct
  def to_s
    "[not a value]"
  end

  def inspect
    to_s
  end
end

class OpenVar

  def initialize
    @hash = {}
    @obj = OpenStruct.new
  end

  def [](var)
puts "self = #{self.inspect}"
#   @hash[var] = nil
    pieces = var.split(".")
    this = @obj
    pieces.each do |piece|
puts "piece = #{piece}"
#     this.send(piece.to_s+"=", OpenStruct.new)
      this = this.send(piece)
puts "this = #{this.inspect}"
    end
    this
  end

  def method_missing(meth, *args)
    setter = meth.to_s + "="
    meh = @obj.send(setter, OpenStruct.new)
    @obj
  end


end

var = OpenVar.new

var.foo.bar = 237

puts var.foo.inspect
puts var.foo.bar.inspect

puts var["foo.bar"]

Version data entries

57 entries across 57 versions & 1 rubygems

Version Path
runeblog-0.3.28 empty_view/config/exper/varmint.rb
runeblog-0.3.27 empty_view/config/exper/varmint.rb
runeblog-0.3.26 empty_view/config/exper/varmint.rb
runeblog-0.3.25 empty_view/config/exper/varmint.rb
runeblog-0.3.24 empty_view/config/exper/varmint.rb
runeblog-0.3.23 empty_view/config/exper/varmint.rb
runeblog-0.3.22 empty_view/config/exper/varmint.rb
runeblog-0.3.21 empty_view/config/exper/varmint.rb
runeblog-0.3.20 empty_view/config/exper/varmint.rb
runeblog-0.3.19 empty_view/config/exper/varmint.rb
runeblog-0.3.18 empty_view/config/exper/varmint.rb
runeblog-0.3.17 empty_view/config/exper/varmint.rb
runeblog-0.3.16 empty_view/config/exper/varmint.rb
runeblog-0.3.15 empty_view/config/exper/varmint.rb
runeblog-0.3.14 empty_view/config/exper/varmint.rb
runeblog-0.3.13 empty_view/config/exper/varmint.rb
runeblog-0.3.12 empty_view/config/exper/varmint.rb
runeblog-0.3.11 empty_view/config/exper/varmint.rb
runeblog-0.3.10 empty_view/config/exper/varmint.rb
runeblog-0.3.08 empty_view/config/exper/varmint.rb