cowtech-rails 2.8.1.0 → 2.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,24 +5,24 @@
5
5
  #
6
6
 
7
7
  module Cowtech
8
- module RubyOnRails
9
- class Scheduler
8
+ module RubyOnRails
9
+ class Scheduler
10
10
  attr_accessor :application
11
11
  attr_accessor :logger
12
12
  attr_accessor :pid
13
13
  attr_accessor :definitions
14
14
  attr_accessor :scheduler
15
-
15
+
16
16
  def self.start(application_class, log_file, pid_file, &definitions)
17
17
  self.new(application_class, log_file, pid_file, definitions).execute
18
18
  end
19
-
19
+
20
20
  def self.log(msg)
21
21
  puts msg
22
22
  #@@class_logger ||= Logger.new(Rails.root.to_s + "/log/scheduler.log")
23
23
  #@@class_logger.debug(msg)
24
24
  end
25
-
25
+
26
26
  def initialize(application_class, log_file, pid_file, block = nil, &definitions)
27
27
  @application = application_class
28
28
  @logger = Logger.new(log_file)
@@ -34,20 +34,20 @@ module Cowtech
34
34
 
35
35
  def log_string(message, options = {})
36
36
  rv = ""
37
-
37
+
38
38
  rv += "[#{Time.now.strftime("%Y-%m-%d %T")}] " if !options[:no_time]
39
39
  rv += options[:prefix].ensure_array.collect { |p| "[" + p.center(6, " ") + "]" }.join(" ") + " " if options[:prefix].present?
40
40
  rv += message
41
-
41
+
42
42
  rv
43
43
  end
44
-
44
+
45
45
  def log(message, options = {})
46
46
  msg = self.log_string(message, options)
47
47
  type = options[:type] || :info
48
48
  (options[:logger] || @logger).send(type, msg)
49
49
  end
50
-
50
+
51
51
  def execute_rake_task(label, name, args)
52
52
  begin
53
53
  args = args.symbolize_keys
@@ -64,7 +64,7 @@ module Cowtech
64
64
  self.log("Rake task failed with exception: [#{e.class.to_s}] #{e.to_s}.", {:prefix => ["RAKE", "ERROR", name]})
65
65
  end
66
66
  end
67
-
67
+
68
68
  def execute_inline_task(label, name)
69
69
  begin
70
70
  self.log(label + " ...", {:prefix => ["INLINE", "START", name]})
@@ -79,44 +79,44 @@ module Cowtech
79
79
  self.log("Scheduler started.", {:prefix => "MAIN"})
80
80
  self.handle_plain
81
81
  end
82
-
82
+
83
83
  def handle_phusion_passenger
84
84
  if defined?(PhusionPassenger) then
85
85
  File.delete(@pid) if FileTest.exists?(@pid)
86
-
87
- PhusionPassenger.on_event(:starting_worker_process) do |forked|
88
- if forked && !FileTest.exists?(@pid) then
86
+
87
+ PhusionPassenger.on_event(:starting_worker_process) do |forked|
88
+ if forked && !FileTest.exists?(@pid) then
89
89
  self.log("Starting process with PID #{$$}", {:prefix => ["WORKER", "START"]})
90
- File.open(@pid, "w") { |f| f.write($$) }
91
- self.handle_plain
92
- end
93
- end
94
-
95
- PhusionPassenger.on_event(:stopping_worker_process) do
96
- if FileTest.exists?(@pid) then
97
- if File.open(@pid, "r") { |f| pid = f.read.to_i} == $$ then
90
+ File.open(@pid, "w") { |f| f.write($$) }
91
+ self.handle_plain
92
+ end
93
+ end
94
+
95
+ PhusionPassenger.on_event(:stopping_worker_process) do
96
+ if FileTest.exists?(@pid) then
97
+ if File.open(@pid, "r") { |f| pid = f.read.to_i} == $$ then
98
98
  self.log("Stopped process with PID #{$$}", {:prefix => ["WORKER", "STOP"]})
99
- File.delete(@pid)
100
- end
101
- end
102
- end
99
+ File.delete(@pid)
100
+ end
101
+ end
102
+ end
103
103
  else
