syntax/gem_syntax_forms.rb

tests/_examples/syntax/gem_syntax_forms.rb in the metorex repository.

module Core
  Event = Struct
end

class Basic < Core::Event.new(:entity); end
p(Basic.new(1).entity)

module Wrap
  class Inner < Core::Event.new(:x)
  end
end
p(Wrap::Inner.new(3).x)

begin
  ::Kernel::raise ::ArgumentError, "bad size"
rescue ArgumentError => error
  p(error.message)
end
p(::Kernel::Integer("12"))

module Tools
  def self.twice(value) = value * 2
end
p(Tools::twice(4))

def add(include)
  include + 1
end
p(add(1))
p([1, 2].map { |include| include * 2 })
p([3].each_with_object([]) { |extend, held| held << extend })

@line = 0
p({ line: @line += 1 })
count = 5
p({ total: count -= 2, "key" => count *= 3 })
module Contracts
  class CallableClass
    def kind = :callable
  end
end
module Aruba
  module Contracts
    class Enum < ::Contracts::CallableClass
    end
  end
end
p Aruba::Contracts::Enum.new.kind
class Top < ::Object
end
p Top.superclass

Output:

1
3
"bad size"
12
8
2
[2, 4]
[3]
{line: 1}
{total: 3, "key" => 9}
:callable
Object