Skip to main content
Glama
models.rb1.34 kB
class User attr_accessor :id, :name, :email def initialize(id, name, email = nil) @id = id @name = name @email = email end def full_info info = "User: #{@name} (ID: #{@id})" info += ", Email: #{@email}" if @email info end def to_hash { id: @id, name: @name, email: @email } end def self.from_hash(hash) new(hash[:id], hash[:name], hash[:email]) end class << self def default_user new(0, "Guest") end end end class Item attr_reader :id, :name, :price def initialize(id, name, price) @id = id @name = name @price = price end def discounted_price(discount_percent) @price * (1 - discount_percent / 100.0) end def description "#{@name}: $#{@price}" end end module ItemHelpers def format_price(price) "$#{sprintf('%.2f', price)}" end def calculate_tax(price, tax_rate = 0.08) price * tax_rate end end class Order include ItemHelpers def initialize @items = [] @total = 0 end def add_item(item, quantity = 1) @items << { item: item, quantity: quantity } calculate_total end def total_with_tax tax = calculate_tax(@total) @total + tax end private def calculate_total @total = @items.sum { |entry| entry[:item].price * entry[:quantity] } end end

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oraios/serena'

If you have feedback or need assistance with the MCP directory API, please join our Discord server