require 'mongo' require 'active_support/all' require 'yaml' require 'logger' class GetUserActionLogs def self.setup @@config = YAML::load(File.open(File.expand_path('../../../config/common.yml', __FILE__))) # Logger Setting @@app_logger = Logger.new(File.open(@@config['get_user_action_logs']['app_log_path'] + 'get_user_action_logs.log', 'a')) # Connection with mongoDB @conn = Mongo::Connection.new @userdb = @conn.db('action_log') @collection = @userdb.collection('current_00') end def self.process self.setup @@app_logger.info "#{Time.now.to_s} get_user_action_logs.rb start." self.output_action_log_csv @@app_logger.info "#{Time.now.to_s} get_user_action_logs.rb end." return true end def self.output_action_log_csv filename = File.join(@@config['get_user_action_logs']['output_dir'], "user_action_log" + Time.now.strftime("%Y%m%d") + ".csv") writer = File.open(filename, "w") 0.upto(@@config['action_log_db']['num_collections']-1).each{ |i| records_count = 0 @collection = @userdb.collection('current_' + sprintf("%02d", i)) @collection.find.each{ |records| records_count += 1 writer.write records.values_at("user_id", "action_id", "action_type", "timeslot").join(",") } @@app_logger.info "#{Time.now.to_s} current_#{sprintf("%02d", i)} : #{records_count} records" } writer.close() end end GetUserActionLogs.process
require_relative '../../spec_helper' require_relative '../../../batches/get_user_action_logs/get_user_action_logs' describe GetUserActionLogs do describe '.process' do it 'should get true' do GetUserActionLogs.process().should == true end it 'should exist file user_action_logYYYYMMDD.csv' do filename=GetUserActionLogs.class_eval("@@config")['get_user_action_logs']['output_dir']+"user_action_log"+Date.today.strftime("%Y%m%d")+".csv" File.exist?(filename).should == true end end end
Streamlit is a …
I bought M5Stac…