OpenStruct creates small objects whose attributes can be assigned by name.

OpenStruct Basics

ostruct_basics.rb
require "ostruct"

name = 
profile = OpenStruct.new

profile.name = name
profile.language = "Ruby"
profile.lessons = 3

summary = "#{profile.name} studies #{profile.language}"

puts "name=#{profile.name}"
puts "lessons=#{profile.lessons}"
puts "summary=#{summary}"
require "ostruct"

name = 
profile = OpenStruct.new

profile.name = name
profile.language = "Ruby"
profile.lessons = 3

summary = "#{profile.name} studies #{profile.language}"

puts "name=#{profile.name}"
puts "lessons=#{profile.lessons}"
puts "summary=#{summary}"
require "ostruct"

name = 
profile = OpenStruct.new

profile.name = name
profile.language = "Ruby"
profile.lessons = 3

summary = "#{profile.name} studies #{profile.language}"

puts "name=#{profile.name}"
puts "lessons=#{profile.lessons}"
puts "summary=#{summary}"
open struct `OpenStruct` is useful for small data records when a full class would be more ceremony than the example needs.