-
Notifications
You must be signed in to change notification settings - Fork 0
/
newblog.rb
74 lines (57 loc) · 1.31 KB
/
newblog.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
class Blog
@@all_blog_posts = []
@@num_blog_posts = 0
def self.all
@@all_blog_posts
end
def self.add(thing)
@@all_blog_posts << thing
@@num_blog_posts += 1
end
def self.publish
@@all_blog_posts.each do |post|
puts "Title:\n #{post.title}"
puts "Body:\n #{post.content}"
puts "Publish Date:\n #{post.created_at}"
end
end
end
class BlogPost < Blog
def self.create
post = new
puts "Name your blog post:"
post.title = gets.chomp
puts "Your blog post content:"
post.content = gets.chomp
post.created_at = Time.now
post.save
puts "Do you want to create another post? [Y/N]"
create if gets.chomp.downcase == 'y'
#returns if not ‘y’ and stops the rest of the script from running. otherwise, continues to run ‘create’ method.
end
def title
@title
end
def title=(title) # a setter method always takes an argument
@title = title # don't forget to set the instance variable
end
def created_at
@created_at
end
def created_at=(created_at)
@created_at = created_at
end
def content
@content
end
def content=(content)
@content = content
end
def save
BlogPost.add(self)
end
end
BlogPost.create
all_blog_posts = BlogPost.all
puts all_blog_posts.inspect
BlogPost.publish