focusgem7 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d17688cc286a580468e913e85116401568dfb33f
4
+ data.tar.gz: 54bdc74c536e78b5e2fa3676b8bedfc51d24adc9
5
+ SHA512:
6
+ metadata.gz: 11646ede6ffe7cb0611ef5a05b967c7495bf30b01e549e64a559cecb9dc03f8f26e6db22521e2b587bddd20746c782f9cab2be79a4e1f5cd746f6b29ad160a66
7
+ data.tar.gz: bfd2d7d33b173dc3f14f284cbd9bfd1f568973c8a0b0b6b391a1d039b9d4b37e96c0196d4b2c85233a49304f32f24b8abf98bafc164dfebc6e1ae9574388aa31
data/LICENSE ADDED
@@ -0,0 +1 @@
1
+ copyrights@danyrubyhan2015
data/README ADDED
@@ -0,0 +1 @@
1
+ I WILL MASTER CREATING GEM!!!
@@ -0,0 +1,7 @@
1
+ module Driver
2
+ class License
3
+ def self.information
4
+ puts "good to go"
5
+ end
6
+ end
7
+ end
data/bin/focus ADDED
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/focus/playlist'
4
+
5
+ playlist = Focus::Playlist.new("Making knowledge MINE")
6
+
7
+ puts __FILE__
8
+ puts File.dirname(__FILE__)
9
+ puts __dir__
10
+ puts File.join(File.dirname(__FILE__),'movies.csv')
11
+
12
+ default_movies_list =
13
+ File.join(File.dirname(__FILE__), 'movies.csv')
14
+ playlist.load_file(ARGV.shift || default_movies_list)
15
+ #Whenever you type a command that uses a file,
16
+ #the working directory(where you called the script from)
17
+ #will be the first place your shell looks to find the file.
18
+ #therefore, you need to provide absolute path for 'avengers'
19
+
20
+ movie3d = Focus::Movie3D.new('95%',5,10)
21
+ playlist.add_movie(movie3d)
22
+
23
+ loop do
24
+ puts "\nHow many viewings? ('quit' to exit)"
25
+ answer = gets.chomp.downcase #get string, gets next line from $stdin
26
+ #chomp removes any characters hanging onto end of string
27
+ case answer #answer is string because its from $stdin, you type in as string
28
+ when 'quit','exit'
29
+ playlist.print_stats
30
+ playlist.save_file
31
+ break
32
+ when /^\d*$/
33
+ puts "Enjoy your #{answer} viewings, achiever!"
34
+ playlist.play(answer.to_i)
35
+ else
36
+ puts "\nPlease enter a number or 'quit' to exit "
37
+ end
38
+ end
39
+
40
+
41
+
42
+
43
+
44
+
45
+
data/bin/movies.csv 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
@@ -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 = 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 Focus
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
+ end
47
+ end
48
+
49
+ if __FILE__ == $0
50
+ movie1 = Focus::Movie.new("Amazing Spiderman",8)
51
+ puts movie1
52
+ puts movie1.normalized_rank
53
+ movie1.thumbs_up
54
+ movie1.thumbs_down
55
+ puts movie1.rank
56
+ movie1.title="crappy spiderman"
57
+ puts movie1.title
58
+
59
+ end
@@ -0,0 +1,143 @@
1
+ require_relative 'movie'
2
+
3
+ module Focus
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
+ puts File.join(File.dirname(__FILE__), 'kiwi.kiwi')
25
+ # movie3d = Movie3D.new('90%',5,10)
26
+
27
+ # puts movie3d.cellphone
28
+ # puts movie3d.baby
29
+ # puts movie3d.scared
30
+ end
31
+
32
+ # polymorphism - 3dmovie and movie is a kind of relationship
33
+ # we can use 3dmovie on anywhere we expect to use movie this is polymorphism where
34
+ # we can use object A as like, object b, because OBJECT A is kind of
35
+ # object B - inherited
36
+
37
+
38
+ # movie.show_effect
39
+ #above method that is defined in child class doesnt work on super class movie objects because
40
+ #class Movie doesnt have this method. Ruby can only search methods UP on
41
+ #inhertiance hicharchy. only upwards, superclass and ancestors, never travel down
42
+ #on inheritance. show_effect is a new unique method defined in child class.
43
+
44
+ #quickly show you how you can use
45
+ #reflection(act of reflecting casting back)
46
+ #to look at the class Hierarchy
47
+ #(system of things ranked one above another)
48
+ #Class.superclass || Class.ancestors
49
+
50
+ # *take away*
51
+ # when you call a method on an object, ruby first tries
52
+ # to find that method in the objects class. If that method
53
+ # isnt found,ruby looks in the objects super class or module defined inside
54
+ #of superclass
55
+ # and its super class and so on all the way up to the
56
+ # top of the chain
57
+
58
+ #subclasses inherit behavior(method) and
59
+ #attributes(instance variables) from parents class.
60
+ #subclasses can also define their own unique behavior
61
+ #that wont be available in their parent class.
62
+
63
+
64
+ #subclasses can specialize(modify) behaviors(methods) by overwriting
65
+ #methods that are already defined in the parent class.
66
+ #and by using Super, they can modify existing method.
67
+
68
+ #subclasses have access to parent class's @instance variables
69
+
70
+ #we can call parent class methods on child class
71
+ #by using something called super
72
+
73
+ # class Animal
74
+ # attr_accessor :name
75
+
76
+ # def initialize(name) #receives name attribute from super and invokes initialize method
77
+ # @name = name
78
+ # end
79
+ # end
80
+
81
+ # class BadDog < Animal
82
+ # def initialize(age, name)
83
+ # super(name) #super invokes the whole initialize method in parent class and sends name attribute
84
+ # @age = age
85
+ # end
86
+ # end
87
+ # BadDog.new(2, "bear") => #<BadDog:0x007fb40b2beb68 @age=2, @name="bear">
88
+
89
+
90
+ # class Animal
91
+ # attr_accessor :name, :speed
92
+ # def initialize(name,speed)
93
+ # self.name = name
94
+ # self.speed = speed
95
+ # end
96
+
97
+ # end
98
+
99
+
100
+ # module Runnable
101
+ # attr_accessor :name,:speed
102
+
103
+ # def initialize(name,speed)
104
+ # self.name = name
105
+ # self.speed = speed
106
+ # end
107
+ # end
108
+
109
+ # class Cheetah
110
+ # include Runnable
111
+ # attr_accessor :power
112
+ # def initialize(name,speed,power)
113
+ # super(name,speed)
114
+
115
+ # @power = power
116
+ # end
117
+
118
+ # def stats
119
+ # puts self.name
120
+ # puts self.speed
121
+ # end
122
+
123
+ # end
124
+
125
+ # cheetah = Cheetah.new('cheetah',50,70)
126
+ # puts cheetah.name = "howdy"
127
+ # puts cheetah.stats
128
+
129
+ # animal = Animal.new('rocky',50)
130
+ # puts animal.inspect
131
+ # puts animal.name
132
+ # cheetah = Cheetah.new('cheetah',50,9000)
133
+ # puts cheetah.name, cheetah.speed,cheetah.power
134
+
135
+ # 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:
136
+ # #super invokes same method(this time initialize method) its called on, so it calls on initialize of class Animal.
137
+
138
+ # 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),
139
+ #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.
140
+
141
+
142
+ # 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.
143
+
@@ -0,0 +1,31 @@
1
+ module MovieSystem
2
+ VERSION = 1.0 #constant variable
3
+
4
+ def self.info #module method
5
+ puts "Moviesystem version #{VERSION}"
6
+ end
7
+
8
+ class Player
9
+ end
10
+ end
11
+
12
+ module GameSystem #in a module you can have
13
+ VERSION = 2.0 # constants
14
+
15
+ def self.info #module methods
16
+ puts "GameSystem version #{VERSION}"
17
+ end
18
+
19
+ class Player #module classes
20
+ end
21
+ end
22
+
23
+ puts MovieSystem::VERSION
24
+ puts GameSystem::VERSION
25
+ MovieSystem.info
26
+ GameSystem.info
27
+ puts MovieSystem::Player.new #module moviesystem::class Player.new
28
+ puts GameSystem::Player.new #module gamesystem scope resolution :: class player.new
29
+
30
+
31
+
@@ -0,0 +1,113 @@
1
+ require_relative 'dok2_and_quiet'
2
+ require_relative 'snack_bar'
3
+ require_relative 'movie'
4
+ require_relative 'movie3d'
5
+
6
+ module Focus
7
+ class Playlist
8
+ attr_reader :movies, :name
9
+
10
+ def initialize(name)
11
+ @name = name.capitalize
12
+ @movies = []
13
+ puts "\n***#{@name}'s Playlist has been created***"
14
+ end
15
+
16
+ def name=(title)
17
+ @name = title.capitalize
18
+ puts "Name of playlist has been modified to #{@name}"
19
+ end
20
+
21
+ def load_file(from_file)
22
+ puts "\n::::Loding File #{from_file.capitalize}::::"
23
+ File.readlines(from_file).each do |line|
24
+ add_movie(Movie.convert(line))
25
+ end
26
+ end
27
+
28
+ def save_file(to_file="final_records")
29
+ puts "\n::::::Saving To File #{to_file.capitalize}::::::"
30
+ File.open(to_file,"a+") do |file|
31
+ @movies.sort.map.with_index(1) do |movie, i|
32
+ file.puts("\t#{i}.#{movie.title},#{movie.rank}")
33
+ end
34
+ time = Time.new
35
+ file.puts time.strftime("Printed on %m/%d/%Y at %I:%M%p")
36
+ end
37
+ end
38
+
39
+ def add_movie(movie)
40
+ @movies << movie
41
+ puts "::added #{movie.title}::"
42
+ end
43
+
44
+ def play(viewings)
45
+
46
+ puts "\n\n~~Playing #{@name}'s playlist:~~"
47
+
48
+ @movies.sort {|x,y| y.rank <=> x.rank}.each do |movie|
49
+ puts "\tTrack: #{movie}"
50
+ end
51
+
52
+ snacks = SnackBar::SNACKS
53
+ puts "\nThere are #{snacks.size} snacks available in the Snack Bar."
54
+ snacks.sort {|x,y| y.carbs <=> x.carbs }.map.with_index(1) {|snack,i| puts "\t#{i}. #{snack.name.capitalize} - #{snack.carbs} carbs"}
55
+
56
+ puts "\nStarting the Movie,Enjoy your show!!"
57
+ 1.upto(viewings) do |counter|
58
+ puts "\nViewing: #{counter}"
59
+ @movies.sort.each do |movie|
60
+ Dok2AndQuiet.review(movie)
61
+ snack = SnackBar.random
62
+ movie.ate_snack(snack)
63
+ puts movie
64
+ puts "**************************************************"
65
+ end
66
+ end
67
+ end
68
+
69
+ def total_playlist_carbs
70
+ @movies.reduce(0) {|sum,movie| sum + movie.carbs_consumed}
71
+ end
72
+
73
+ def total_playlist_snacks
74
+ @movies.reduce(0) {|sum, movie| sum + movie.snack_carbs.keys.size}
75
+ end
76
+
77
+
78
+ def print_stats
79
+ puts "\n\n\nPlayList #{@name.upcase!}'s Stats: #{total_playlist_carbs} carbs - #{total_playlist_snacks} snacks"
80
+
81
+ @movies.sort {|x,y| y.carbs_consumed <=> x.carbs_consumed }.map.with_index(1) do |movie,i|
82
+ puts "#{i}. #{movie.title} - #{movie.carbs_consumed} *total* grand carbs"
83
+ movie.expose_hash {|key| puts "\t #{key.name} - #{key.carbs} carbs"}
84
+ end
85
+
86
+ hits, flops = @movies.partition {|m| m.hit? }
87
+
88
+ puts "\nHits: "
89
+ hits.sort.each do |movie|
90
+ puts "\t#{movie}"
91
+ end
92
+
93
+
94
+ puts "\nFlops: "
95
+ flops.sort.each do |movie|
96
+ puts "\t#{movie}"
97
+ end
98
+ end
99
+ end
100
+ end
101
+
102
+
103
+ if __FILE__ == $0
104
+ playlist1 = Focus::Playlist.new("Mastering Ruby 1")
105
+ movie1 = Focus::Movie.new("Knowledge and Skill",10)
106
+ movie2 = Focus::Movie.new("Focus",20)
107
+ playlist1.add_movie(movie1)
108
+ playlist1.add_movie(movie2)
109
+ # puts playlist1.movies
110
+ # puts playlist1.name
111
+ playlist1.play(3)
112
+ end
113
+
@@ -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,80 @@
1
+ require 'focus/movie'
2
+ require_relative 'spec_helper'
3
+
4
+ module Focus
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
@@ -0,0 +1,37 @@
1
+ require 'focus/playlist'
2
+
3
+ module Focus
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,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: focusgem7
3
+ version: !ruby/object:Gem::Version
4
+ version: 7.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Dany Han & Pragmatic Studio
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: I WILL MASTER CREATING GEM!!!
28
+ email: focus@gmail.com
29
+ executables:
30
+ - focus
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - LICENSE
35
+ - README
36
+ - bin/driver/driver.rb
37
+ - bin/focus
38
+ - bin/movies.csv
39
+ - lib/focus/dok2_and_quiet.rb
40
+ - lib/focus/mixins.rb
41
+ - lib/focus/movie.rb
42
+ - lib/focus/movie3d.rb
43
+ - lib/focus/namespaces.rb
44
+ - lib/focus/playlist.rb
45
+ - lib/focus/rankable.rb
46
+ - lib/focus/snack_bar.rb
47
+ - spec/focus/movie_spec.rb
48
+ - spec/focus/playlist_spec.rb
49
+ - spec/focus/spec_helper.rb
50
+ homepage: https://www.pragmaticstudio.com
51
+ licenses:
52
+ - copyrights@danyrubyhan2015
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ - bin
59
+ required_ruby_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '1.9'
64
+ required_rubygems_version: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ requirements: []
70
+ rubyforge_project:
71
+ rubygems_version: 2.2.2
72
+ signing_key:
73
+ specification_version: 4
74
+ summary: Plays movies and reviews them
75
+ test_files:
76
+ - spec/focus/movie_spec.rb
77
+ - spec/focus/playlist_spec.rb
78
+ - spec/focus/spec_helper.rb