mochee 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: bf8d782e37d399dcea2e12c8d851dfa12535922b
4
+ data.tar.gz: 19c056ba64f76961d7e51634231c40cf13f54200
5
+ SHA512:
6
+ metadata.gz: 8dba0768443527e079ff04dfca498ffccc446b64a7fe52cce07142461052aa816dc30d9d418bc6223417e48325767a6f4bcb385752f2e3cc2f7b197a3c28ac3c
7
+ data.tar.gz: b5e66cc0ade4389c49d24820a6f293b3d526820652566237a66383d27969fd53e188b4acc43ad00b3a11879a2bcc16a6ad8b37af415f1a87950706115cc7b250
data/LICENSE ADDED
@@ -0,0 +1 @@
1
+ belongs to Dany Han
data/README ADDED
@@ -0,0 +1 @@
1
+ coding on Friday morning. Going to eat oatmeal soon ;)
@@ -0,0 +1,7 @@
1
+ module Amazing
2
+ class Spiderman
3
+ def self.attack
4
+ puts "spider web!!"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/mochee/playlist'
4
+ require_relative '../lib/mochee/movie3d'
5
+
6
+
7
+ playlist = Mochee::Playlist.new("Making knowledge MINE")
8
+ default_movies_list =
9
+ File.join(File.dirname(__FILE__),'movies.csv')
10
+
11
+ playlist.load_file(ARGV.shift || default_movies_list)
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 = Mochee::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,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 = Mochee::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,58 @@
1
+ require_relative 'rankable'
2
+
3
+ module Mochee
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 = Mochee::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
+ end
@@ -0,0 +1,139 @@
1
+ require_relative 'movie'
2
+
3
+ module Mochee
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 movie3d = Mochee::Movie3D.new('90%',5,10)
25
+
26
+ end
27
+
28
+ # polymorphism - 3dmovie and movie is a kind of relationship
29
+ # we can use 3dmovie on anywhere we expect to use movie this is polymorphism where
30
+ # we can use object A as like, object b, because OBJECT A is kind of
31
+ # object B - inherited
32
+
33
+
34
+ # movie.show_effect
35
+ #above method that is defined in child class doesnt work on super class movie objects because
36
+ #class Movie doesnt have this method. Ruby can only search methods UP on
37
+ #inhertiance hicharchy. only upwards, superclass and ancestors, never travel down
38
+ #on inheritance. show_effect is a new unique method defined in child class.
39
+
40
+ #quickly show you how you can use
41
+ #reflection(act of reflecting casting back)
42
+ #to look at the class Hierarchy
43
+ #(system of things ranked one above another)
44
+ #Class.superclass || Class.ancestors
45
+
46
+ # *take away*
47
+ # when you call a method on an object, ruby first tries
48
+ # to find that method in the objects class. If that method
49
+ # isnt found,ruby looks in the objects super class or module defined inside
50
+ #of superclass
51
+ # and its super class and so on all the way up to the
52
+ # top of the chain
53
+
54
+ #subclasses inherit behavior(method) and
55
+ #attributes(instance variables) from parents class.
56
+ #subclasses can also define their own unique behavior
57
+ #that wont be available in their parent class.
58
+
59
+
60
+ #subclasses can specialize(modify) behaviors(methods) by overwriting
61
+ #methods that are already defined in the parent class.
62
+ #and by using Super, they can modify existing method.
63
+
64
+ #subclasses have access to parent class's @instance variables
65
+
66
+ #we can call parent class methods on child class
67
+ #by using something called super
68
+
69
+ # class Animal
70
+ # attr_accessor :name
71
+
72
+ # def initialize(name) #receives name attribute from super and invokes initialize method
73
+ # @name = name
74
+ # end
75
+ # end
76
+
77
+ # class BadDog < Animal
78
+ # def initialize(age, name)
79
+ # super(name) #super invokes the whole initialize method in parent class and sends name attribute
80
+ # @age = age
81
+ # end
82
+ # end
83
+ # BadDog.new(2, "bear") => #<BadDog:0x007fb40b2beb68 @age=2, @name="bear">
84
+
85
+
86
+ # class Animal
87
+ # attr_accessor :name, :speed
88
+ # def initialize(name,speed)
89
+ # self.name = name
90
+ # self.speed = speed
91
+ # end
92
+
93
+ # end
94
+
95
+
96
+ # module Runnable
97
+ # attr_accessor :name,:speed
98
+
99
+ # def initialize(name,speed)
100
+ # self.name = name
101
+ # self.speed = speed
102
+ # end
103
+ # end
104
+
105
+ # class Cheetah
106
+ # include Runnable
107
+ # attr_accessor :power
108
+ # def initialize(name,speed,power)
109
+ # super(name,speed)
110
+
111
+ # @power = power
112
+ # end
113
+
114
+ # def stats
115
+ # puts self.name
116
+ # puts self.speed
117
+ # end
118
+
119
+ # end
120
+
121
+ # cheetah = Cheetah.new('cheetah',50,70)
122
+ # puts cheetah.name = "howdy"
123
+ # puts cheetah.stats
124
+
125
+ # animal = Animal.new('rocky',50)
126
+ # puts animal.inspect
127
+ # puts animal.name
128
+ # cheetah = Cheetah.new('cheetah',50,9000)
129
+ # puts cheetah.name, cheetah.speed,cheetah.power
130
+
131
+ # 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:
132
+ # #super invokes same method(this time initialize method) its called on, so it calls on initialize of class Animal.
133
+
134
+ # 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),
135
+ #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.
136
+
137
+
138
+ # 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.
139
+
@@ -0,0 +1,29 @@
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
+ module GameSystem
13
+ VERSION = 2.0
14
+
15
+ def self.info
16
+ puts "Game system version #{VERSION}"
17
+ end
18
+
19
+ class Player
20
+ end
21
+ end
22
+
23
+
24
+ MovieSystem::VERSION
25
+ GameSystem::VERSION
26
+ MovieSystem.info
27
+ GameSystem.info
28
+ puts MovieSystem::Player.new
29
+ puts GameSystem::Player.new
@@ -0,0 +1,112 @@
1
+ require_relative 'dok2_and_quiet'
2
+ require_relative 'snack_bar'
3
+ require_relative 'movie'
4
+ require_relative 'movie3d'
5
+
6
+ module Mochee
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
+ if __FILE__ == $0
103
+ playlist1 = Mochee::Playlist.new("Mastering Ruby 1")
104
+ movie1 = Mochee::Movie.new("Knowledge and Skill",10)
105
+ movie2 = Mochee::Movie.new("Focus",20)
106
+ playlist1.add_movie(movie1)
107
+ playlist1.add_movie(movie2)
108
+ # puts playlist1.movies
109
+ # puts playlist1.name
110
+ playlist1.play(3)
111
+ end
112
+
@@ -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,26 @@
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
+ puts SnackBar::SNACKS
21
+ snack = SnackBar.random
22
+ puts "Enjoy your random #{snack.name} with #{snack.carbs} carbs"
23
+ end
24
+
25
+ #one snackbar in our program, so it is fit
26
+ #to make module instead of class
@@ -0,0 +1,80 @@
1
+ require 'mochee/movie'
2
+ require_relative 'spec_helper'
3
+
4
+ module Mochee
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 'mochee/playlist'
2
+
3
+ module Mochee
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: mochee
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.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: "coding on Friday morning. Going to eat oatmeal soon ;) \n"
28
+ email: danyhan89@gmail.com
29
+ executables:
30
+ - consistencydriver
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - LICENSE
35
+ - README
36
+ - bin/amazing.rb
37
+ - bin/consistencydriver
38
+ - bin/movies.csv
39
+ - lib/mochee/dok2_and_quiet.rb
40
+ - lib/mochee/mixins.rb
41
+ - lib/mochee/movie.rb
42
+ - lib/mochee/movie3d.rb
43
+ - lib/mochee/namespaces.rb
44
+ - lib/mochee/playlist.rb
45
+ - lib/mochee/rankable.rb
46
+ - lib/mochee/snack_bar.rb
47
+ - spec/mochee/movie_spec.rb
48
+ - spec/mochee/playlist_spec.rb
49
+ - spec/mochee/spec_helper.rb
50
+ homepage: https://www.pragmaticstudios.com
51
+ licenses:
52
+ - belongs to Dany Han
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - bin
58
+ - lib
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: Red Bean Mochee & Green Tea Mochee :)
75
+ test_files:
76
+ - spec/mochee/movie_spec.rb
77
+ - spec/mochee/playlist_spec.rb
78
+ - spec/mochee/spec_helper.rb