Class: Railsquest::Quest
- Inherits:
-
Object
- Object
- Railsquest::Quest
- Defined in:
- lib/railsquest/quest.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
-
#path ⇒ Object
readonly
Returns the value of attribute path.
-
#port ⇒ Object
Returns the value of attribute port.
-
#secret ⇒ Object
readonly
Returns the value of attribute secret.
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object
- #attempts ⇒ Object
- #dirname ⇒ Object
- #exist? ⇒ Boolean
- #html_id ⇒ Object
- #init! ⇒ Object
-
#initialize(path) ⇒ Quest
constructor
A new instance of Quest.
- #remove! ⇒ Object
- #to_hash ⇒ Object
- #to_s ⇒ Object
- #uri ⇒ Object
- #web_uri ⇒ Object
Constructor Details
permalink #initialize(path) ⇒ Quest
Returns a new instance of Quest.
22 23 24 |
# File 'lib/railsquest/quest.rb', line 22 def initialize(path) @path = Pathname(path) end |
Instance Attribute Details
permalink #name ⇒ Object
Returns the value of attribute name.
8 9 10 |
# File 'lib/railsquest/quest.rb', line 8 def name @name end |
permalink #path ⇒ Object (readonly)
Returns the value of attribute path.
30 31 32 |
# File 'lib/railsquest/quest.rb', line 30 def path @path end |
permalink #port ⇒ Object
Returns the value of attribute port.
8 9 10 |
# File 'lib/railsquest/quest.rb', line 8 def port @port end |
permalink #secret ⇒ Object (readonly)
Returns the value of attribute secret.
9 10 11 |
# File 'lib/railsquest/quest.rb', line 9 def secret @secret end |
Class Method Details
permalink .for_name(name) ⇒ Object
[View source]
11 12 13 14 15 16 |
# File 'lib/railsquest/quest.rb', line 11 def self.for_name(name) n = name.gsub(/[^A-Za-z-]+/, '_') q = new(Railsquest.quests_path.join(n + ".quest")) q.name = n q end |
permalink .html_id(name) ⇒ Object
[View source]
18 19 20 |
# File 'lib/railsquest/quest.rb', line 18 def self.html_id(name) name.gsub(/[^A-Za-z-]+/, '').downcase end |
Instance Method Details
permalink #==(other) ⇒ Object
[View source]
26 27 28 |
# File 'lib/railsquest/quest.rb', line 26 def ==(other) other.respond_to?(:path) && self.path == other.path end |
permalink #attempts ⇒ Object
[View source]
70 71 72 |
# File 'lib/railsquest/quest.rb', line 70 def attempts end |
permalink #dirname ⇒ Object
[View source]
58 59 60 |
# File 'lib/railsquest/quest.rb', line 58 def dirname path.split.last.to_s end |
permalink #exist? ⇒ Boolean
32 33 34 |
# File 'lib/railsquest/quest.rb', line 32 def exist? path.exist? end |
permalink #html_id ⇒ Object
[View source]
54 55 56 |
# File 'lib/railsquest/quest.rb', line 54 def html_id self.class.html_id(name) end |
permalink #init! ⇒ Object
[View source]
36 37 38 39 40 |
# File 'lib/railsquest/quest.rb', line 36 def init! secret = `uuidgen`.strip contents = '{\"secret\" : \"' + secret + '\", \"port\" : ' + port + '}' Dir.chdir(Railsquest.quests_path) { `echo "#{contents}" >> #{path}` } end |
permalink #remove! ⇒ Object
[View source]
74 75 76 |
# File 'lib/railsquest/quest.rb', line 74 def remove! path.rmtree end |
permalink #to_hash ⇒ Object
[View source]
78 79 80 81 82 83 84 |
# File 'lib/railsquest/quest.rb', line 78 def to_hash { "name" => name, "uri" => uri, "host_name" => Railsquest.host_name } end |
permalink #to_s ⇒ Object
[View source]
62 63 64 |
# File 'lib/railsquest/quest.rb', line 62 def to_s name end |
permalink #uri ⇒ Object
[View source]
42 43 44 |
# File 'lib/railsquest/quest.rb', line 42 def uri Railsquest.quest_uri.gsub(/\/$/, '') + ':' + File.open(path) { |f| JSON.parse(f.gets)["port"].to_s } end |
permalink #web_uri ⇒ Object
[View source]
66 67 68 |
# File 'lib/railsquest/quest.rb', line 66 def web_uri Railsquest.web_uri + "#" + html_id end |