lu-tze 0.2.0 → 0.3.0

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.
@@ -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