104
104
  self.handle_plain
105
105
  end
106
106
  end
107
-
107
+
108
108
  def handle_plain
109
109
  if !@rake_loaded then
110
110
  @application.load_tasks
111
111
  @rake_loaded = true
112
112
  end
113
-
113
+
114
114
  @definitions.call(self)
115
- end
116
-
117
- def method_missing(method, *args, &block)
115
+ end
116
+
117
+ def method_missing(method, *args, &block)
118
118
  self.scheduler.send(method, *args, &block)
119
119
  end
120
- end
121
- end
120
+ end
121
+ end
122
122
  end
@@ -5,113 +5,113 @@
5
5
  #
6
6
 
7
7
  module Cowtech
8
- module RubyOnRails
9
- class AppUtils
10
- def self.run_command(cmd)
11
- IO.popen(cmd, "r") { |f| puts f.gets }
12
- end
13
-
14
- def self.get_version(as_string = true)
15
- info = YAML.load_file(Rails.root + "config/application_info.yml")
16
- (as_string ? "Current application info --- Version #{info["version"]} - Release date: #{info["release-date"]}" : info)
17
- end
18
-
19
- def self.set_version(info)
20
- puts "--- Setting application version ..."
8
+ module RubyOnRails
9
+ class AppUtils
10
+ def self.run_command(cmd)
11
+ IO.popen(cmd, "r") { |f| puts f.gets }
12
+ end
13
+
14
+ def self.get_version(as_string = true)
15
+ info = YAML.load_file(Rails.root + "config/application_info.yml")
16
+ (as_string ? "Current application info --- Version #{info["version"]} - Release date: #{info["release-date"]}" : info)
17
+ end
18
+
19
+ def self.set_version(info)
20
+ puts "--- Setting application version ..."
21
21
  version = Cowtech::RubyOnRails::AppUtils.get_version(false)
22
- File.open(Rails.root + "config/application_info.yml", "w") { |f| f.write(version.merge(info.stringify_keys).to_yaml) }
23
- puts Cowtech::RubyOnRails::AppUtils.get_version
24
- end
25
-
26
- def self.tag
27
- info = Cowtech::RubyOnRails::AppUtils.get_version(false)
28
- tag = "v-#{info["version"]}"
29
- puts "--- Tagging current version as tag #{tag}"
30
- Cowtech::RubyOnRails::AppUtils.run_command("git tag -f #{tag}")
31
- end
32
-
33
- def self.commit(msg)
34
- # Commit data
35
- puts "--- Adding data to repository..."
36
- Cowtech::RubyOnRails::AppUtils.run_command("git add .")
37
-
38
- puts "--- Commiting changes ..."
39
- Cowtech::RubyOnRails::AppUtils.run_command("git commit -a --allow-empty-message -m \"#{msg}\"")
40
- puts "--- Checking repository status ..."
41
- Cowtech::RubyOnRails::AppUtils.run_command("git status")
42
- end
43
-
44
- def self.push
45
- puts "--- Pushing to server ..."
46
- run_command("git push server")
47
- end
48
-
49
- def self.clear_cache
50
- puts "--- Clearing rails cache ..."
51
- Rails.cache.clear
52
- end
53
- end
54
- end
22
+ File.open(Rails.root + "config/application_info.yml", "w") { |f| f.write(version.merge(info.stringify_keys).to_yaml) }
23
+ puts Cowtech::RubyOnRails::AppUtils.get_version
24
+ end
25
+
26
+ def self.tag
27
+ info = Cowtech::RubyOnRails::AppUtils.get_version(false)
28
+ tag = "v-#{info["version"]}"
29
+ puts "--- Tagging current version as tag #{tag}"
30
+ Cowtech::RubyOnRails::AppUtils.run_command("git tag -f #{tag}")
31
+ end
32
+
33
+ def self.commit(msg)
34
+ # Commit data
35
+ puts "--- Adding data to repository..."
36
+ Cowtech::RubyOnRails::AppUtils.run_command("git add .")
37
+
38
+ puts "--- Commiting changes ..."
39
+ Cowtech::RubyOnRails::AppUtils.run_command("git commit -a --allow-empty-message -m \"#{msg}\"")
40
+ puts "--- Checking repository status ..."
41
+ Cowtech::RubyOnRails::AppUtils.run_command("git status")
42
+ end
43
+
44
+ def self.push
45
+ puts "--- Pushing to server ..."
46
+ run_command("git push server")
47
+ end
48
+
49
+ def self.clear_cache
50
+ puts "--- Clearing rails cache ..."
51
+ Rails.cache.clear
52
+ end
53
+ end
54
+ end
55
55
  end
