Class: Cheatly::Sheet

Inherits:
Object
  • Object
show all
Defined in:
lib/cheatly/sheet.rb

Direct Known Subclasses

LocalSheet

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(title, body = nil, options = {}) ⇒ Sheet

Returns a new instance of Sheet.



5
6
7
8
# File 'lib/cheatly/sheet.rb', line 5

def initialize(title, body = nil, options = {})
  @title, @body = title, body
  @persisted = options[:persisted] || false
end

Instance Attribute Details

#bodyObject

Returns the value of attribute body.



3
4
5
# File 'lib/cheatly/sheet.rb', line 3

def body
  @body
end

#persistedObject

Returns the value of attribute persisted.



3
4
5
# File 'lib/cheatly/sheet.rb', line 3

def persisted
  @persisted
end

#titleObject

Returns the value of attribute title.



3
4
5
# File 'lib/cheatly/sheet.rb', line 3

def title
  @title
end

Class Method Details

.adapterObject



46
47
48
# File 'lib/cheatly/sheet.rb', line 46

def self.adapter
  @adapter ||= Cheatly::Adapter::GitHub.new
end

.allObject



41
42
43
44
# File 'lib/cheatly/sheet.rb', line 41

def self.all
  handles = adapter.all
  handles.map { |h| Sheet.new(h, nil) }
end

.find(name) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/cheatly/sheet.rb', line 31

def self.find(name)
  body = adapter.find(name)
  self.new(name, body, persisted: true)
rescue Octokit::NotFound
  nil
rescue Exception => e
  puts e.message
  nil
end

Instance Method Details

#createObject



14
15
16
17
# File 'lib/cheatly/sheet.rb', line 14

def create
  adapter.create(title, body)
  @persisted = true
end

#saveObject



23
24
25
26
27
28
29
# File 'lib/cheatly/sheet.rb', line 23

def save
  if @persisted
    update
  else
    create
  end
end

#to_sObject



10
11
12
# File 'lib/cheatly/sheet.rb', line 10

def to_s
  body.to_s
end

#updateObject



19
20
21
# File 'lib/cheatly/sheet.rb', line 19

def update
  adapter.update(title, body)
end