flickskiwi 1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 675562d8ea69565b510119793d8062a81cfff953
4
+ data.tar.gz: b9dd9cd3c02dcb146b9c4caaa7b5d80c307d612f
5
+ SHA512:
6
+ metadata.gz: a5df2251f5e7695150588c17638baf9fa6f7194e20facd9fc6cc3eb61770f20c4a4bd78650f5ed2e677546ac48c32620a0dd34c1c1678f34ce3412ff28989c9c
7
+ data.tar.gz: 0549cfe5c6a48c56051a5adb1a8f247f0244e138eadaeed3723e2f2a62423427f63c93e598589e0b496538510d0da2e5c2f69ea2c10619543b282bb80c6863e0
data/LICENSE ADDED
@@ -0,0 +1 @@
1
+ LICENSE FOLDER
data/README ADDED
@@ -0,0 +1 @@
1
+ Movies Gem practice 1
data/bin/avengers ADDED
@@ -0,0 +1,7 @@
1
+ charlie,5
2
+ shiny,5
3
+ dany,5
4
+ kevin,5
5
+ ray,5
6
+ yohan,5
7
+ jeremiah,5
data/bin/final_records ADDED
@@ -0,0 +1,9 @@
1
+ 1.95%,146
2
+ 2.Charlie,9
3
+ 3.Yohan,7
4
+ 4.Kevin,7
5
+ 5.Shiny,6
6
+ 6.Ray,5
7
+ 7.Jeremiah,1
8
+ 8.Dany,-2
9
+ Printed on 09/17/2015 at 09:03PM
data/bin/flicks ADDED
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/flicks/playlist'
4
+ require_relative '../lib/flicks/movie3d'
5
+
6
+ playlist = Flicks::Playlist.new("Making knowledge MINE")
7
+
8
+ absolute_path =
9
+ File.join(File.dirname(__FILE__),'avengers')
10
+ playlist.load_file(ARGV.shift || absolute_path)
11
+
12
+ #Whenever you type a command that uses a file,
13
+ #the working directory(where you called the script from)
14
+ #will be the first place your shell looks to find the file.
15
+ #therefore, you need to provide absolute path for 'avengers'
16
+
17
+
18
+
19
+ movie3d = Flicks::Movie3D.new('95%',5,10)
20
+ playlist.add_movie(movie3d)
21
+
22
+ loop do
23
+ puts "\nHow many viewings? ('quit' to exit)"
24
+ answer = gets.chomp.downcase #get string, gets next line from $stdin
25
+ #chomp removes any characters hanging onto end of string
26
+ case answer #answer is string because its from $stdin, you type in as string
27
+ when 'quit','exit'
28
+ playlist.print_stats
29
+ playlist.save_file
30
+ break
31
+ when /^\d*$/
32
+ puts "Enjoy your #{answer} viewings, achiever!"
33
+ playlist.play(answer.to_i)
34
+ else
35
+ puts "\nPlease enter a number or 'quit' to exit "
36
+ end
37
+ end
38
+
39
+
40
+
41
+
42
+
43
+
44
+
@@ -0,0 +1,28 @@
1
+ require_relative 'movie'
2
+
3
+ module Dok2AndQuiet
4
+
5
+ def self.roll
6
+ @number = rand(1..6)
7
+ end
8
+
9
+ def self.review(movie)
10
+
11
+ case roll #or self.roll
12
+
13
+ when 1..2
14
+ movie.thumbs_down
15
+ puts "#{movie.title} got thumbs down"
16
+ when 3..4
17
+ puts "#{movie.title} got skipped"
18
+ when 5..6
19
+ movie.thumbs_up
20
+ puts "#{movie.title} got thumbs up!"
21
+ end
22
+ end
23
+ end
24
+
25
+ if __FILE__ == $0
26
+ movie = Flicks::Movie.new("ironman")
27
+ puts Dok2AndQuiet::review(movie) #Dok2AndQuiet.review(movie)
28
+ end
@@ -0,0 +1,58 @@
1
+ module Rankable
2
+ def thumbs_up
3
+ puts "#{self.title} got a thumbs_up"
4
+ end
5
+ end
6
+
7
+ class Movie
8
+ include Rankable
9
+ attr_accessor :title, :rank
10
+ def initialize(title,rank)
11
+ @title = title
12
+ @rank = rank
13
+
14
+ end
15
+ end
16
+
17
+ class Song
18
+ include Rankable
19
+ attr_accessor :title, :rank
20
+
21
+ def initialize(title,rank)
22
+ self.title = title
23
+ self.rank = rank
24
+ end
25
+ end
26
+
27
+ if __FILE__ == $0
28
+ movie = Movie.new('goonies',10)
29
+ movie.thumbs_up
30
+ song = Song.new('Ruby baby',10)
31
+ song.thumbs_up
32
+ end
33
+
34
+ #mixins - simply a module that has methods
35
+ # and those methods gets mixed into other classes
36
+
37
+ #we want to share some common behaviors across
38
+ #these classes which arent in the same inheritance hierchy
39
+ #(they are not in same ancestors line, no child and parent)
40
+
41
+ #mixed in modules effectively behave like superclasses.
42
+ #it changes the method look-up hierchy
43
+ #module lives in between the class that includes the
44
+ #module and their direct superclass
45
+ #so when we call a method, it looks into the object's
46
+ #class then it looks in the module, then it looks in
47
+ #the superclass and then all the way into the top
48
+
49
+ # It generally considered better practice if
50
+ # a module depends on a method or an attribute in the
51
+ # hosting class(the class that it gets mixed into)
52
+ # as opposted to relying on the instance variable being present
53
+
54
+
55
+
56
+
57
+
58
+
@@ -0,0 +1,59 @@
1
+ require_relative 'rankable'
2
+
3
+ module Flicks
4
+ class Movie
5
+ include Rankable
6
+
7
+ attr_reader :snack_carbs,:title
8
+ attr_accessor :rank
9
+
10
+ def initialize(title, rank=0)
11
+ @title = title.capitalize
12
+ @rank = rank
13
+ @snack_carbs = Hash.new(0)
14
+ end
15
+
16
+ def self.convert(line)
17
+ title,rank = line.split(',')
18
+ Movie.new(title,Integer(rank))
19
+ end
20
+
21
+ def expose_hash
22
+ @snack_carbs.each do |key,value|
23
+ snack = Snack.new(key,value.to_i)
24
+ yield(snack)
25
+ end
26
+ end
27
+
28
+ def carbs_consumed
29
+ @snack_carbs.values.reduce(0) {|sum,snack| sum + snack }
30
+ # @snacks_carbs.values.reduce(0,:+)
31
+ end
32
+
33
+ def ate_snack(snack)
34
+ @snack_carbs[snack.name] += snack.carbs
35
+ puts "Sold ~> #{snack.name.capitalize} - #{snack.carbs} carbs"
36
+ puts @snack_carbs
37
+ end
38
+
39
+ def title=(title)
40
+ @title = title.capitalize
41
+ end
42
+
43
+ def to_s
44
+ "#{@title} with a rank of #{@rank} (#{status})"
45
+ end
46
+
47
+ end
48
+ end
49
+
50
+ if __FILE__ == $0
51
+ movie1 = Flicks::Movie.new("Amazing Spiderman",8)
52
+ puts movie1
53
+ puts movie1.normalized_rank
54
+ movie1.thumbs_up
55
+ movie1.thumbs_down
56
+ puts movie1.rank
57
+ movie1.title="crappy spiderman"
58
+ puts movie1.title
59
+ end
@@ -0,0 +1,142 @@
1
+ require_relative 'movie'
2
+
3
+ module Flicks
4
+ class Movie3D < Movie
5
+ attr_accessor :wow_factor
6
+
7
+ def initialize(title,rank,wow_factor)
8
+ super(title,rank)
9
+
10
+ @wow_factor = wow_factor
11
+ end
12
+
13
+ def thumbs_up
14
+ self.wow_factor.times { super }
15
+ end
16
+
17
+ def show_effect
18
+ puts "Wow " * self.wow_factor
19
+ end
20
+ end
21
+ end
22
+
23
+ if __FILE__ == $0
24
+ movie3d = Flicks::Movie3D.new('90%',5,10)
25
+
26
+ puts movie3d.cellphone
27
+ puts movie3d.baby
28
+ puts movie3d.scared
29
+ end
30
+
31
+ # polymorphism - 3dmovie and movie is a kind of relationship
32
+ # we can use 3dmovie on anywhere we expect to use movie this is polymorphism where
33
+ # we can use object A as like, object b, because OBJECT A is kind of
34
+ # object B - inherited
35
+
36
+
37
+ # movie.show_effect
38
+ #above method that is defined in child class doesnt work on super class movie objects because
39
+ #class Movie doesnt have this method. Ruby can only search methods UP on
40
+ #inhertiance hicharchy. only upwards, superclass and ancestors, never travel down
41
+ #on inheritance. show_effect is a new unique method defined in child class.
42
+
43
+ #quickly show you how you can use
44
+ #reflection(act of reflecting casting back)
45
+ #to look at the class Hierarchy
46
+ #(system of things ranked one above another)
47
+ #Class.superclass || Class.ancestors
48
+
49
+ # *take away*
50
+ # when you call a method on an object, ruby first tries
51
+ # to find that method in the objects class. If that method
52
+ # isnt found,ruby looks in the objects super class or module defined inside
53
+ #of superclass
54
+ # and its super class and so on all the way up to the
55
+ # top of the chain
56
+
57
+ #subclasses inherit behavior(method) and
58
+ #attributes(instance variables) from parents class.
59
+ #subclasses can also define their own unique behavior
60
+ #that wont be available in their parent class.
61
+
62
+
63
+ #subclasses can specialize(modify) behaviors(methods) by overwriting
64
+ #methods that are already defined in the parent class.
65
+ #and by using Super, they can modify existing method.
66
+
67
+ #subclasses have access to parent class's @instance variables
68
+
69
+ #we can call parent class methods on child class
70
+ #by using something called super
71
+
72
+ # class Animal
73
+ # attr_accessor :name
74
+
75
+ # def initialize(name) #receives name attribute from super and invokes initialize method
76
+ # @name = name
77
+ # end
78
+ # end
79
+
80
+ # class BadDog < Animal
81
+ # def initialize(age, name)
82
+ # super(name) #super invokes the whole initialize method in parent class and sends name attribute
83
+ # @age = age
84
+ # end
85
+ # end
86
+ # BadDog.new(2, "bear") => #<BadDog:0x007fb40b2beb68 @age=2, @name="bear">
87
+
88
+
89
+ # class Animal
90
+ # attr_accessor :name, :speed
91
+ # def initialize(name,speed)
92
+ # self.name = name
93
+ # self.speed = speed
94
+ # end
95
+
96
+ # end
97
+
98
+
99
+ # module Runnable
100
+ # attr_accessor :name,:speed
101
+
102
+ # def initialize(name,speed)
103
+ # self.name = name
104
+ # self.speed = speed
105
+ # end
106
+ # end
107
+
108
+ # class Cheetah
109
+ # include Runnable
110
+ # attr_accessor :power
111
+ # def initialize(name,speed,power)
112
+ # super(name,speed)
113
+
114
+ # @power = power
115
+ # end
116
+
117
+ # def stats
118
+ # puts self.name
119
+ # puts self.speed
120
+ # end
121
+
122
+ # end
123
+
124
+ # cheetah = Cheetah.new('cheetah',50,70)
125
+ # puts cheetah.name = "howdy"
126
+ # puts cheetah.stats
127
+
128
+ # animal = Animal.new('rocky',50)
129
+ # puts animal.inspect
130
+ # puts animal.name
131
+ # cheetah = Cheetah.new('cheetah',50,9000)
132
+ # puts cheetah.name, cheetah.speed,cheetah.power
133
+
134
+ # When called with specific arguments, eg. super(a, b), the specified arguments will be sent up the method lookup chain. Let's see a quick example:
135
+ # #super invokes same method(this time initialize method) its called on, so it calls on initialize of class Animal.
136
+
137
+ # This is similar to our previous example, with the difference being that super takes an argument, hence(this time on) the passed in argument is sent to the superclass. Consequently(as a result,outcome,therefore),
138
+ #in this example when a BadDog class is created the passed in name argument ("bear") is passed to the superclass and set to the @name instance variable.
139
+
140
+
141
+ # When you call super from within a method, it will search the inheritance hierarchy for a method(that called super)by the same name and then invoke it.
142
+
@@ -0,0 +1,32 @@
1
+ module MovieSystem
2
+ VERSION = 1.0
3
+
4
+ def self.info
5
+ puts "Movie system version #{VERSION}"
6
+ end
7
+
8
+ class Player
9
+ end
10
+ end
11
+
12
+
13
+ module GameSystem
14
+ VERSION = 2.0
15
+
16
+ def self.info
17
+ puts "movie system version #{VERSION}"
18
+ end
19
+
20
+ class Player
21
+ end
22
+
23
+ end
24
+
25
+ if __FILE__ == $0
26
+ puts MovieSystem::VERSION
27
+ MovieSystem.info
28
+ puts MovieSystem::Player.new
29
+ puts GameSystem::VERSION
30
+ GameSystem.info
31
+ puts GameSystem::Player.new
32
+ end
@@ -0,0 +1,111 @@
1
+ require_relative 'dok2_and_quiet'
2
+ require_relative 'snack_bar'
3
+ require_relative 'movie'
4
+
5
+ module Flicks
6
+ class Playlist
7
+ attr_reader :movies, :name
8
+
9
+ def initialize(name)
10
+ @name = name.capitalize
11
+ @movies = []
12
+ puts "\n***#{@name}'s Playlist has been created***"
13
+ end
14
+
15
+ def name=(title)
16
+ @name = title.capitalize
17
+ puts "Name of playlist has been modified to #{@name}"
18
+ end
19
+
20
+ def load_file(from_file)
21
+ puts "\n::::Loding File #{from_file.capitalize}::::"
22
+ File.readlines(from_file).each do |line|
23
+ add_movie(Movie.convert(line))
24
+ end
25
+ end
26
+
27
+ def save_file(to_file='final_records')
28
+ puts "\n::::::Saving To File #{to_file.capitalize}::::::"
29
+ File.open(to_file,"a+") do |file|
30
+ @movies.sort.map.with_index(1) do |movie, i|
31
+ file.puts("\t#{i}.#{movie.title},#{movie.rank}")
32
+ end
33
+ time = Time.new
34
+ file.puts time.strftime("Printed on %m/%d/%Y at %I:%M%p")
35
+ end
36
+ end
37
+
38
+ def add_movie(movie)
39
+ @movies << movie
40
+ puts "::added #{movie.title}::"
41
+ end
42
+
43
+ def play(viewings)
44
+
45
+ puts "\n\n~~Playing #{@name}'s playlist:~~"
46
+
47
+ @movies.sort {|x,y| y.rank <=> x.rank}.each do |movie|
48
+ puts "\tTrack: #{movie}"
49
+ end
50
+
51
+ snacks = SnackBar::SNACKS
52
+ puts "\nThere are #{snacks.size} snacks available in the Snack Bar."
53
+ snacks.sort {|x,y| y.carbs <=> x.carbs }.map.with_index(1) {|snack,i| puts "\t#{i}. #{snack.name.capitalize} - #{snack.carbs} carbs"}
54
+
55
+ puts "\nStarting the Movie,Enjoy your show!!"
56
+ 1.upto(viewings) do |counter|
57
+ puts "\nViewing: #{counter}"
58
+ @movies.sort.each do |movie|
59
+ Dok2AndQuiet.review(movie)
60
+ snack = SnackBar.random
61
+ movie.ate_snack(snack)
62
+ puts movie
63
+ puts "**************************************************"
64
+ end
65
+ end
66
+ end
67
+
68
+ def total_playlist_carbs
69
+ @movies.reduce(0) {|sum,movie| sum + movie.carbs_consumed}
70
+ end
71
+
72
+ def total_playlist_snacks
73
+ @movies.reduce(0) {|sum, movie| sum + movie.snack_carbs.keys.size}
74
+ end
75
+
76
+
77
+ def print_stats
78
+ puts "\n\n\nPlayList #{@name.upcase!}'s Stats: #{total_playlist_carbs} carbs - #{total_playlist_snacks} snacks"
79
+
80
+ @movies.sort {|x,y| y.carbs_consumed <=> x.carbs_consumed }.map.with_index(1) do |movie,i|
81
+ puts "#{i}. #{movie.title} - #{movie.carbs_consumed} *total* grand carbs"
82
+ movie.expose_hash {|key| puts "\t #{key.name} - #{key.carbs} carbs"}
83
+ end
84
+
85
+ hits, flops = @movies.partition {|m| m.hit? }
86
+
87
+ puts "\nHits: "
88
+ hits.sort.each do |movie|
89
+ puts "\t#{movie}"
90
+ end
91
+
92
+
93
+ puts "\nFlops: "
94
+ flops.sort.each do |movie|
95
+ puts "\t#{movie}"
96
+ end
97
+ end
98
+ end
99
+ end
100
+
101
+ if __FILE__ == $0
102
+ playlist1 = Flicks::Playlist.new("Mastering Ruby 1")
103
+ movie1 = Flicks::Movie.new("Knowledge and Skill",10)
104
+ movie2 = Flicks::Movie.new("Focus",20)
105
+ playlist1.add_movie(movie1)
106
+ playlist1.add_movie(movie2)
107
+ # puts playlist1.movies
108
+ # puts playlist1.name
109
+ playlist1.play(3)
110
+ end
111
+
@@ -0,0 +1,26 @@
1
+ module Rankable
2
+
3
+ def thumbs_up
4
+ self.rank += 1
5
+ end
6
+
7
+ def thumbs_down
8
+ self.rank -= 1
9
+ end
10
+
11
+ def hit?
12
+ self.rank >= 10
13
+ end
14
+
15
+ def status
16
+ hit? ? "Hit" : "Flop"
17
+ end
18
+
19
+ def normalized_rank
20
+ self.rank / 2
21
+ end
22
+
23
+ def <=>(other)
24
+ other.rank <=> @rank
25
+ end
26
+ end
@@ -0,0 +1,27 @@
1
+ Snack = Struct.new(:name,:carbs)
2
+
3
+ module SnackBar
4
+ #constant - identifier with value that cannot be altered(changed)
5
+ SNACKS = [
6
+ Snack.new(:popcorn,20),
7
+ Snack.new(:candy,15),
8
+ Snack.new(:nachos,40),#class Snack
9
+ Snack.new(:pretzel,10),
10
+ Snack.new(:pop,5) #instance object created by class Snack
11
+ ]
12
+
13
+ def self.random
14
+ SNACKS.sample
15
+ end
16
+
17
+ end
18
+
19
+ if __FILE__ == $0
20
+ snacks = SnackBar::SNACKS
21
+ puts snacks
22
+ snack = SnackBar.random
23
+ puts "Enjoy your random #{snack.name} with #{snack.carbs} carbs"
24
+ end
25
+
26
+ #one snackbar in our program, so it is fit
27
+ #to make module instead of class
@@ -0,0 +1,81 @@
1
+ require 'flicks/movie'
2
+ require_relative 'spec_helper'
3
+
4
+ module Flicks
5
+ RSpec.describe Movie do
6
+ before do
7
+ $stdout = StringIO.new
8
+ end
9
+
10
+ context "Let's unit test Movie methods" do
11
+ before do
12
+ @initial_rank = 10
13
+ @movie = Movie.new('goonies',@initial_rank)
14
+ end
15
+
16
+ it "has a capitalized title" do
17
+ @movie.title.should_not == "goonies"
18
+ @movie.title.should == "Goonies"
19
+ end
20
+
21
+ it "has an initial rank" do
22
+ @movie.rank.should == 10
23
+ end
24
+
25
+ it "has a string representation" do
26
+ @movie.to_s.should == "Goonies with a rank of 10 (Hit)"
27
+ end
28
+
29
+ it "increases rank by 1 when given a thumbs up" do
30
+ @movie.thumbs_up
31
+ @movie.rank.should == @initial_rank + 1
32
+ end
33
+
34
+ it "decreases rank by 1 when given a thumbs down" do
35
+ @movie.thumbs_down
36
+ @movie.rank.should == @initial_rank - 1
37
+ end
38
+ end
39
+
40
+ context "can have default values" do
41
+ before do
42
+ @movie = Movie.new('goonies')
43
+ end
44
+
45
+ it "has a default rank of 0 if not initialized" do
46
+ @movie.rank.should == 0
47
+ end
48
+ end
49
+
50
+ context "with a rank of at least 10." do
51
+ before do
52
+ @movie = Movie.new('lawyer',10)
53
+ end
54
+
55
+ it "is a Hit" do
56
+ expect(@movie).to be_hit
57
+ end
58
+
59
+ it "has a HIT status" do
60
+ expect(@movie.status).to eq("Hit")
61
+ end
62
+
63
+
64
+ end
65
+
66
+ context 'with a rank less than 10.' do
67
+ before do
68
+ @movie = Movie.new('fantastic 4',5)
69
+ end
70
+
71
+ it "is not a hit" do
72
+ expect(@movie).to_not be_hit
73
+ end
74
+
75
+ it 'has a Flop status' do
76
+ expect(@movie.status).to eq('Flop')
77
+ end
78
+ end
79
+ end
80
+ end
81
+
@@ -0,0 +1,37 @@
1
+ require 'flicks/playlist'
2
+
3
+ module Flicks
4
+ RSpec.describe Playlist do
5
+ before do
6
+ $stdout = StringIO.new
7
+ @playlist = Playlist.new('show me the money')
8
+ end
9
+
10
+ context '*being played with one movie.' do
11
+ before do
12
+ @initial_rank = 10
13
+ @movie = Movie.new('L4L',@initial_rank)
14
+ @playlist.add_movie(@movie)
15
+ end
16
+
17
+ it 'gives the movie a thumbs up when high number is rolled' do
18
+ allow(Dok2AndQuiet).to receive(:roll).and_return(5)
19
+ @playlist.play(1)
20
+
21
+ expect(@movie.rank).to eq(@initial_rank + 1)
22
+ end
23
+
24
+ it 'skips the movie when medium number is rolled' do
25
+ allow(Dok2AndQuiet).to receive(:roll).and_return(3)
26
+ @playlist.play(1)
27
+ expect(@movie.rank).to eq(@initial_rank)
28
+ end
29
+
30
+ it 'gives the movie a thumbs down if lower number is rolled' do
31
+ allow(Dok2AndQuiet).to receive(:roll).and_return(1)
32
+ @playlist.play(1)
33
+ expect(@movie.rank).to eq(@initial_rank - 1)
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,8 @@
1
+ RSpec.configure do |config|
2
+ config.expect_with :rspec do |c|
3
+ c.syntax = [:should, :expect] # default, enables both `should` and `expect`
4
+ end
5
+ config.mock_with :rspec do |c|
6
+ c.syntax = [:should, :expect] # default, enables both `should` and `expect`
7
+ end
8
+ end
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flickskiwi
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Dany Ruby Han!
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: |
28
+ Movies Gem practice 1
29
+ email: danyhan89@gmail.com
30
+ executables:
31
+ - flicks
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - LICENSE
36
+ - README
37
+ - bin/avengers
38
+ - bin/final_records
39
+ - bin/flicks
40
+ - lib/flicks/dok2_and_quiet.rb
41
+ - lib/flicks/mixins.rb
42
+ - lib/flicks/movie.rb
43
+ - lib/flicks/movie3d.rb
44
+ - lib/flicks/namespaces.rb
45
+ - lib/flicks/playlist.rb
46
+ - lib/flicks/rankable.rb
47
+ - lib/flicks/snack_bar.rb
48
+ - spec/flicks/movie_spec.rb
49
+ - spec/flicks/playlist_spec.rb
50
+ - spec/flicks/spec_helper.rb
51
+ homepage: https://pragmaticstudio.com
52
+ licenses: []
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '1.9'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubyforge_project:
70
+ rubygems_version: 2.2.2
71
+ signing_key:
72
+ specification_version: 4
73
+ summary: plays and reviews movies
74
+ test_files:
75
+ - spec/flicks/movie_spec.rb
76
+ - spec/flicks/playlist_spec.rb
77
+ - spec/flicks/spec_helper.rb