Refactored!

This commit is contained in:
Mike Farah
2019-12-28 20:19:37 +13:00
parent df52383ffb
commit 0652f67a91
9 changed files with 177 additions and 178 deletions
+7 -7
View File
@@ -57,7 +57,7 @@ func guessKind(tail []string, guess yaml.Kind) yaml.Kind {
}
type YqLib interface {
Get(rootNode *yaml.Node, path string) ([]*VisitedNode, error)
Get(rootNode *yaml.Node, path string) ([]*NodeContext, error)
Update(rootNode *yaml.Node, updateCommand UpdateCommand) error
New(path string) yaml.Node
}
@@ -73,12 +73,12 @@ func NewYqLib(l *logging.Logger) YqLib {
}
}
func (l *lib) Get(rootNode *yaml.Node, path string) ([]*VisitedNode, error) {
func (l *lib) Get(rootNode *yaml.Node, path string) ([]*NodeContext, error) {
var paths = l.parser.ParsePath(path)
navigationSettings := ReadNavigationSettings()
navigator := NewDataNavigator(navigationSettings)
NavigationStrategy := ReadNavigationStrategy()
navigator := NewDataNavigator(NavigationStrategy)
error := navigator.Traverse(rootNode, paths)
return navigationSettings.GetVisitedNodes(), error
return NavigationStrategy.GetVisitedNodes(), error
}
@@ -93,12 +93,12 @@ func (l *lib) Update(rootNode *yaml.Node, updateCommand UpdateCommand) error {
switch updateCommand.Command {
case "update":
var paths = l.parser.ParsePath(updateCommand.Path)
navigator := NewDataNavigator(UpdateNavigationSettings(updateCommand.Value))
navigator := NewDataNavigator(UpdateNavigationStrategy(updateCommand.Value))
return navigator.Traverse(rootNode, paths)
case "delete":
var paths = l.parser.ParsePath(updateCommand.Path)
lastBit, newTail := paths[len(paths)-1], paths[:len(paths)-1]
navigator := NewDataNavigator(DeleteNavigationSettings(lastBit))
navigator := NewDataNavigator(DeleteNavigationStrategy(lastBit))
return navigator.Traverse(rootNode, newTail)
default:
return fmt.Errorf("Unknown command %v", updateCommand.Command)