Module: RubyToBlock::Block

Defined in:
app/models/concerns/ruby_to_block/block.rb,
app/models/concerns/ruby_to_block/block/do.rb,
app/models/concerns/ruby_to_block/block/end.rb,
app/models/concerns/ruby_to_block/block/base.rb,
app/models/concerns/ruby_to_block/block/else.rb,
app/models/concerns/ruby_to_block/block/null.rb,
app/models/concerns/ruby_to_block/block/text.rb,
app/models/concerns/ruby_to_block/block/value.rb,
app/models/concerns/ruby_to_block/block/character.rb,
app/models/concerns/ruby_to_block/block/looks_say.rb,
app/models/concerns/ruby_to_block/block/control_if.rb,
app/models/concerns/ruby_to_block/block/looks_hide.rb,
app/models/concerns/ruby_to_block/block/looks_show.rb,
app/models/concerns/ruby_to_block/block/sound_play.rb,
app/models/concerns/ruby_to_block/block/math_number.rb,
app/models/concerns/ruby_to_block/block/motion_move.rb,
app/models/concerns/ruby_to_block/block/motion_turn.rb,
app/models/concerns/ruby_to_block/block/sensing_hit.rb,
app/models/concerns/ruby_to_block/block/control_loop.rb,
app/models/concerns/ruby_to_block/block/looks_vanish.rb,
app/models/concerns/ruby_to_block/block/motion_set_x.rb,
app/models/concerns/ruby_to_block/block/motion_set_y.rb,
app/models/concerns/ruby_to_block/block/ruby_comment.rb,
app/models/concerns/ruby_to_block/block/character_new.rb,
app/models/concerns/ruby_to_block/block/control_beark.rb,
app/models/concerns/ruby_to_block/block/control_sleep.rb,
app/models/concerns/ruby_to_block/block/motion_self_x.rb,
app/models/concerns/ruby_to_block/block/motion_self_y.rb,
app/models/concerns/ruby_to_block/block/motion_set_x_y.rb,
app/models/concerns/ruby_to_block/block/operators_true.rb,
app/models/concerns/ruby_to_block/block/ruby_statement.rb,
app/models/concerns/ruby_to_block/block/character_event.rb,
app/models/concerns/ruby_to_block/block/events_on_click.rb,
app/models/concerns/ruby_to_block/block/events_on_start.rb,
app/models/concerns/ruby_to_block/block/hardware_led_on.rb,
app/models/concerns/ruby_to_block/block/operators_false.rb,
app/models/concerns/ruby_to_block/block/ruby_expression.rb,
app/models/concerns/ruby_to_block/block/hardware_led_off.rb,
app/models/concerns/ruby_to_block/block/motion_set_angle.rb,
app/models/concerns/ruby_to_block/block/require_smalruby.rb,
app/models/concerns/ruby_to_block/block/motion_reach_wall.rb,
app/models/concerns/ruby_to_block/block/motion_self_angle.rb,
app/models/concerns/ruby_to_block/block/operators_compare.rb,
app/models/concerns/ruby_to_block/block/motion_change_x_by.rb,
app/models/concerns/ruby_to_block/block/motion_change_y_by.rb,
app/models/concerns/ruby_to_block/block/motion_go_to_mouse.rb,
app/models/concerns/ruby_to_block/block/motion_rotate_left.rb,
app/models/concerns/ruby_to_block/block/character_operation.rb,
app/models/concerns/ruby_to_block/block/hardware_rgb_led_on.rb,
app/models/concerns/ruby_to_block/block/motion_rotate_right.rb,
app/models/concerns/ruby_to_block/block/sound_preset_sounds.rb,
app/models/concerns/ruby_to_block/block/hardware_rgb_led_off.rb,
app/models/concerns/ruby_to_block/block/character_method_call.rb,
app/models/concerns/ruby_to_block/block/hardware_sensor_value.rb,
app/models/concerns/ruby_to_block/block/hardware_init_hardware.rb,
app/models/concerns/ruby_to_block/block/motion_go_to_character.rb,
app/models/concerns/ruby_to_block/block/hardware_on_sensor_change.rb,
app/models/concerns/ruby_to_block/block/motion_turn_if_reach_wall.rb,
app/models/concerns/ruby_to_block/block/events_on_key_push_or_down.rb,
app/models/concerns/ruby_to_block/block/motion_point_towards_mouse.rb,
app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car.rb,
app/models/concerns/ruby_to_block/block/motion_point_towards_character.rb,
app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_run.rb,
app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_commands.rb

