Ich erstelle ein thor-Skript, das das aktuelle Projekt, das ich bin, basierend auf einer Yml-Datei zeigt, die Ruby-Strukturen speichert. Ich erhalte einen Fehler, als ich versuchte, diese YML-Datei zu laden.Thor YAML.load_file ungültige Unterklasse (TypeError)
from /Users/cpara/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/syck.rb:135:in `node_import'
from /Users/cpara/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/syck.rb:135:in `load'
from /Users/cpara/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/syck.rb:135:in `load'
from /Users/cpara/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/syck.rb:146:in `block in load_file'
from /Users/cpara/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/syck.rb:145:in `open'
from /Users/cpara/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/syck.rb:145:in `load_file'
from ./project:84:in `current'
from /Users/cpara/.rvm/gems/[email protected]/gems/thor-0.14.6/lib/thor/task.rb:22:in `run'
from /Users/cpara/.rvm/gems/[email protected]/gems/thor-0.14.6/lib/thor/invocation.rb:118:in `invoke_task'
from /Users/cpara/.rvm/gems/[email protected]/gems/thor-0.14.6/lib/thor.rb:263:in `dispatch'
from /Users/cpara/.rvm/gems/[email protected]/gems/thor-0.14.6/lib/thor/base.rb:389:in `start'
from ./project:213:in `<main>'
Hier ist das Stück des Skript auszuführen Ich versuche:
#!/usr/bin/env ruby
require 'yaml'
class Project < Thor
include Thor::Actions
# Task: return current project
desc 'current', 'Shows current project.'
def current
projects = YAML.load_file "#{ENV['HOME']}/.hana/data/projects.yml" #error
abort "There are no projects. Try creating one first." if not @projects.is_a? Array
projects.each do |project|
if project.current == true
say_status :current, "Current project: #{project.name} // #{project.type} // #{project.version}", :green
return project
end
end
say_status :error, "There is no current project.", :red
end
end
I triple den Weg in irb geprüft habe und es existiert. Ich dachte, es wäre die Art und Weise, wie mein YAML meine Ruby-Struktur speichert, aber selbst die Konsole, bekomme ich den Fehler. Hier ist meine YAML-Datei
---
- !ruby/struct:Proj
name: test
type: testing
version: 4.0.2
deploy_dir: deploy
source_dir: source
current: true
Irgendwelche Ideen? Ich laufe Ruby 1.9.2p318.
Sie Sir, sind genial. Vielen Dank. – cp3