movieDB 0.1.9 → 0.1.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5f17c2732790f64b960010075a59107de517385d
4
- data.tar.gz: b5058e6ec52a4c1affe409c93dcdd51c9ccc6625
3
+ metadata.gz: d50cca9ba4a8eab49599c8fd2dbe0ab856993d34
4
+ data.tar.gz: 0f8f434ce0c78e6b4604cc326717b75373777818
5
5
  SHA512:
6
- metadata.gz: 35b23f1af4dcbdf9a705e3651e22b5af4cdda3b15b93b68ead37ffe5f7d880cf868df71a011f3f1d2f3ba197adce5d7fc8b4c4126623321bab960a4b2ef5ee44
7
- data.tar.gz: 168741faaff822022c26a4e083b66099034bb50a5bdc346bc55349da545ccef6d81d4ef8abc33d1c061fc7d70b73a6facafb247ea052d4ef65983521b049be63
6
+ metadata.gz: aba42600c6385faa6383be3e23eae5fa604349de78c2d607d38d6ac34ceaf91239d14db5bb652f14c16c879973acba335617ef9e3e9537bb8e6b46af9e0ee713
7
+ data.tar.gz: 7b2f064cd6dbc380a1f798923b6ba6428af2b4d161a3421c92eaab1d348a636d5419c17a75577a350fe075133f004f98bc7c456567bc22968c14f4ebdb3c53d6
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Description
4
4
 
5
- Although the name suggests a datastore gem, MovieDB is actually a ruby wrapper that inspects, cleans, transform and model imdb data and provides useful data analysis information, suggesting conclusion. The objective is provide a tool that will help movie/film producers make decisions based on archival imdb data.
5
+ Although the name suggests a datastore gem, MovieDB is actually a ruby wrapper that inspects, cleans, transform and model imdb data and provides useful data analysis information, suggesting conclusion. The objective and usage is to provide a tool that can aide movie/film producers make statistical decisions based off archival imdb data.
6
6
 
7
7
  Basic functions and Data Analysis:
8
8
  * Data Analysis
@@ -35,7 +35,7 @@ Or install it yourself as:
35
35
 
36
36
  > require 'MovieDB/data_export'
37
37
 
38
- > MovieDB::Movie.clear_data_store #IMPORTANT: Returns and empty array
38
+ > MovieDB::Movie.clear_data_store **ONLY IF YOUR WANT TO EMPTY YOUR DATASTORE (ARRAY)
39
39
 
40
40
  > MovieDB::Movie.send(:get_multiple_imdb_movie_data, "2024544", "1800241", "0791314")
41
41
 
@@ -43,9 +43,9 @@ Or install it yourself as:
43
43
 
44
44
  ## Exported Document
45
45
 
46
- The excel document is stored in the reports directory.
46
+ The exported movie data is stored in your reports directory.
47
47
 
48
- $ cd /reports/data_analysis_20131203.xls
48
+ $ cd /reports/imdb_raw_data_20131216.xls
49
49
 
50
50
  ## Usage - Data Analysis
51
51
 
@@ -179,7 +179,7 @@ unless defined? MovieDB::Movie
179
179
  movie_info.poster = Array.new << @movie_data.poster
180
180
  movie_info.rating = Array.new << @movie_data.rating
181
181
  movie_info.votes = Array.new << @movie_data.votes
182
- movie_info.mpaa_rating = Array.new << @movie_data.mpaa_rating == [nil] ? ["No Ratings"] : [@movie_data.mpaa_rating]
182
+ movie_info.mpaa_rating = Array.new << @movie_data.mpaa_rating == [nil] ? ["Not Rated"] : [@movie_data.mpaa_rating]
183
183
  movie_info.tagline = Array.new << @movie_data.tagline
184
184
  movie_info.year = Array.new << @movie_data.year
185
185
  movie_info.release_date = Array.new << @movie_data.release_date
@@ -3,9 +3,9 @@ require 'MovieDB/status_checker'
3
3
  require 'MovieDB/movie_error'
4
4
 
5
5
  module MovieDB #:nodoc
6
- # MoviesDB v0.1.x is not a datastore gem. Rather is performs mathematical computations for analyzing film data from imdb. can manage the data store of pre-production, production and final film releases.
7
- # Its a solution to the common problem of building a multi-database that utilizes both SQL and NoSQL
8
- # combined features to increase speed and performance for reading records.
6
+ # MoviesDB v0.1.x is not a datastore gem. Rather, it is a high-level statistical software that performs
7
+ # mathematical computations for analyzing film data from imdb.
8
+ # In a nut shell, it is a solution to the common problem of deducing logical hypothesis based off data sets.
9
9
 