56
56
 
57
57
  namespace :app do
58
- namespace :version do
59
- desc "Get application info"
60
- task :get do |task|
61
- puts Cowtech::RubyOnRails::AppUtils.get_version
62
- end
63
-
64
- desc "Set application info"
65
- task :set, :version do |task, args|
66
- if args[:version] then
67
- Cowtech::RubyOnRails::AppUtils.set_version({"version" => args[:version], "release-date" => Time.now.strftime("%Y-%m-%d")})
68
- end
69
- end
70
- end
71
-
72
- desc "Clears all Rails cache"
73
- task :clear_cache => :environment do |task|
74
- Cowtech::RubyOnRails::AppUtils.clear_cache
75
- end
76
-
77
- desc "Set application info, add all files and commits to git"
78
- task :commit, :message, :version do |task, args|
79
- args[:message] ||= ""
80
-
81
- Cowtech::RubyOnRails::AppUtils.set_version({"version" => args[:version], "release-date" => Time.now.strftime("%Y-%m-%d")}) if args[:version].present?
82
- Cowtech::RubyOnRails::AppUtils.commit(args[:message])
83
- Cowtech::RubyOnRails::AppUtils.tag if args[:version].present?
84
- end
85
-
86
- desc "Commit application and then push it to server"
87
- task :push, :message, :version do |task, args|
88
- Cowtech::RubyOnRails::AppUtils.set_version({"version" => args[:version], "release-date" => Time.now.strftime("%Y-%m-%d")}) if args[:version].present?
89
- Cowtech::RubyOnRails::AppUtils.commit(args[:message])
90
- Cowtech::RubyOnRails::AppUtils.tag if args[:version].present?
91
- Cowtech::RubyOnRails::AppUtils.push
92
- end
93
-
94
- desc "Tags current application version in git"
95
- task :tag do |task|
96
- Cowtech::RubyOnRails::AppUtils.tag
97
- end
58
+ namespace :version do
59
+ desc "Get application info"
60
+ task :get do |task|
61
+ puts Cowtech::RubyOnRails::AppUtils.get_version
62
+ end
63
+
64
+ desc "Set application info"
65
+ task :set, :version do |task, args|
66
+ if args[:version] then
67
+ Cowtech::RubyOnRails::AppUtils.set_version({"version" => args[:version], "release-date" => Time.now.strftime("%Y-%m-%d")})
68
+ end
69
+ end
70
+ end
71
+
72
+ desc "Clears all Rails cache"
73
+ task :clear_cache => :environment do |task|
74
+ Cowtech::RubyOnRails::AppUtils.clear_cache
75
+ end
76
+
77
+ desc "Set application info, add all files and commits to git"
78
+ task :commit, :message, :version do |task, args|
79
+ args[:message] ||= ""
80
+
81
+ Cowtech::RubyOnRails::AppUtils.set_version({"version" => args[:version], "release-date" => Time.now.strftime("%Y-%m-%d")}) if args[:version].present?
82
+ Cowtech::RubyOnRails::AppUtils.commit(args[:message])
83
+ Cowtech::RubyOnRails::AppUtils.tag if args[:version].present?
84
+ end
85
+
86
+ desc "Commit application and then push it to server"
87
+ task :push, :message, :version do |task, args|
88
+ Cowtech::RubyOnRails::AppUtils.set_version({"version" => args[:version], "release-date" => Time.now.strftime("%Y-%m-%d")}) if args[:version].present?
89
+ Cowtech::RubyOnRails::AppUtils.commit(args[:message])
90
+ Cowtech::RubyOnRails::AppUtils.tag if args[:version].present?
91
+ Cowtech::RubyOnRails::AppUtils.push
92
+ end
93
+
94
+ desc "Tags current application version in git"
95
+ task :tag do |task|
96
+ Cowtech::RubyOnRails::AppUtils.tag
97
+ end
98
98
  end
