class RuboCop::Cop::SketchupBugs::RenderMode
A regression was introduced in SketchUp
2017 that cause invalid render modes to crash SketchUp
. The crash might not happen exactly when the new mode is set, but later when the viewport re-draws.
Valid render modes are: (Internal enum names in parentheses)
-
`0` (`kRenderWireframe`)
-
`1` (`kRenderHidden`)
-
`2` (`kRenderFlat`)
-
`3` (`kRenderSmooth`)
-
`5` (`kRenderNoMaterials`)
@example This obsolete render mode will crash SketchUp
2017 and newer
Sketchup.active_model.rendering_options["RenderMode"] = 4
@example This invalid render mode will crash SketchUp
2017 and newer
Sketchup.active_model.rendering_options["RenderMode"] = 99
Constants
- MSG_INVALID
- MSG_OBSOLETE
- RENDER_MODE_OBSOLETE
- RENDER_MODE_VALID
Public Instance Methods
on_send(node)
click to toggle source
# File lib/rubocop/sketchup/cop/bugs/render_mode.rb, line 51 def on_send(node) return unless valid_for_target_sketchup_version? value = set_render_mode(node) return if value.nil? return if RENDER_MODE_VALID.include?(value) value_node = node.arguments.last message = obsolete?(value) ? MSG_OBSOLETE : MSG_INVALID add_offense(value_node, message: message) end
Private Instance Methods
obsolete?(value)
click to toggle source
# File lib/rubocop/sketchup/cop/bugs/render_mode.rb, line 65 def obsolete?(value) RENDER_MODE_OBSOLETE.include?(value) end