10
10
  class Base
11
11
  include StatusChecker
@@ -9,11 +9,55 @@ module MovieDB
9
9
  module AnalysisOfVariance
10
10
  module LeastSquares
11
11
  module Coefficient_Of_Determination
12
- def cod
13
- @headers = %w(title x_value y_value)
14
- #return @headers
15
- #'my coefficiency'
16
- end
12
+ def coefficient_of_determination (directory_name)
13
+ open_spreadsheet(directory_name)
14
+ perform_computation
15
+ insert_data_to_existing_xls_file
16
+ end
17
+
18
+ def open_spreadsheet(directory_name)
19
+ @book = Spreadsheet.open File.join('reports', directory_name)
20
+ @sheet = @book.worksheet(0)
21
+ end
22
+
23
+ def perform_computation
24
+ @col_0 = []
25
+
26
+ @sheet.each_with_index do |row, i|
27
+ @col_0 << @sheet[i, 1]
28
+ end
29
+
30
+ ##
31
+ # Perform computation on the data collected
32
+ # TODO: Need to use coefficienct statistical formula
33
+ # Calculate median as an example but COD formula must be used
34
+
35
+ drop_header = @col_0.shift
36
+
37
+ row_count = @sheet.rows.count
38
+ column_count = @sheet.columns[0].count
39
+
40
+ @data_processing = @col_0.inject do |sum, n|
41
+ (sum + n)/(row_count-1)
42
+ end
43
+ end
44
+
45
+ def report_name
46
+ module_nesting = Module.nesting[0].to_s.gsub('::', ' ').split()
47
+ count = module_nesting.size
48
+ @data_analysis_name = module_nesting[count - 1]
49
+ @data_analysis_name << '_' << "#{Time.now.to_s.gsub(':', '').gsub('-', '').gsub(' ', '').split('')[0..9].join}"
50
+ end
51
+
52
+ def insert_data_to_existing_xls_file
53
+ filename = ("#{report_name}.xls")
54
+ #@book.worksheet(0).insert_row(4, [@data_processing ])
55
+ @sheet[5, 1] = @data_processing
56
+ @sheet.row(6).push "Median", @data_processing
57
+
58
+ @book.write File.join('reports', filename)
59
+ return filename
60
+ end
17
61
  end
18
62
  module Discrete_Least_Squares_Meshless_Method; end
19
63
  module Explained_Sum_Of_Squares; end
@@ -23,7 +67,7 @@ module MovieDB
23
67
  module Lack_Of_Fit_Sum_Of_Squares; end
24
68
  module Least_Squares_Support_Vector_Machine; end
25
69
  module Mean_Squared_Error; end
26
- module Moving_Least_Squares; end
70
+ module Moving_Least_Sqares; end
27
71
  module Non_Linear_Iterative_Partial_Least_Squares; end
28
72
  module Non_Linear_Least_Squares; end
29
73
  module Ordinary_Least_Squares; end
@@ -1,5 +1,4 @@
1
1
  require "spreadsheet"
2
- require "MovieDB/data_analysis"
3
2
  require "MovieDB"
4
3
 
5
4
  # This module will write xls document to file
@@ -8,25 +7,6 @@ require "MovieDB"
8
7
 
9
8
  module MovieDB
10
9
  class DataExport < MovieDB::Movie
11
- PATH_AOV = MovieDB::DataAnalysis::AnalysisOfVariance::LeastSquares
12
- include PATH_AOV::Coefficient_Of_Determination
13
- include PATH_AOV::Explained_Sum_Of_Squares
14
- include PATH_AOV::Fraction_Of_Variance_Unexplained
15
- include PATH_AOV::Gauss_Newton_Algorithm
16
- include PATH_AOV::Iteratively_Reweighted_Least_Squares
17
- include PATH_AOV::Lack_Of_Fit_Sum_Of_Squares
18
- include PATH_AOV::Least_Squares_Support_Vector_Machine
19
- include PATH_AOV::Mean_Squared_Error
20
- include PATH_AOV::Moving_Least_Squares
21
- include PATH_AOV::Non_Linear_Iterative_Partial_Least_Squares
22
- include PATH_AOV::Non_Linear_Least_Squares
23
- include PATH_AOV::Ordinary_Least_Squares
24
- include PATH_AOV::Partial_Least_Squares_Regression
25
- include PATH_AOV::Partition_Of_Sums_Of_Squares
26
- include PATH_AOV::Residual_Sum_Of_Squares
27
- include PATH_AOV::Total_Least_Squares
28
- include PATH_AOV::Total_Sum_Of_Squares
29
-
30
10
  class << self
