module Billy::Knowledge
Attributes
knowledge_file[W]
Public Instance Methods
default_knowledge()
click to toggle source
# File lib/billygoat/knowledge.rb, line 28 def default_knowledge { skills: [ { name: 'Learn', internal_location: system_skills_path("learn.rb") }, { name: 'Show', internal_location: system_skills_path("show.rb") }, { name: 'Update', internal_location: system_skills_path("update.rb") }, { name: 'Help', internal_location: system_skills_path("help.rb") }, { name: 'Git', internal_location: system_skills_path("git.rb") }, { name: 'Document', internal_location: system_skills_path("document.rb") }, { name: 'Say', internal_location: system_skills_path("say.rb") } ] } end
knowledge()
click to toggle source
# File lib/billygoat/knowledge.rb, line 14 def knowledge return @knowledge if @knowledge save_knowledge(default_knowledge) unless File.exists?(knowledge_path) @knowledge = YAML.load_file(knowledge_path) end
knowledge_file()
click to toggle source
# File lib/billygoat/knowledge.rb, line 5 def knowledge_file @knowledge_file ||= "knowledge.yml" end
knowledge_path()
click to toggle source
# File lib/billygoat/knowledge.rb, line 10 def knowledge_path "#{config_path}/#{knowledge_file}" end
save_knowledge(knowledge = @knowledge)
click to toggle source
# File lib/billygoat/knowledge.rb, line 70 def save_knowledge(knowledge = @knowledge) create_config_path save_yaml(knowledge_path, knowledge) end
update_knowledge()
click to toggle source
# File lib/billygoat/knowledge.rb, line 20 def update_knowledge knowledge[:skills] = skill_set .skills .reject{ |skill| autoloaded_skills.map{|s| s[:name]}.include? skill.name } .uniq{ |skill| skill.name } .map(&:to_h) end
validate_knowledge()
click to toggle source
# File lib/billygoat/knowledge.rb, line 63 def validate_knowledge return if knowledge && knowledge.is_a?(Hash) && knowledge.include?(:skills) fail "Naaa! Broken knowledge file." end