studio_game_gem 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/studio_game_gem +3 -0
- data/files/movies.csv +4 -0
- data/files/movies_list1.csv +2 -0
- data/files/playlist_movies.csv +2 -0
- data/lib/movie.rb +50 -0
- data/lib/movie3d.rb +21 -0
- data/lib/movie_validator.rb +7 -0
- data/lib/playlist.rb +67 -0
- data/lib/reviewer.rb +21 -0
- data/lib/validator.rb +8 -0
- data/lib/version.rb +3 -0
- metadata +55 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: fc86608a5add0ba796d238da258231f2f6a0dffbbc82d88002db070c1f0cb325
|
|
4
|
+
data.tar.gz: e6807d83fc8041532a11c594b1864e83006e24c326c690a495142461cbf8dd2c
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 2d70566ee2a4087c5f1e41ec3868d2d286d26b60d0088115018f1cdbc5a251fe0f64d5ff9b39993276ab736a08a409a1f4984afb55ae69b9bb841d524c5434c2
|
|
7
|
+
data.tar.gz: 6ed2c23018a2dae0c46edb1f49585ad8f99d68d27e2a5fd4deb47c66ed13173fe785994e20867325aa7858b278ce7eeea388e7dce5c9274f6d6c6434baa0fd32
|
data/bin/studio_game_gem
ADDED
data/files/movies.csv
ADDED
data/lib/movie.rb
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require_relative './reviewer'
|
|
2
|
+
module StudioGame
|
|
3
|
+
class Movie
|
|
4
|
+
include Reviewer
|
|
5
|
+
attr_reader :title
|
|
6
|
+
attr_reader :rank
|
|
7
|
+
attr_reader :movie_type
|
|
8
|
+
def initialize(title, rank=0, movie_type=:two_d)
|
|
9
|
+
@title = title.capitalize
|
|
10
|
+
@rank = Integer(rank)
|
|
11
|
+
@movie_type = if movie_type.nil?
|
|
12
|
+
:two_d
|
|
13
|
+
else
|
|
14
|
+
movie_type
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
def self.from_csv(line)
|
|
18
|
+
name, rank, movie_type = line.split(",")
|
|
19
|
+
Movie.new(name, rank, movie_type)
|
|
20
|
+
end
|
|
21
|
+
def t_up
|
|
22
|
+
@rank += 1
|
|
23
|
+
end
|
|
24
|
+
def t_down
|
|
25
|
+
@rank -= 1
|
|
26
|
+
end
|
|
27
|
+
def hit?
|
|
28
|
+
@rank > 10
|
|
29
|
+
end
|
|
30
|
+
def play
|
|
31
|
+
"Playing movie #{@title}, that is having rank : #{@rank}"
|
|
32
|
+
end
|
|
33
|
+
def to_csv
|
|
34
|
+
"#{title},#{rank}"
|
|
35
|
+
end
|
|
36
|
+
def to_s
|
|
37
|
+
"Movie #{@title}, that is having rank : #{@rank}, movie_type: #{movie_type}"
|
|
38
|
+
end
|
|
39
|
+
def <=>(other_movie)
|
|
40
|
+
other_movie.rank <=> rank
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
$PROGRAM_NAME
|
|
44
|
+
$0
|
|
45
|
+
if $0 == __FILE__
|
|
46
|
+
m1 = Movie.new("race", 10, nil)
|
|
47
|
+
m1.play
|
|
48
|
+
puts m1
|
|
49
|
+
end
|
|
50
|
+
end
|
data/lib/movie3d.rb
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require_relative "./movie"
|
|
2
|
+
module StudioGame
|
|
3
|
+
class Movie3D < Movie
|
|
4
|
+
def initialize(title, rank, factor_value)
|
|
5
|
+
super(title, rank)
|
|
6
|
+
@factor_value = factor_value
|
|
7
|
+
end
|
|
8
|
+
def three_d_factor
|
|
9
|
+
puts "Wow!" * @factor_value
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
if $0 == __FILE__
|
|
14
|
+
movie_3d = Movie3D.new("Abcd", 15, 2)
|
|
15
|
+
puts movie_3d.title
|
|
16
|
+
puts movie_3d.rank
|
|
17
|
+
puts movie_3d.three_d_factor
|
|
18
|
+
def get_super_class(object)
|
|
19
|
+
object.ancestors.select{|obj| obj.instance_of?(Class)}
|
|
20
|
+
end
|
|
21
|
+
end
|
data/lib/playlist.rb
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
require_relative "./movie"
|
|
2
|
+
require_relative './movie_validator'
|
|
3
|
+
module StudioGame
|
|
4
|
+
class Playlist
|
|
5
|
+
attr_reader :title, :movies
|
|
6
|
+
|
|
7
|
+
def initialize(title)
|
|
8
|
+
@title = title
|
|
9
|
+
@movies = []
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def load_from_file(file_name)
|
|
13
|
+
File.open(file_name) do |file|
|
|
14
|
+
file.each_line do |line|
|
|
15
|
+
add_movie Movie.from_csv(line)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def add_movie(movie)
|
|
21
|
+
if MovieValidator.valid_movie_object?(movie)
|
|
22
|
+
@movies.push(movie)
|
|
23
|
+
else
|
|
24
|
+
false
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def include?(movie)
|
|
29
|
+
@movies.include? movie
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def save
|
|
33
|
+
File.open("./../files/playlist_movies.csv", "w") do |file|
|
|
34
|
+
movies.each do |movie|
|
|
35
|
+
file.write movie.to_csv
|
|
36
|
+
file.write "\n"
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def print_stats
|
|
42
|
+
puts "print_stats"
|
|
43
|
+
@movies.sort.each do |movie|
|
|
44
|
+
puts movie.to_s
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def play(view_count)
|
|
49
|
+
puts "-------- Playing Playlist \"#{@title}\"--------"
|
|
50
|
+
1.upto(Integer(view_count)) do |count|
|
|
51
|
+
puts "\nViewing Playlist #{@title} #{count} time"
|
|
52
|
+
@movies.each do |movie|
|
|
53
|
+
movie.review
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
pl1 = StudioGame::Playlist.new("Raghvendra")
|
|
61
|
+
pl1.load_from_file(File.expand_path("./../../files/movies.csv",__FILE__))
|
|
62
|
+
puts "Please give the number of view_count..!"
|
|
63
|
+
view_count = gets.chomp
|
|
64
|
+
puts "view_count : #{view_count} ......TODO Use this with play!"
|
|
65
|
+
pl1.play(view_count)
|
|
66
|
+
puts "---------------"
|
|
67
|
+
pl1.print_stats
|
data/lib/reviewer.rb
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module StudioGame
|
|
2
|
+
module Reviewer
|
|
3
|
+
def review
|
|
4
|
+
case roll_die
|
|
5
|
+
when 0..4
|
|
6
|
+
self.t_down
|
|
7
|
+
puts self.play
|
|
8
|
+
when 5..9
|
|
9
|
+
self.t_up
|
|
10
|
+
puts self.play
|
|
11
|
+
when (10..Float::INFINITY)
|
|
12
|
+
self.t_up
|
|
13
|
+
self.t_up
|
|
14
|
+
puts self.play
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
def roll_die
|
|
18
|
+
rand(0..20)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
data/lib/validator.rb
ADDED
data/lib/version.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: studio_game_gem
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- GE Team
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2019-06-20 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description:
|
|
14
|
+
email:
|
|
15
|
+
- hr@gemsessence.com
|
|
16
|
+
executables:
|
|
17
|
+
- studio_game_gem
|
|
18
|
+
extensions: []
|
|
19
|
+
extra_rdoc_files: []
|
|
20
|
+
files:
|
|
21
|
+
- bin/studio_game_gem
|
|
22
|
+
- files/movies.csv
|
|
23
|
+
- files/movies_list1.csv
|
|
24
|
+
- files/playlist_movies.csv
|
|
25
|
+
- lib/movie.rb
|
|
26
|
+
- lib/movie3d.rb
|
|
27
|
+
- lib/movie_validator.rb
|
|
28
|
+
- lib/playlist.rb
|
|
29
|
+
- lib/reviewer.rb
|
|
30
|
+
- lib/validator.rb
|
|
31
|
+
- lib/version.rb
|
|
32
|
+
homepage: http://gemsessence.com
|
|
33
|
+
licenses:
|
|
34
|
+
- MIT
|
|
35
|
+
metadata: {}
|
|
36
|
+
post_install_message:
|
|
37
|
+
rdoc_options: []
|
|
38
|
+
require_paths:
|
|
39
|
+
- lib
|
|
40
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
41
|
+
requirements:
|
|
42
|
+
- - ">="
|
|
43
|
+
- !ruby/object:Gem::Version
|
|
44
|
+
version: '0'
|
|
45
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
46
|
+
requirements:
|
|
47
|
+
- - ">="
|
|
48
|
+
- !ruby/object:Gem::Version
|
|
49
|
+
version: '0'
|
|
50
|
+
requirements: []
|
|
51
|
+
rubygems_version: 3.0.3
|
|
52
|
+
signing_key:
|
|
53
|
+
specification_version: 4
|
|
54
|
+
summary: Players
|
|
55
|
+
test_files: []
|