31
11
  #TODO: Check the data analysis(DA) name. Write a define_method and include the DA.
32
12
 
@@ -57,10 +37,15 @@ module MovieDB
57
37
  def create_spreadsheet_header
58
38
  @sheet.row(0).concat $IMDB_ATTRIBUTES_HEADERS
59
39
 
60
- format = Spreadsheet::Format.new :color => :blue,
61
- :weight => :bold,
62
- :size => 18
63
- @sheet.row(0).default_format = format
40
+ title_format = Spreadsheet::Format.new :color => :blue,
41
+ :weight => :bold,
42
+ :size => 13
43
+
44
+ float_format = Spreadsheet::Format.new :number_format => "0.00"
45
+
46
+ @sheet.row(0).default_format = title_format
47
+ @sheet.column(1).default_format = float_format
48
+ @sheet.column(16).default_format = float_format
64
49
  end
65
50
 
66
51
  # Loop through array of and array imbd data. Each row has the
@@ -90,8 +75,10 @@ module MovieDB
90
75
  when 'rating' then spreadsheet_body_numeric_data("rating")
91
76
  when 'votes' then spreadsheet_body_numeric_data("votes")
92
77
  when 'mpaa_rating' then spreadsheet_body_numeric_data("mpaa_rating")
78
+ when 'tagline' then spreadsheet_body_text_data("tagline")
93
79
  when 'year' then spreadsheet_body_numeric_data("year")
94
80
  when 'release_date' then spreadsheet_body_numeric_data("release_date")
81
+ else
95
82
  end
96
83
  end
97
84
  end
@@ -99,7 +86,7 @@ module MovieDB
99
86
  def spreadsheet_body_text_data(header_title)
100
87
  @e_t = element_title = MovieDB::Movie.instance_eval{filter_movie_attr(header_title)}.flatten
101
88
 
102
- element_title.each_with_index do |element2,i|
89
+ element_title.each_with_index do |element2, i|
103
90
  element_array = element_title[(i)].split(' ',)
104
91
  @sheet.row(1 + i).concat element_array
105
92
  end
@@ -119,7 +106,7 @@ module MovieDB
119
106
  def spreadsheet_body_numeric_data(header_title)
120
107
  @e_t = element_title = MovieDB::Movie.instance_eval{filter_movie_attr(header_title)}
121
108
 
122
- element_title.each_with_index do |element2,i|
109
+ element_title.each_with_index do |element2, i|
123
110
  element_array = element_title[(i)]
124
111
  @sheet.row(1 + i).concat element_array
125
112
  end
@@ -0,0 +1,24 @@
1
+ require 'MovieDB/data_analysis'
2
+
3
+ module MovieDB
4
+ class DataProcess
5
+ PATH_AOV = MovieDB::DataAnalysis::AnalysisOfVariance::LeastSquares
6
+ extend PATH_AOV::Coefficient_Of_Determination
7
+ include PATH_AOV::Explained_Sum_Of_Squares
8
+ include PATH_AOV::Fraction_Of_Variance_Unexplained
9
+ include PATH_AOV::Gauss_Newton_Algorithm
10
+ include PATH_AOV::Iteratively_Reweighted_Least_Squares
11
+ include PATH_AOV::Lack_Of_Fit_Sum_Of_Squares
12
+ include PATH_AOV::Least_Squares_Support_Vector_Machine
13
+ include PATH_AOV::Mean_Squared_Error
14
+ include PATH_AOV::Non_Linear_Iterative_Partial_Least_Squares
15
+ include PATH_AOV::Non_Linear_Least_Squares
16
+ include PATH_AOV::Ordinary_Least_Squares
17
+ include PATH_AOV::Partial_Least_Squares_Regression
18
+ include PATH_AOV::Partition_Of_Sums_Of_Squares
19
+ include PATH_AOV::Residual_Sum_Of_Squares
20
+ include PATH_AOV::Total_Least_Squares
21
+ include PATH_AOV::Total_Sum_Of_Squares
22
+ end
23
+ end
24
+
@@ -1,3 +1,3 @@
1
1
  module MovieDB
