Class: Prosereflect::Transform::RemoveNodeMarkStep
- Defined in:
- lib/prosereflect/transform/mark_step.rb
Overview
Remove mark from a specific node
Instance Attribute Summary collapse
-
#mark ⇒ Object
readonly
Returns the value of attribute mark.
-
#pos ⇒ Object
readonly
Returns the value of attribute pos.
Class Method Summary collapse
Instance Method Summary collapse
- #apply(doc) ⇒ Object
- #get_map ⇒ Object
-
#initialize(pos, mark) ⇒ RemoveNodeMarkStep
constructor
A new instance of RemoveNodeMarkStep.
- #invert(_doc) ⇒ Object
- #step_type ⇒ Object
- #to_json(*_args) ⇒ Object
Methods inherited from Step
Constructor Details
#initialize(pos, mark) ⇒ RemoveNodeMarkStep
Returns a new instance of RemoveNodeMarkStep.
211 212 213 214 215 |
# File 'lib/prosereflect/transform/mark_step.rb', line 211 def initialize(pos, mark) super() @pos = pos @mark = mark end |
Instance Attribute Details
#mark ⇒ Object (readonly)
Returns the value of attribute mark.
209 210 211 |
# File 'lib/prosereflect/transform/mark_step.rb', line 209 def mark @mark end |
#pos ⇒ Object (readonly)
Returns the value of attribute pos.
209 210 211 |
# File 'lib/prosereflect/transform/mark_step.rb', line 209 def pos @pos end |
Class Method Details
.from_json(_schema, json) ⇒ Object
247 248 249 250 |
# File 'lib/prosereflect/transform/mark_step.rb', line 247 def self.from_json(_schema, json) mark = Prosereflect::Mark.from_h(json["mark"]) new(json["pos"], mark) end |
Instance Method Details
#apply(doc) ⇒ Object
217 218 219 220 221 222 223 224 225 226 |
# File 'lib/prosereflect/transform/mark_step.rb', line 217 def apply(doc) return Result.fail("Invalid position") if @pos.negative? || @pos > doc.node_size begin new_doc = remove_mark_from_node(doc) Result.ok(new_doc) rescue StandardError => e Result.fail(e.) end end |
#get_map ⇒ Object
228 229 230 |
# File 'lib/prosereflect/transform/mark_step.rb', line 228 def get_map StepMap.new end |
#invert(_doc) ⇒ Object
232 233 234 |
# File 'lib/prosereflect/transform/mark_step.rb', line 232 def invert(_doc) AddNodeMarkStep.new(@pos, @mark) end |
#step_type ⇒ Object
236 237 238 |
# File 'lib/prosereflect/transform/mark_step.rb', line 236 def step_type "removeNodeMark" end |
#to_json(*_args) ⇒ Object
240 241 242 243 244 245 |
# File 'lib/prosereflect/transform/mark_step.rb', line 240 def to_json(*_args) json = super json["pos"] = @pos json["mark"] = @mark.to_h json end |