Skip to content

Instantly share code, notes, and snippets.

View aoitaku's full-sized avatar
🍷
ぶどうジュース

aotak aoitaku

🍷
ぶどうジュース
View GitHub Profile
@aoitaku
aoitaku / dsl.rb
Created February 8, 2015 12:17
DSL で IF文
require 'pp'
$dsl = []
$if_stack = []
def IF(cond=Proc.new)
$if_stack << []
$if_stack.last << {}
$if_stack.last.last[:cond] = cond
end
def THEN(expr=Proc.new)
$if_stack.last.last[:expr] = expr
@aoitaku
aoitaku / operators.md
Created November 21, 2014 08:47
Ruby 組み込みライブラリに定義されたクラス/モジュールの演算子メソッド一覧
@aoitaku
aoitaku / heredoc.rb
Created October 31, 2014 17:19
ヒアドキュメントは式
def event_handler(*names)
names.each do |name|
class_eval <<-EOS
def on_#{name}(*args)
event_handlers[:#{name}] and event_handlers[:#{name}].(*args)
end
EOS
end
end
@aoitaku
aoitaku / do-with-stack_one-liner.rb
Created October 31, 2014 08:37
スタックに push しながら yield して処理後に確実に pop したいときのワンライナー
-> stack, arg { stack.tap { stack.push(arg) } and yield.tap { stack.pop } }
@aoitaku
aoitaku / main.rb
Created October 16, 2014 14:19
UI を DSL で記述する
require 'dxruby'
require_relative 'ui'
class UI::TextLabel < Sprite
attr_reader :text
def text=(text) @text = text.to_s end
def initialize(x=0, y=0, text='', *argv)
@aoitaku
aoitaku / dxruby_platformer_8th.rb
Created October 13, 2014 17:26
dxruby_platformer_8th
require "dxruby"
Player = Struct.new(:x, :y, :vx, :vy, :image)
player = Player.new(32, 416, 0, 0, Image.load("image/player_image.png"))
enemy_image = Image.load("image/enemy_image.png")
enemy_image2 = Image.load("image/enemy_image2.png")
Enemy = Struct.new(:x, :y, :image)
enemies = [
Enemy.new(576, 416, enemy_image),
@aoitaku
aoitaku / dxruby_platformer_7th.rb
Created October 13, 2014 17:25
dxruby_platformer_7th
require "dxruby"
Player = Struct.new(:x, :y, :image)
player = Player.new(0, 0, Image.load("image/player_image.png")),
enemy_image = Image.load("image/enemy_image.png")
enemy_image2 = Image.load("image/enemy_image2.png")
Enemy = Struct.new(:x, :y, :image)
enemies = [
Enemy.new(608, 448, enemy_image),
@aoitaku
aoitaku / dxruby_platformer_6th.rb
Created October 13, 2014 17:25
dxruby_platformer_6th
require "dxruby"
player_x = 0
player_y = 0
player_image = Image.load("image/player_image.png")
enemy_image = Image.load("image/enemy_image.png")
enemy_image2 = Image.load("image/enemy_image2.png")
enemies = [
{x: 608, y: 448, image: enemy_image},
@aoitaku
aoitaku / dxruby_platformer_5th.rb
Created October 13, 2014 17:24
dxruby_platformer_5th
require "dxruby"
player_x = 0
player_y = 0
player_image = Image.load("image/player_image.png")
enemy_image = Image.load("image/enemy_image.png")
enemy_image2 = Image.load("image/enemy_image2.png")
enemies = [
{x: 608, y: 448, image: enemy_image},
@aoitaku
aoitaku / dxruby_platformer_4th.rb
Created October 13, 2014 17:23
dxruby_platformer_4th
require "dxruby"
player_x = 0
player_y = 0
player_image = Image.load("image/player_image.png")
enemies = [
[608, 448],
[576, 448],
[542, 448]