utility.rb: Functionality shared across sapling
- Added some constants, specifically those used for brand new trees - Moved the verify functionality into here
This commit is contained in:
parent
2d0f9a0318
commit
520aad9740
1 changed files with 59 additions and 0 deletions
59
lib/sapling/utility.rb
Normal file
59
lib/sapling/utility.rb
Normal file
|
@ -0,0 +1,59 @@
|
|||
# Utility functionality for all of Sapling to reference
|
||||
|
||||
# Constants
|
||||
|
||||
# A series of constants for handing a brand new tree. The skeleton tree provides
|
||||
# a very basic introduction to Sapling. More details can be found in the
|
||||
# documentation.
|
||||
|
||||
# The default trunk text of a new tree
|
||||
SKELE_TRUNK_TEXT = "Welcome to the Sapling Editor. For details, please see the
|
||||
documentation!"
|
||||
|
||||
# The default first-branch text of a new tree
|
||||
SKELE_BRANCH_TEXT = "The first branch is always shown by default. It should act
|
||||
as the introduction to the story. From here, the user enters your world!"
|
||||
|
||||
# The default first-leaf text of the first branch of a new tree. The leaf points
|
||||
# to it's own branch. The only way out of the program is to either force-quit or
|
||||
# reply with option 0.
|
||||
SKELE_LEAF_TEXT = "Each branch can have any number of leaves, which represent
|
||||
the options a user has on that branch. Each leaf points to another branch, or
|
||||
can point to branch 0 to immediately exit."
|
||||
|
||||
# The final tree
|
||||
SKELETON_TREE = [
|
||||
{"trunk" => "#{SKELE_TRUNK_TEXT}"},
|
||||
{"branch" => {
|
||||
"number" => 1,
|
||||
"text" => "#{SKELE_BRANCH_TEXT}",
|
||||
"leaf" => [{
|
||||
"text" => "#{SKELE_LEAF_TEXT}",
|
||||
"branch" => 1
|
||||
}]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
# Verify that a file is a dialogue tree file.
|
||||
#
|
||||
# @param file [File] The provided file
|
||||
# @return [Boolean] True if the file is a tree; false otherwise
|
||||
def verify_tree(file)
|
||||
results = []
|
||||
begin
|
||||
tree = YAML.load_file(file)
|
||||
results << tree[0].keys.include?("trunk")
|
||||
results << tree[1]["branch"].keys.include?("number")
|
||||
results << tree[1]["branch"].keys.include?("text")
|
||||
results << tree[1]["branch"].keys.include?("leaf")
|
||||
rescue
|
||||
puts "Sorry chummer, I don't think this is a tree."
|
||||
puts "Verify your YAML file is formatted properly."
|
||||
results << false
|
||||
end
|
||||
|
||||
results.include?(false) ? false : true
|
||||
|
||||
end
|
Loading…
Reference in a new issue