Overview

ブロック群を表現するモジュール

Defined Under Namespace

Modules: CharacterOperation Classes: Base, Character, CharacterEvent, CharacterMethodCall, CharacterNew, ControlBreak, ControlIf, ControlLoop, ControlSleep, Do, Else, End, EventsOnClick, EventsOnKeyPushOrDown, EventsOnStart, HardwareInitHardware, HardwareLedOff, HardwareLedOn, HardwareOnSensorChange, HardwareRgbLedOff, HardwareRgbLedOn, HardwareSensorValue, HardwareTwoWheelDriveCar, HardwareTwoWheelDriveCarCommands, HardwareTwoWheelDriveCarRun, LooksHide, LooksSay, LooksShow, LooksVanish, MathNumber, MotionChangeXBy, MotionChangeYBy, MotionGoToCharacter, MotionGoToMouse, MotionMove, MotionPointTowardsCharacter, MotionPointTowardsMouse, MotionReachWall, MotionRotateLeft, MotionRotateRight, MotionSelfAngle, MotionSelfX, MotionSelfY, MotionSetAngle, MotionSetX, MotionSetXY, MotionSetY, MotionTurn, MotionTurnIfReachWall, Null, OperatorsCompare, OperatorsFalse, OperatorsTrue, RequireSmalruby, RubyComment, RubyExpression, RubyStatement, SensingHit, SoundPlay, SoundPresetSounds, Text, Value

Class Method Summary collapse

Class Method Details

.[](type) ⇒ Object

ブロックを表現するクラスを返す



58
59
60
# File 'app/models/concerns/ruby_to_block/block.rb', line 58

def self.[](type)
  @blocks[type.to_s]
end

.new(type, *args) ⇒ Object

ブロックのインスタンスを生成する



9
10
11
# File 'app/models/concerns/ruby_to_block/block.rb', line 9

def self.new(type, *args)
  @blocks[type].new(*args)
end

.process_else(context) ⇒ Object

elseを処理する



42
43
44
45
46
47
# File 'app/models/concerns/ruby_to_block/block.rb', line 42

def self.process_else(context)
  st = context.statement
  @blocks[st.first].process_else(context)
rescue
  false
end

.process_end(context) ⇒ Object

endを処理する



50
51
52
53
54
55
# File 'app/models/concerns/ruby_to_block/block.rb', line 50

def self.process_end(context)
  st = context.statement
  @blocks[st.first].process_end(context)
rescue
  false
end

.process_match_data(md, context, type = nil) ⇒ Object

MatchDataを処理する



34
35
36
37
38
39
# File 'app/models/concerns/ruby_to_block/block.rb', line 34

def self.process_match_data(md, context, type = nil)
  type = md.names.find { |n| md[n.to_sym] } unless type
  @blocks[type].process_match_data(md, context)
rescue
  false
end

.regexp(type) ⇒ Object

ブロックの正規表現を返す



29
30
31
# File 'app/models/concerns/ruby_to_block/block.rb', line 29

def self.regexp(type)
  @blocks[type.to_s].regexp
end

.register(klass) ⇒ Object

ブロックを登録する



24
25
26
# File 'app/models/concerns/ruby_to_block/block.rb', line 24

def self.register(klass)
  @blocks[klass.type] = klass
end

.statement_regexpObject

ステートメントを表現するブロックの正規表現を返す



14
15
16
# File 'app/models/concerns/ruby_to_block/block.rb', line 14

def self.statement_regexp
  @statement_regexp ||= make_regexp(:statement?)
end

.value_regexpObject

値を表現するブロックの正規表現を返す



19
20
21
# File 'app/models/concerns/ruby_to_block/block.rb', line 19

def self.value_regexp
  @value_regexp ||= make_regexp(:value?)
end