1import_users = function(raw_data, conversion_func=json_to_users) {
2  return(import_obj(raw_data, conversion_func))
3}
4
5import_statuses = function(raw_data, conversion_func=json_to_statuses) {
6  return(import_obj(raw_data, conversion_func))
7}
8
9import_trends = function(raw_data, conversion_func=json_to_trends) {
10  return(import_obj(raw_data, conversion_func))
11}
12
13import_obj = function(raw_data, conversion_func, ...) {
14  return(conversion_func(raw_data, ...))
15}
16
17json_to_users = function(raw_data) {
18  return(sapply(raw_data, buildUser))
19}
20
21json_to_statuses = function(raw_data) {
22  return(sapply(raw_data, buildStatus))
23}
24
25json_to_trends = function(raw_data) {
26  buildTrendLocationDf(raw_data)
27}
28
29df_to_statuses = function(df) {
30  df_to_class(df, tweet_columns, buildStatus)
31}
32
33df_to_users = function(df) {
34  df_to_class(df, user_columns, buildUser)
35}
36
37df_to_class = function(df, columns, builder, colname_converter=camel_case_to_twitter_names) {
38  if (length(setdiff(colnames(df), columns)) > 0) {
39    stop("Malformed tweet data.frame, columns don't match")
40  }
41
42  out = vector(mode="list", length=nrow(df))
43  colnames(df) = sapply(colnames(df), colname_converter)
44  for (row in seq_along(df[, 1])) {
45    out[[row]] = builder(as.list(df[row, ]))
46  }
47
48  out
49}