99
99
 
100
100
  namespace :css do
101
- desc "Regenerating CSS..."
102
- task :regenerate => :environment do |task|
103
- puts "Regenerating CSS..."
104
-
105
- if defined?(Less) then # MORE
106
- puts "Using More"
107
- Rake::Task["more:clean"].execute
108
- Rake::Task["more:generate"].execute
109
- elsif defined?(Sass) # SASS
110
- Sass::Plugin.on_updating_stylesheet do |template, css|
111
- puts "[SCSS] Compiling #{template} to #{css} ..."
112
- end
113
-
114
- Sass::Plugin.force_update_stylesheets
115
- end
116
- end
101
+ desc "Regenerating CSS..."
102
+ task :regenerate => :environment do |task|
103
+ puts "Regenerating CSS..."
104
+
105
+ if defined?(Less) then # MORE
106
+ puts "Using More"
107
+ Rake::Task["more:clean"].execute
108
+ Rake::Task["more:generate"].execute
109
+ elsif defined?(Sass) # SASS
110
+ Sass::Plugin.on_updating_stylesheet do |template, css|
111
+ puts "[SCSS] Compiling #{template} to #{css} ..."
112
+ end
113
+
114
+ Sass::Plugin.force_update_stylesheets
115
+ end
116
+ end
117
117
  end
@@ -5,84 +5,84 @@
5
5
  #
6
6
 
7
7
  module Cowtech
