Skip to content

Commit

Permalink
Refactoring against Code Duplication
Browse files Browse the repository at this point in the history
  • Loading branch information
RobertDober committed Jan 30, 2022
1 parent 7b1adc1 commit 05da2fc
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 19 deletions.
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
speculate_about (0.6.1)
speculate_about (1.0.0)

GEM
remote: https://rubygems.org/
Expand Down
16 changes: 16 additions & 0 deletions lib/speculations/parser/state/context_maker.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
module Speculations
class Parser
module State
module ContextMaker
private

def make_new_context(lnb:, match:, node:)
level = match[:level].size
new_parent = node.parent_of_level(level.pred)
node = new_parent.new_context(title: match[:title], lnb: lnb, level: level)
[:out, node]
end
end
end
end
end
11 changes: 2 additions & 9 deletions lib/speculations/parser/state/includes.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
require_relative 'context_maker'
module Speculations
class Parser
module State
module Includes extend self
include ContextMaker

def parse line, lnb, node, _ctxt
case
Expand All @@ -16,15 +18,6 @@ def parse line, lnb, node, _ctxt
end
end

private

def make_new_context(lnb:, match:, node:)
level = match[:level].size
new_parent = node.parent_of_level(level.pred)
node = new_parent.new_context(title: match[:title], lnb: lnb, level: level)
[:out, node]
end

end
end
end
Expand Down
11 changes: 2 additions & 9 deletions lib/speculations/parser/state/out.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
require_relative 'context_maker'
module Speculations
class Parser
module State
module Out extend self
include ContextMaker

def parse line, lnb, node, _ctxt
case
Expand All @@ -16,15 +18,6 @@ def parse line, lnb, node, _ctxt
end
end

private

def make_new_context(lnb:, match:, node:)
level = match[:level].size
new_parent = node.parent_of_level(level.pred)
node = new_parent.new_context(title: match[:title], lnb: lnb, level: level)
[:out, node]
end

end
end
end
Expand Down

0 comments on commit 05da2fc

Please sign in to comment.