Class: MovieDB::DataExport
Constant Summary
Constants inherited
from Movie
Movie::DEFAULT_ACADEMY_AWARD_NOMINATION, Movie::DEFAULT_ACADEMY_AWARD_WINS, Movie::DEFAULT_BAFTA_NOMINATION, Movie::DEFAULT_BAFTA_WINS, Movie::DEFAULT_CAST_CHARACTERS, Movie::DEFAULT_CAST_MEMBERS, Movie::DEFAULT_CAST_MEMBERS_CHARACTERS, Movie::DEFAULT_CAST_MEMBER_IDS, Movie::DEFAULT_COMPANY, Movie::DEFAULT_COUNTRIES, Movie::DEFAULT_DIRECTOR, Movie::DEFAULT_FILMING_LOCATIONS, Movie::DEFAULT_FILM_RELEASE, Movie::DEFAULT_GENRES, Movie::DEFAULT_GOLDEN_GLOBE_NOMINATIONS, Movie::DEFAULT_GOLDEN_GLOBE_WINS, Movie::DEFAULT_LANGUAGES, Movie::DEFAULT_LENGTH, Movie::DEFAULT_MPAA_RATING, Movie::DEFAULT_PLOT, Movie::DEFAULT_POSTER, Movie::DEFAULT_RATING, Movie::DEFAULT_RELEASE_DATE, Movie::DEFAULT_TAGLINE, Movie::DEFAULT_TITLE, Movie::DEFAULT_TRAILER_URL, Movie::DEFAULT_UNIQUE_ID, Movie::DEFAULT_VOTES, Movie::DEFAULT_WORLDWIDE_GROSS, Movie::DEFAULT_WRITER, Movie::DEFAULT_YEAR
Instance Attribute Summary
Attributes inherited from Movie
#academy_award_nomination, #academy_award_wins, #bafta_nomination, #bafta_wins, #cast_characters, #cast_member_ids, #cast_members, #cast_members_characters, #company, #countries, #director, #film_release, #filming_locations, #genres, #golden_globe_nominations, #golden_globe_wins, #languages, #length, #mpaa_rating, #plot, #poster, #rating, #release_date, #released, #tagline, #title, #trailer_url, #unique_id, #votes, #worldwide_gross, #writer, #year
Class Method Summary
collapse
Methods inherited from Movie
#attr_title, clear_data_store, global_movie_data_store, #initialize, title_present?
#key
included
Methods included from MovieError
#raise_errors
Constructor Details
This class inherits a constructor from MovieDB::Movie
Class Method Details
.create_directory(directory_name) ⇒ Object
28
29
30
|
# File 'lib/movieDB/data_export.rb', line 28
def create_directory(directory_name)
Dir.mkdir(directory_name) unless File.exists? directory_name
end
|
.create_spreadsheet_body ⇒ Object
Loop through array of and array imbd data. Each row has the the information about the film/movie The Data is obtained from MovieDB::Movie example catching fire |
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/movieDB/data_export.rb', line 57
def create_spreadsheet_body
$IMDB_ATTRIBUTES_HEADERS.each do ||
case
when 'title' then spreadsheet_body_text_data("title")
when 'cast_members' then spreadsheet_body_count_data("cast_members")
when 'cast_characters' then spreadsheet_body_count_data("cast_characters")
when 'cast_member_ids' then spreadsheet_body_count_data("cast_member_ids")
when 'cast_members_characters' then spreadsheet_body_count_data("cast_members_characters")
when 'trailer_url' then spreadsheet_body_text_data("trailer_url")
when 'director' then spreadsheet_body_text_data("director")
when 'writer' then spreadsheet_body_text_data("writer")
when 'filming_locations' then spreadsheet_body_text_data("filming_locations")
when 'company' then spreadsheet_body_text_data("company")
when 'genres' then spreadsheet_body_text_data("genres")
when 'languages' then spreadsheet_body_text_data("languages")
when 'countries' then spreadsheet_body_text_data("countries")
when 'length' then spreadsheet_body_numeric_data("length")
when 'plot' then spreadsheet_body_text_data("plot")
when 'poster' then spreadsheet_body_text_data("poster")
when 'rating' then spreadsheet_body_numeric_data("rating")
when 'votes' then spreadsheet_body_numeric_data("votes")
when 'mpaa_rating' then spreadsheet_body_numeric_data("mpaa_rating")
when 'tagline' then spreadsheet_body_text_data("tagline")
when 'year' then spreadsheet_body_numeric_data("year")
when 'release_date' then spreadsheet_body_numeric_data("release_date")
when 'worldwide_gross' then spreadsheet_body_numeric_data("worldwide_gross")
else
end
end
end
|
.create_spreadsheet_file ⇒ Object
19
20
21
22
23
24
25
26
|
# File 'lib/movieDB/data_export.rb', line 19
def create_spreadsheet_file
directory_name = ('reports')
create_directory(directory_name)
Spreadsheet.client_encoding = 'UTF-8'
@book = Spreadsheet::Workbook.new
@sheet = @book.create_worksheet name: "Data Analysis: #{$DATA_ANALYSIS_NAME}"
end
|
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/movieDB/data_export.rb', line 37
def
@sheet.row(0).concat $IMDB_ATTRIBUTES_HEADERS
title_format = Spreadsheet::Format.new :color => :blue,
:weight => :bold,
:size => 13
float_format = Spreadsheet::Format.new :number_format => "0.00"
@sheet.row(0).default_format = title_format
@sheet.column(1).default_format = float_format
@sheet.column(16).default_format = float_format
@sheet.column(22).default_format = float_format
end
|
.create_spreadsheet_report ⇒ Object
32
33
34
35
|
# File 'lib/movieDB/data_export.rb', line 32
def create_spreadsheet_report
create_spreadsheet_body
end
|
.export_movie_data ⇒ Object
TODO: Check the data analysis(DA) name. Write a define_method and include the DA.
13
14
15
16
17
|
# File 'lib/movieDB/data_export.rb', line 13
def export_movie_data
create_spreadsheet_file
create_spreadsheet_report
write_xls_file
end
|
.report_name ⇒ Object
117
118
119
120
|
# File 'lib/movieDB/data_export.rb', line 117
def report_name
name = "imdb_raw_data_".to_s.downcase
name << "#{Time.now.to_s.gsub(':', '').gsub('-', '').gsub(' ', '').split('')[0..9].join}"
end
|
.spreadsheet_body_count_data(header_title) ⇒ Object
97
98
99
100
101
102
103
104
105
106
|
# File 'lib/movieDB/data_export.rb', line 97
def spreadsheet_body_count_data()
element_cast = MovieDB::Movie.instance_eval{filter_movie_attr()}
0.upto(@e_t.length - 1) do |i|
element_array = []
element_array << element_cast[i].length
@sheet.row(1 + i).concat element_array
end
end
|
.spreadsheet_body_numeric_data(header_title) ⇒ Object
108
109
110
111
112
113
114
115
|
# File 'lib/movieDB/data_export.rb', line 108
def spreadsheet_body_numeric_data()
@e_t = element_title = MovieDB::Movie.instance_eval{filter_movie_attr()}
element_title.each_with_index do |element2, i|
element_array = element_title[(i)]
@sheet.row(1 + i).concat element_array
end
end
|
.spreadsheet_body_text_data(header_title) ⇒ Object
88
89
90
91
92
93
94
95
|
# File 'lib/movieDB/data_export.rb', line 88
def spreadsheet_body_text_data()
@e_t = element_title = MovieDB::Movie.instance_eval{filter_movie_attr()}.flatten
element_title.each_with_index do |element2, i|
element_array = element_title[(i)].split(' ',)
@sheet.row(1 + i).concat element_array
end
end
|
.write_xls_file ⇒ Object
122
123
124
125
126
|
# File 'lib/movieDB/data_export.rb', line 122
def write_xls_file
filename = ("#{report_name}.xls")
@book.write File.join('reports', filename)
return filename
end
|