8
- module RubyOnRails
9
- class LogUtils
10
- @@log_compressor_command = "bzip2"
11
- @@log_compressed_extension = "bz2"
12
-
13
- def self.generate_new_name(base, i = 0)
14
- (Rails.root + "backups/logs/#{base}#{i > 0 ? "-#{i}" : ""}").to_s
15
- end
16
-
17
- def self.run_command(cmd)
18
- IO.popen(cmd) { |f| print f.gets }
19
- end
20
-
21
- def self.rotate(rake_args)
22
- Cowtech::RubyOnRails::Scheduler.log "Rotating log files..."
23
-
24
- # Get timestamp
25
- tstamp = Time.now.strftime("%Y%m%d")
26
-
27
- # For each log file
28
- Dir.glob(Rails.root + "log/*.log") do |log_file|
29
- Cowtech::RubyOnRails::Scheduler.log "\tRotating #{log_file} ..."
30
- new_name = "#{File.basename(log_file)}-#{tstamp}" # CREIAMO IL NOME
31
-
32
- # Resolv duplicates
33
- i = 0
34
- new_file = catch(:name) do
35
- i += 1
36
- name = generate_new_name(new_name, i)
37
- redo if File.exists?(name . + "." + @@log_compressed_extension)
38
- throw :name, name
39
- end
40
-
41
- dir = File.dirname(new_file)
42
- FileUtils.mkdir_p(dir) if !File.directory?(dir)
43
-
44
- # Send file via mail
8
+ module RubyOnRails
9
+ class LogUtils
10
+ @@log_compressor_command = "bzip2"
11
+ @@log_compressed_extension = "bz2"
12
+
13
+ def self.generate_new_name(base, i = 0)
14
+ (Rails.root + "backups/logs/#{base}#{i > 0 ? "-#{i}" : ""}").to_s
15
+ end
16
+
17
+ def self.run_command(cmd)
18
+ IO.popen(cmd) { |f| print f.gets }
19
+ end
20
+
21
+ def self.rotate(rake_args)
22
+ Cowtech::RubyOnRails::Scheduler.log "Rotating log files..."
23
+
24
+ # Get timestamp
25
+ tstamp = Time.now.strftime("%Y%m%d")
26
+
27
+ # For each log file
28
+ Dir.glob(Rails.root + "log/*.log") do |log_file|
29
+ Cowtech::RubyOnRails::Scheduler.log "\tRotating #{log_file} ..."
30
+ new_name = "#{File.basename(log_file)}-#{tstamp}" # CREIAMO IL NOME
31
+
32
+ # Resolv duplicates
33
+ i = 0
34
+ new_file = catch(:name) do
35
+ i += 1
36
+ name = generate_new_name(new_name, i)
37
+ redo if File.exists?(name . + "." + @@log_compressed_extension)
38
+ throw :name, name
39
+ end
40
+
41
+ dir = File.dirname(new_file)
42
+ FileUtils.mkdir_p(dir) if !File.directory?(dir)
43
+
44
+ # Send file via mail
45
45
  if (Rails.env == "production" || rake_args["force"].to_boolean) && rake_args["email_class"].present? then
46
46
  Cowtech::RubyOnRails::Scheduler.log "\tForwarding log file to requested email address..."
47
- rake_args["email_class"].constantize.log_report(log_file).deliver
47
+ rake_args["email_class"].constantize.log_report(log_file).deliver
48
48
  end
49
49
 
50
- # Copy file
51
- FileUtils.cp(log_file, new_file)
52
-
53
- # BZIPPIAMO IL FILE
54
- system(@@log_compressor_command, new_file)
55
- end
56
-
57
- # Truncate files
58
- Cowtech::RubyOnRails::Scheduler.log "Truncating current log files ..."
59
- Dir.glob(Rails.root + "log/*.log") do |log_file|
60
- File.open(log_file, "w").close
61
- end
62
- end
63
-
64
- def self.clean
65
- Cowtech::RubyOnRails::Scheduler.log "Cleaning log files..."
66
-
67
- ["backups/logs/*.log", "backups/logs/*.#{@@log_compressed_extension}"].each do |path|
68
- Dir.glob(Rails.root + path) do |log_file|
69
- Cowtech::RubyOnRails::Scheduler.log "\tDeleting #{log_file.gsub(Rails.root.to_s + "/", "")} ..."
70
- File.delete(log_file)
71
- end
72
- end
73
- end
74
- end
75
- end
50
+ # Copy file
51
+ FileUtils.cp(log_file, new_file)
52
+
53
+ # BZIPPIAMO IL FILE
54
+ system(@@log_compressor_command, new_file)
55
+ end
56
+
57
+ # Truncate files
58
+ Cowtech::RubyOnRails::Scheduler.log "Truncating current log files ..."
59
+ Dir.glob(Rails.root + "log/*.log") do |log_file|
60
+ File.open(log_file, "w").close
61
+ end
62
+ end
63
+
64
+ def self.clean
65
+ Cowtech::RubyOnRails::Scheduler.log "Cleaning log files..."
66
+
67
+ ["backups/logs/*.log", "backups/logs/*.#{@@log_compressed_extension}"].each do |path|
68
+ Dir.glob(Rails.root + path) do |log_file|
69
+ Cowtech::RubyOnRails::Scheduler.log "\tDeleting #{log_file.gsub(Rails.root.to_s + "/", "")} ..."
70
+ File.delete(log_file)
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
76
  end
77
77
 
78
78
  namespace :log do
79
- desc "Rotates log files"
80
- task :rotate, [:email_class, :force] => [:environment] do |task, args|
81
- Cowtech::RubyOnRails::LogUtils.rotate(args)
82
- end
83
-
84
- desc "Clean every log file"
85
- task :clean do |task|
86
- Cowtech::RubyOnRails::LogUtils.clean
87
- end
79
+ desc "Rotates log files"
80
+ task :rotate, [:email_class, :force] => [:environment] do |task, args|
81
+ Cowtech::RubyOnRails::LogUtils.rotate(args)
82
+ end
83
+
84
+ desc "Clean every log file"
85
+ task :clean do |task|
86
+ Cowtech::RubyOnRails::LogUtils.clean
87
+ end
88
88
  end