lu-tze 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,15 +1,29 @@
1
- h1. Lu-Tze
1
+ h1. Lu Tze
2
2
 
3
- h2. Note on Patches/Pull Requests
3
+ We all know backups are important. However, they're often annoying. So, Lu Tze is a service for automating database backups. It sends an SQL dump of your database off to a remote backup service (Historian). It's been built to work just on Heroku (so PostgreSQL only), although there's potential for it to expand later down the track.
4
4
 
5
- The process is (ideally):
5
+ At this point, I've not open-sourced Historian, so while you can look at this side of the code, it's not particularly useful. I'm planning to provide a better overview soon, though.
6
6
 
7
- * Fork the project.
8
- * Make your feature addition or bug fix.
9
- * Add tests for it. This is important so things don't break in future versions.
10
- * When committing, please don't mess with Rakefile or VERSION file. Unless, of course, you want your own version, but it'd be nice if you keep custom changes in a branch to be easily merged in.
11
- * Send a pull request. Bonus points for topic branches.
7
+ h2. Installation and Usage
8
+
9
+ Firstly, you'll want to add Lu Tze as a gem requirement - when you're using Bundler (probably with Rails 3), that's a piece of cake with a single line in your Gemfile:
10
+
11
+ <pre><code>gem 'lu-tze', '0.2.0', :require => 'lu_tze'</code></pre>
12
+
13
+ For those using Rails 2.x, it's slightly more complicated - you need it in both @config/environment.rb@:
14
+
15
+ <pre><code>config.gem 'lu-tze', :version => '0.2.0', :lib => 'lu_tze'</code></pre>
16
+
17
+ ... and then add it to the .gems file that Heroku expects:
18
+
19
+ <pre><code>lu-tze --version 0.2.0</code></pre>
20
+
21
+ Heroku's free daily cron job is all that's needed to put it all together - I use something like the following in @lib/tasks/cron.rake@:
22
+
23
+ <pre><code>task :cron => :environment do
24
+ LuTze.gather_and_send
25
+ end</code></pre>
12
26
 
13
27
  h2. Copyright
14
28
 
15
- Copyright (c) 2010 Pat Allan, released under an MIT licence.
29
+ Copyright (c) 2010 Pat Allan, released under an MIT licence.
@@ -32,12 +32,24 @@ class LuTze
32
32
 
33
33
  def dump_command
34
34
  cmd = ""
35
- cmd += "echo #{config[:password]} | " if config[:password].present?
36
- cmd += "pg_dump --format=p --file=#{file_name}"
37
- cmd += " --host=#{config[:host]}" if config[:host].present?
38
- cmd += " --port=#{config[:port]}" if config[:port].present?
39
- cmd += " --username=#{config[:username]}" if config[:username].present?
40
- cmd += " #{config[:database]}"
35
+
36
+ if config[:adapter] == 'postgresql'
37
+ cmd += "echo #{config[:password]} | " if config[:password].present?
38
+ cmd += "pg_dump --format=p --file=#{file_name}"
39
+ cmd += " --host=#{config[:host]}" if config[:host].present?
40
+ cmd += " --port=#{config[:port]}" if config[:port].present?
41
+ cmd += " --username=#{config[:username]}" if config[:username].present?
42
+ cmd += " #{config[:database]}"
43
+ else
44
+ cmd += "mysqldump --format=p --result-file=#{file_name}"
45
+ cmd += " --host=#{config[:host]}" if config[:host].present?
46
+ cmd += " --port=#{config[:port]}" if config[:port].present?
47
+ cmd += " --user=#{config[:username]}" if config[:username].present?
48
+ cmd += " --password=#{config[:password]}" if config[:username].present?
49
+ cmd += " #{config[:database]}"
50
+ end
51
+
52
+ cmd
41
53
  end
42
54
 
43
55
  def compress_command
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe LuTze do
4
+ describe '.gather_and_send' do
5
+ it "sends the file to the web service" do
6
+ #
7
+ end
8
+ end
9
+ end
File without changes
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lu-tze
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 2
8
+ - 3
9
9
  - 0
10
- version: 0.2.0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Pat Allan
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-20 00:00:00 +10:00
18
+ date: 2010-11-11 00:00:00 +08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -92,13 +92,15 @@ files:
92
92
  - LICENCE
93
93
  - README.textile
94
94
  - lib/lu_tze.rb
95
+ - spec/lu_tze_spec.rb
96
+ - spec/spec_helper.rb
95
97
  has_rdoc: true
96
98
  homepage: http://github.com/freelancing-god/lu-tze
97
99
  licenses: []
98
100
 
99
101
  post_install_message:
100
- rdoc_options:
101
- - --charset=UTF-8
102
+ rdoc_options: []
103
+
102
104
  require_paths:
103
105
  - lib
104
106
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -126,5 +128,6 @@ rubygems_version: 1.3.7
126
128
  signing_key:
127
129
  specification_version: 3
128
130
  summary: Sends backups to Historian
129
- test_files: []
130
-
131
+ test_files:
132
+ - spec/lu_tze_spec.rb
133
+ - spec/spec_helper.rb