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/ruby_p.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/motion_turn_xy.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/operators_false.rb,
app/models/concerns/ruby_to_block/block/ruby_expression.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_self_angle.rb,
app/models/concerns/ruby_to_block/block/operators_compare.rb,
app/models/concerns/ruby_to_block/block/hardware_operation.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/sensing_reach_wall.rb,
app/models/concerns/ruby_to_block/block/character_operation.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_led_turn_on.rb,
app/models/concerns/ruby_to_block/block/character_method_call.rb,
app/models/concerns/ruby_to_block/block/hardware_led_turn_off.rb,
app/models/concerns/ruby_to_block/block/hardware_motor_driver.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_rgb_led_turn_off.rb,
app/models/concerns/ruby_to_block/block/motion_set_rotation_style.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/hardware_rgb_led_set_color.rb,
app/models/concerns/ruby_to_block/block/motion_point_towards_mouse.rb,
app/models/concerns/ruby_to_block/block/hardware_motor_driver_speed.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_s1_action.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action.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_motor_driver_set_speed.rb,
app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_run.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_motor_speed.rb,
app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_speed.rb,
app/models/concerns/ruby_to_block/block/hardware_button_pressed_or_released.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_s1_action_with_sec.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action_with_sec.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_motor_set_speed.rb,
app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_commands.rb,
app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_set_speed.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_s1_led_turn_on_or_off.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_led_turn_on_or_off.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_light_sensor_value.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_s1_dc_motor_power_ratio.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_s1_ir_photoreflector_value.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_s1_dc_motor_set_power_ratio.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_touch_sensor_pressed_or_released.rb
Overview
ブロック群を表現するモジュール
Defined Under Namespace
Modules: CharacterOperation, HardwareOperation Classes: Base, Character, CharacterEvent, CharacterMethodCall, CharacterNew, ControlBreak, ControlIf, ControlLoop, ControlSleep, Do, Else, End, EventsOnClick, EventsOnKeyPushOrDown, EventsOnStart, HardwareButtonPressedOrReleased, HardwareInitHardware, HardwareLedTurnOff, HardwareLedTurnOn, HardwareMotorDriver, HardwareMotorDriverSetSpeed, HardwareMotorDriverSpeed, HardwareRgbLedSetColor, HardwareRgbLedTurnOff, HardwareSensorValue, HardwareSmalrubotS1Action, HardwareSmalrubotS1ActionWithSec, HardwareSmalrubotS1DcMotorPowerRatio, HardwareSmalrubotS1DcMotorSetPowerRatio, HardwareSmalrubotS1IrPhotoreflectorValue, HardwareSmalrubotS1LedTurnOnOrOff, HardwareSmalrubotV3Action, HardwareSmalrubotV3ActionWithSec, HardwareSmalrubotV3LedTurnOnOrOff, HardwareSmalrubotV3LightSensorValue, HardwareSmalrubotV3MotorSetSpeed, HardwareSmalrubotV3MotorSpeed, HardwareSmalrubotV3TouchSensorPressedOrReleased, HardwareTwoWheelDriveCar, HardwareTwoWheelDriveCarCommands, HardwareTwoWheelDriveCarRun, HardwareTwoWheelDriveCarSetSpeed, HardwareTwoWheelDriveCarSpeed, LooksHide, LooksSay, LooksShow, LooksVanish, MathNumber, MotionChangeXBy, MotionChangeYBy, MotionGoToCharacter, MotionGoToMouse, MotionMove, MotionPointTowardsCharacter, MotionPointTowardsMouse, MotionRotateLeft, MotionRotateRight, MotionSelfAngle, MotionSelfX, MotionSelfY, MotionSetAngle, MotionSetRotationStyle, MotionSetX, MotionSetXY, MotionSetY, MotionTurn, MotionTurnIfReachWall, MotionTurnXy, Null, OperatorsCompare, OperatorsFalse, OperatorsTrue, RequireSmalruby, RubyComment, RubyExpression, RubyP, RubyStatement, SensingHit, SensingReachWall, SoundPlay, SoundPresetSounds, Text, Value
Class Method Summary collapse
-
.[](type) ⇒ Object
ブロックを表現するクラスを返す.
-
.new(type, *args) ⇒ Object
ブロックのインスタンスを生成する.
-
.process_else(context) ⇒ Object
elseを処理する.
-
.process_end(context) ⇒ Object
endを処理する.
-
.process_match_data(md, context, type = nil) ⇒ Object
MatchDataを処理する.
-
.regexp(type) ⇒ Object
ブロックの正規表現を返す.
-
.register(klass) ⇒ Object
ブロックを登録する.
-
.statement_regexp ⇒ Object
ステートメントを表現するブロックの正規表現を返す.
-
.value_regexp ⇒ Object
値を表現するブロックの正規表現を返す.
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_regexp ⇒ Object
ステートメントを表現するブロックの正規表現を返す
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_regexp ⇒ Object
値を表現するブロックの正規表現を返す
19 20 21 |
# File 'app/models/concerns/ruby_to_block/block.rb', line 19 def self.value_regexp @value_regexp ||= make_regexp(:value?) end |