2
- VERSION = "0.1.9"
2
+ VERSION = "0.1.10"
3
3
  end
Binary file
@@ -1,45 +1,50 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe MovieDB::DataAnalysis do
3
+ describe MovieDB::DataProcess do
4
4
 
5
5
  describe "#AnalysisOfVariance" do
6
6
  describe "#LeastSquares" do
7
7
  describe "#Coefficient_Of_Determination" do
8
- let(:cof) {MovieDB::DataAnalysis::AnalysisOfVariance::LeastSquares::Coefficient_Of_Determination.cod}
9
-
8
+ let(:cod) {MovieDB::DataProcess}
9
+ #let(:cod) {MovieDB::DataProcess.analyze_cod(imdb_raw_data_2013121820.xls)}
10
+
10
11
  it "should return the cof" do
11
- cof.send(:cod).should == []
12
+ cod.send(:coefficient_of_determination, 'imdb_raw_data_2013121911.xls').should == []
12
13
  end
14
+
15
+ it "raise error if file does not exist" do
16
+
17
+ end
13
18
  end
14
-
19
+
15
20
  describe "#Discrete_Least_Squares_Meshless_Method" do
16
21
  pending
17
22
  end
18
-
23
+
19
24
  describe "#Explained_Sum_Of_Squares" do
20
25
  pending
21
- end
22
-
26
+ end
27
+
23
28
  describe "#Fraction_Of_Variance_Unexplained" do
24
29
  pending
25
30
  end
26
-
31
+
27
32
  describe "#Gauss_Newton_Algorithm" do
28
33
  pending
29
34
  end
30
-
35
+
31
36
  describe "#Iteratively_Reweighted_Least_Squares" do
32
37
  pending
33
38
  end
34
-
39
+
35
40
  describe "#Lack_Of_Fit_Sum_Of_Squares" do
36
41
  pending
37
42
  end
38
-
43
+
39
44
  describe "#Least_Squares_Support_Vector_Machine" do
40
45
  pending
41
46
  end
42
-
47
+
43
48
  describe "#Mean_Squared_Error" do
44
49
  pending
45
50
  end
@@ -5,7 +5,7 @@ require 'MovieDB/base'
5
5
  require "MovieDB/person"
6
6
  require 'MovieDB/status_checker'
7
7
  require 'MovieDB/movie_error'
8
- require "MovieDB/data_analysis"
8
+ require "MovieDB/data_process"
9
9
  require "MovieDB/data_export"
10
10
 
11
11
  RSpec.configure do |config|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: movieDB
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Albert_McKeever
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-18 00:00:00.000000000 Z
11
+ date: 2013-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -154,6 +154,7 @@ files:
154
154
  - lib/movieDB/base.rb
155
155
  - lib/movieDB/data_analysis.rb
156
156
  - lib/movieDB/data_export.rb
157
+ - lib/movieDB/data_process.rb
157
158
  - lib/movieDB/genre_parser.rb
158
159
  - lib/movieDB/genres/en.txt
159
160
  - lib/movieDB/movie_error.rb
@@ -163,9 +164,13 @@ files:
163
164
  - movieDB.gemspec
164
165
  - npm-debug.log
165
166
  - reports/.DS_Store
167
+ - reports/Coefficient_Of_Determination_2013121918.xls
168
+ - reports/add.xls
169
+ - reports/imdb_raw_data_2013121911.xls
170
+ - reports/imdb_raw_data_2013121912.xls
166
171
  - spec/.DS_Store
167
- - spec/data_analysis_spec.rb
168
172
  - spec/data_export_spec.rb
173
+ - spec/data_process_spec.rb
169
174
  - spec/movieDB_spec.rb
170
175
  - spec/person_spec.rb
171
176
  - spec/spec_helper.rb
@@ -195,8 +200,8 @@ specification_version: 4
195
200
  summary: Movie/Film Statistic and Data Analysis
196
201
  test_files:
197
202
  - spec/.DS_Store
198
- - spec/data_analysis_spec.rb
199
203
  - spec/data_export_spec.rb
204
+ - spec/data_process_spec.rb
200
205
  - spec/movieDB_spec.rb
201
206
  - spec/person_spec.rb
202
207
  - spec/spec_helper.rb