yore 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,191 @@
1
+ require 'rubygems'
2
+ gem 'buzzware-buzzcore'; require 'buzzcore';
3
+
4
+ #gem 'RequirePaths'; require 'require_paths'
5
+ #require_paths '../../..','../lib'
6
+
7
+ require 'yore/yore_core'
8
+ require 'test/unit'
9
+ gem 'Shoulda'; require 'shoulda'
10
+ require 'fileutils'
11
+
12
+
13
+ class YoreBrowsercmsLoadsaveTest < Test::Unit::TestCase
14
+
15
+ should "save a browsercms applications data to a file and then load it into a different project" do
16
+ require "mysql"
17
+ cred = Credentials.new()
18
+ db_details = {
19
+ :username => cred[:mysql_username],
20
+ :password => cred[:mysql_password]
21
+ }
22
+
23
+ def create_spree_db(aDbDetails)
24
+ assert mysql = Mysql.new("localhost",aDbDetails[:username],aDbDetails[:password])
25
+ mysql.query("DROP DATABASE IF EXISTS #{aDbDetails[:database]}")
26
+ mysql.query("CREATE DATABASE #{aDbDetails[:database]}")
27
+ #assert mysql.query("GRANT ALL ON #{aName}.* TO rubyuser@localhost IDENTIFIED by 'ruby'")
28
+ mysql.select_db(aDbDetails[:database])
29
+ mysql.query("
30
+ CREATE TABLE products (
31
+ id int(11) NOT NULL AUTO_INCREMENT,
32
+ name varchar(30),
33
+ description varchar(50),
34
+ PRIMARY KEY (id)
35
+ )
36
+ ")
37
+ mysql.query("INSERT INTO products (name,description) VALUES('spoon', 'golden spoon -#{aDbDetails[:database]}')")
38
+ mysql.query("INSERT INTO products (name,description) VALUES('fork', 'silver fork -#{aDbDetails[:database]}')")
39
+ mysql.query("
40
+ CREATE TABLE customers (
41
+ id int(11) NOT NULL AUTO_INCREMENT,
42
+ name varchar(30),
43
+ address varchar(50),
44
+ PRIMARY KEY (id)
45
+ )
46
+ ")
47
+ mysql.query("INSERT INTO customers (name,address) VALUES('fred', '1 some st -#{aDbDetails[:database]}')")
48
+ mysql.query("INSERT INTO customers (name,address) VALUES('mary', '2 another rd -#{aDbDetails[:database]}')")
49
+ return mysql
50
+ end
51
+
52
+ def create_browsercms_db(aDbDetails)
53
+ create_spree_db(aDbDetails) # just use the spree code for now
54
+ end
55
+
56
+ #users = [{:name => 'Bob', :permissions => ['Read']},
57
+ # {:name => 'Alice', :permissions => ['Read', 'Write']}]
58
+ #
59
+ ## Serialize
60
+ #open('users', 'w') { |f| YAML.dump(users, f) }
61
+ #
62
+ ## And deserialize
63
+ #users2 = open("users") { |f| YAML.load(f) }
64
+ ## => [{:permissions=>["Read"], :name=>"Bob"},
65
+ ## {:permissions=>["Read", "Write"], :name=>"Alice"}]
66
+
67
+ def hash_from_yaml_file(aFile)
68
+ return YAML::load(File.open(aFile)) rescue nil
69
+ end
70
+
71
+ def yaml_file_from_hash(aName,aHash)
72
+ open(aName, 'w') { |f| YAML.dump(aHash, f) }
73
+ end
74
+
75
+ RAND_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
76
+ def random_string(aLength)
77
+ rand_max = RAND_CHARS.size
78
+ ret = ""
79
+ aLength.times{ ret << RAND_CHARS[rand(rand_max)] }
80
+ ret
81
+ end
82
+
83
+ def random_filename(aPrefix=nil)
84
+ aPrefix.to_s+random_string(8)+'.'+random_string(3)
85
+ end
86
+
87
+ def create_random_file(aPath,aLength,aName=nil)
88
+ aName ||= random_filename()
89
+ path = File.join(aPath,aName)
90
+ MiscUtils.string_to_file(random_string(aLength),path)
91
+ end
92
+
93
+ # returns rails path even if aCapistranoStyle
94
+ def create_browsercms_folder(aParentDir,aFolderName,aDatabaseParams,aCapistranoStyle=false)
95
+ path = File.expand_path(aFolderName,aParentDir)
96
+ if aCapistranoStyle
97
+ FileUtils.mkdir_p(shared = File.join(path,'shared'))
98
+ FileUtils.mkdir_p(File.join(path,'current'))
99
+ path = File.join(path,'releases','345345435435')
100
+ end
101
+ FileUtils.mkdir_p(path)
102
+ FileUtils.mkdir_p(File.join(path,'config'))
103
+ FileUtils.mkdir_p(File.join(path,'kind'))
104
+ uploads = aCapistranoStyle ? File.join(shared,'uploads') : File.join(path,'tmp/uploads')
105
+ FileUtils.mkdir_p(uploads)
106
+
107
+ # create database yml file
108
+ dbs = {
109
+ 'bogus' => {
110
+ 'adapter' => 'mysql',
111
+ 'database' => 'sdsdsad',
112
+ 'username' => 'asdsadasd',
113
+ 'password' => 'dfdsgdfg'
114
+ }
115
+ }
116
+ params = {'adapter' => 'mysql'}
117
+ aDatabaseParams.values.first.each {|k,v| params[k.to_s] = v}
118
+ dbs[aDatabaseParams.keys.first.to_s] = params
119
+ yaml_file_from_hash(File.join(path,'config/database.yml'),dbs)
120
+
121
+ 3.times { create_random_file(File.join(path,'kind'),1+rand(100),random_filename(aFolderName+'_')) }
122
+ 3.times { create_random_file(path,1+rand(100),random_filename(aFolderName+'_')) }
123
+ 3.times { create_random_file(uploads,1+rand(100),random_filename(aFolderName+'_')) }
124
+ return path
125
+ end
126
+
127
+ def filelist_with_sizes(aPath)
128
+ result = MiscUtils.recursive_file_list(aPath,true)
129
+ result.map! do |f|
130
+ shortf = MiscUtils.path_debase(f,aPath)
131
+ shortf + "|#{File.size?(f).to_s}"
132
+ end
133
+ result
134
+ end
135
+
136
+ tempdir = MiscUtils.make_temp_dir("yore_browsercms_test")
137
+
138
+ # set up browsercms-like A&B (different) test databases & files
139
+ db_a = create_browsercms_db(db_details.merge(:database=>"browsercms_test_a"))
140
+ path_a = create_browsercms_folder(tempdir,"browsercms_test_a",{:test => db_details.merge(:database=>"browsercms_test_a")},false)
141
+ db_b = create_browsercms_db(db_details.merge(:database=>"browsercms_test_b"))
142
+ path_b = create_browsercms_folder(tempdir,"browsercms_test_b",{:test => db_details.merge(:database=>"browsercms_test_b")},true)
143
+
144
+ DatabaseUtils::save_database(db_details.merge(:database=>"browsercms_test_a"),File.join(tempdir,'browsercms_test_a.sql'))
145
+ db_a_s = MiscUtils.string_from_file(File.join(tempdir,'browsercms_test_a.sql')).gsub!(/\n--.*$/,'')
146
+ DatabaseUtils::save_database(db_details.merge(:database=>"browsercms_test_b"),File.join(tempdir,'browsercms_test_b.sql'))
147
+ db_b_s = MiscUtils.string_from_file(File.join(tempdir,'browsercms_test_b.sql')).gsub!(/\n--.*$/,'')
148
+
149
+ files_a_s = filelist_with_sizes(path_a).join("\n")
150
+ files_uploads_a_s = filelist_with_sizes(File.join(path_a,'tmp/uploads')).join("\n")
151
+ files_b_s = filelist_with_sizes(path_b).join("\n")
152
+ files_uploads_b_s = filelist_with_sizes(File.join(path_b,'../../shared/uploads')).join("\n")
153
+
154
+ assert_not_equal files_a_s,files_b_s
155
+ assert_not_equal files_uploads_a_s,files_uploads_b_s
156
+
157
+ # launch yore to save A to file system equivalent to :
158
+ # cd browsercms_test_a; yore save --app=browsercms --RAILS_ENV=test browsercms_test_a.tgz
159
+ @yore_a = YoreCore::Yore.launch(nil,{:kind => 'browsercms',:RAILS_ENV => 'test'},{:basepath => path_a})
160
+ browsercms_test_a_tgz = File.join(tempdir,'browsercms_test_a.tgz')
161
+ @yore_a.save(browsercms_test_a_tgz)
162
+
163
+ archive_contents = `tar -tf #{browsercms_test_a_tgz}`.split("\n")
164
+ assert archive_contents.first.begins_with?('uploads/browsercms_test_a')
165
+ puts archive_contents.inspect
166
+
167
+ # launch yore to load file into B
168
+ @yore_b = YoreCore::Yore.launch(nil,{:kind => 'browsercms',:RAILS_ENV => 'test'},{:basepath => path_b})
169
+ @yore_b.load(browsercms_test_a_tgz)
170
+
171
+ DatabaseUtils::save_database(db_details.merge(:database=>"browsercms_test_b"),File.join(tempdir,'browsercms_test_b_after.sql'))
172
+ db_b_after_s = MiscUtils.string_from_file(File.join(tempdir,'browsercms_test_b_after.sql')).gsub!(/\n--.*$/,'')
173
+
174
+ # assert files in A & B are the same within public/assets/products, and different elsewhere
175
+ assert_not_equal db_a_s,db_b_s
176
+
177
+ db_a_s.gsub!(/\n--.*$/,'')
178
+ db_b_after_s.gsub!(/\n--.*$/,'')
179
+ MiscUtils.string_to_file(db_a_s,"/Users/gary/temp/db_a_s.txt")
180
+ MiscUtils.string_to_file(db_b_after_s,"/Users/gary/temp/db_b_after_s.txt")
181
+ assert_equal db_a_s,db_b_after_s
182
+
183
+ files_b_after_s = filelist_with_sizes(path_b).join("\n")
184
+ files_uploads_b_after_s = filelist_with_sizes(File.join(path_b,'../../shared/uploads')).join("\n")
185
+
186
+ assert_not_equal files_b_s,files_b_after_s # different because of dest being backed up to tmp/yore, not because of uploads
187
+ assert_not_equal files_uploads_b_after_s,files_uploads_b_s
188
+ assert_equal files_uploads_a_s,files_uploads_b_after_s
189
+ end
190
+
191
+ end
@@ -1,22 +1,17 @@
1
1
  require 'rubygems'
2
- gem 'RequirePaths'; require 'require_paths'
3
- require_paths '../../..','../lib'
2
+ gem 'buzzware-buzzcore'; require 'buzzcore';
3
+
4
+ #gem 'RequirePaths'; require 'require_paths'
5
+ #require_paths '../../..','../lib'
4
6
 
5
- require 'ihl_ruby/misc_utils'
6
- require 'ihl_ruby/config'
7
- require 'ihl_ruby/shell_extras'
8
7
  require 'yore/yore_core'
9
8
  require 'test/unit'
10
9
  gem 'Shoulda'; require 'shoulda'
11
10
  require 'fileutils'
12
11
 
13
12
 
14
- class LoadsaveYoreTest < Test::Unit::TestCase
13
+ class YoreSpreeLoadsaveTest < Test::Unit::TestCase
15
14
 
16
- def setup
17
- #@yore = YoreCore::Yore.new
18
- end
19
-
20
15
  should "save a spree applications data to a file and then load it into a different project" do
21
16
  require "mysql"
22
17
  cred = Credentials.new()
@@ -155,6 +150,10 @@ class LoadsaveYoreTest < Test::Unit::TestCase
155
150
  spree_test_a_tgz = File.join(tempdir,'spree_test_a.tgz')
156
151
  @yore_a.save(spree_test_a_tgz)
157
152
 
153
+ archive_contents = `tar -tf #{spree_test_a_tgz}`.split("\n")
154
+ assert archive_contents.first.begins_with?('products/spree_test_a')
155
+ puts archive_contents.inspect
156
+
158
157
  # launch yore to load file into B
159
158
  @yore_b = YoreCore::Yore.launch(nil,{:kind => 'spree',:RAILS_ENV => 'test'},{:basepath => path_b})
160
159
  @yore_b.load(spree_test_a_tgz)
data/test/yore_test.rb CHANGED
@@ -1,8 +1,5 @@
1
1
  require 'rubygems'
2
- gem 'RequirePaths'; require 'require_paths'
3
- require_paths '../../..','../lib'
4
- require 'ihl_ruby/misc_utils'
5
- require 'ihl_ruby/shell_extras'
2
+ gem 'buzzware-buzzcore'; require 'buzzcore';
6
3
  require 'yore/yore_core'
7
4
  require 'test/unit'
8
5
  gem 'Shoulda'; require 'shoulda'
data/test.crontab ADDED
@@ -0,0 +1,5 @@
1
+ #minute hour mday month wday command
2
+ #15 03 1 * * sh /Users/{login name}/sample1.sh # 3:15am on first day of the month
3
+ #15 03 * * 6 sh /Users/{login name}/sample2.sh # 3:15am every day
4
+ */1 * * * * /Users/gary/repos/Buzzware/projects_2009/yore/bin/yore backup /tmp/yoretest/test.xml # every 15 minutes
5
+
data/yore.vpj ADDED
@@ -0,0 +1,120 @@
1
+ <!DOCTYPE Project SYSTEM "http://www.slickedit.com/dtd/vse/10.0/vpj.dtd">
2
+ <Project
3
+ Version="10.0"
4
+ VendorName="SlickEdit"
5
+ WorkingDir=".">
6
+ <Config
7
+ Name="Release"
8
+ OutputFile=""
9
+ CompilerConfigName="Latest Version">
10
+ <Menu>
11
+ <Target
12
+ Name="Compile"
13
+ MenuCaption="&amp;Compile"
14
+ CaptureOutputWith="ProcessBuffer"
15
+ SaveOption="SaveCurrent"
16
+ RunFromDir="%rw">
17
+ <Exec/>
18
+ </Target>
19
+ <Target
20
+ Name="Build"
21
+ MenuCaption="&amp;Build"
22
+ CaptureOutputWith="ProcessBuffer"
23
+ SaveOption="SaveWorkspaceFiles"
24
+ RunFromDir="%rw">
25
+ <Exec/>
26
+ </Target>
27
+ <Target
28
+ Name="Rebuild"
29
+ MenuCaption="&amp;Rebuild"
30
+ CaptureOutputWith="ProcessBuffer"
31
+ SaveOption="SaveWorkspaceFiles"
32
+ RunFromDir="%rw">
33
+ <Exec/>
34
+ </Target>
35
+ <Target
36
+ Name="Debug"
37
+ MenuCaption="&amp;Debug"
38
+ SaveOption="SaveNone"
39
+ RunFromDir="%rw">
40
+ <Exec/>
41
+ </Target>
42
+ <Target
43
+ Name="Execute"
44
+ MenuCaption="E&amp;xecute"
45
+ SaveOption="SaveNone"
46
+ RunFromDir="%rw"
47
+ CaptureOutputWith="ProcessBuffer"
48
+ ClearProcessBuffer="1">
49
+ <Exec CmdLine="source actions.sh execute"/>
50
+ </Target>
51
+ </Menu>
52
+ </Config>
53
+ <CustomFolders>
54
+ <Folder
55
+ Name="Source Files"
56
+ Filters="*.c;*.C;*.cc;*.cpp;*.cp;*.cxx;*.c++;*.prg;*.pas;*.dpr;*.asm;*.s;*.bas;*.java;*.cs;*.sc;*.e;*.cob;*.html;*.rc;*.tcl;*.py;*.pl"/>
57
+ <Folder
58
+ Name="Header Files"
59
+ Filters="*.h;*.H;*.hh;*.hpp;*.hxx;*.inc;*.sh;*.cpy;*.if"/>
60
+ <Folder
61
+ Name="Resource Files"
62
+ Filters="*.ico;*.cur;*.dlg"/>
63
+ <Folder
64
+ Name="Bitmaps"
65
+ Filters="*.bmp"/>
66
+ <Folder
67
+ Name="Other Files"
68
+ Filters="">
69
+ </Folder>
70
+ </CustomFolders>
71
+ <Files AutoFolders="DirectoryView">
72
+ <Folder Name="bin">
73
+ <F N="bin/yore"/>
74
+ </Folder>
75
+ <Folder Name="lib">
76
+ <Folder Name="yore">
77
+ <F
78
+ N="lib/yore/*.rb"
79
+ Recurse="0"
80
+ Refilter="0"
81
+ Excludes=".svn/"/>
82
+ </Folder>
83
+ </Folder>
84
+ <Folder Name="../../projects_2008">
85
+ <Folder Name="FIN">
86
+ <F N="../../projects_2008/FIN/finwa_yore.xml"/>
87
+ </Folder>
88
+ </Folder>
89
+ <Folder Name="/System">
90
+ <Folder Name="Library">
91
+ <Folder Name="Frameworks">
92
+ <Folder Name="Ruby.framework">
93
+ <Folder Name="Versions">
94
+ <Folder Name="1.8">
95
+ <Folder Name="usr">
96
+ <Folder Name="lib">
97
+ <Folder Name="ruby">
98
+ <Folder Name="1.8">
99
+ <F N="/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/logger.rb"/>
100
+ </Folder>
101
+ </Folder>
102
+ </Folder>
103
+ </Folder>
104
+ </Folder>
105
+ </Folder>
106
+ </Folder>
107
+ </Folder>
108
+ </Folder>
109
+ </Folder>
110
+ <Folder Name="test">
111
+ <F
112
+ N="test/*"
113
+ Recurse="0"
114
+ Refilter="0"
115
+ Excludes=".svn/"/>
116
+ </Folder>
117
+ <F N="actions.sh"/>
118
+ <F N="sanity_test.rb"/>
119
+ </Files>
120
+ </Project>
data/yore.vpw ADDED
@@ -0,0 +1,6 @@
1
+ <!DOCTYPE Workspace SYSTEM "http://www.slickedit.com/dtd/vse/10.0/vpw.dtd">
2
+ <Workspace Version="10.0" VendorName="SlickEdit">
3
+ <Projects>
4
+ <Project File="yore.vpj" />
5
+ </Projects>
6
+ </Workspace>
metadata CHANGED
@@ -1,121 +1,73 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
- - Gary McGhee
7
+ - buzzware
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-01 00:00:00 +08:00
13
- default_executable:
12
+ date: 2009-10-06 00:00:00 +08:00
13
+ default_executable: yore
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: RequirePaths
16
+ name: buzzcore
17
17
  type: :runtime
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 1.0.1
23
+ version: 0.2.5
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
- name: cmdparse
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 2.0.2
34
- version:
35
- - !ruby/object:Gem::Dependency
36
- name: s3sync
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: 1.2.5
44
- version:
45
- - !ruby/object:Gem::Dependency
46
- name: shairontoledo-popen4
47
- type: :runtime
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: 0.1.2
54
- version:
55
- - !ruby/object:Gem::Dependency
56
- name: newgem
26
+ name: thoughtbot-shoulda
57
27
  type: :development
58
28
  version_requirement:
59
29
  version_requirements: !ruby/object:Gem::Requirement
60
30
  requirements:
61
31
  - - ">="
62
32
  - !ruby/object:Gem::Version
63
- version: 1.2.3
33
+ version: "0"
64
34
  version:
65
- - !ruby/object:Gem::Dependency
66
- name: hoe
67
- type: :development
68
- version_requirement:
69
- version_requirements: !ruby/object:Gem::Requirement
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- version: 1.8.0
74
- version:
75
- description: yore (as in "days of yore") is a data management utility for web applications. It provides hands-off scheduled backup functions, combines file and database data into a single file, knows certain applications, particularly Rails related ones, and can use Amazon S3 for storage.
76
- email:
77
- - contact@buzz@ware@com@au
35
+ description: yore (as in "days of yore") is a user data management utility for web applications.
36
+ email: contact@buzzware.com.au
78
37
  executables:
79
38
  - yore
80
39
  extensions: []
81
40
 
82
41
  extra_rdoc_files:
83
- - History.txt
84
- - Manifest.txt
85
- - PostInstall.txt
42
+ - LICENSE
86
43
  - README.rdoc
87
44
  files:
45
+ - .document
46
+ - .gitignore
47
+ - LICENSE
48
+ - README.rdoc
49
+ - Rakefile
50
+ - VERSION
88
51
  - bin/yore
89
- - History.txt
90
- - lib/ihl_ruby/enum.rb
91
- - lib/ihl_ruby/extend_base_classes.rb
92
- - lib/ihl_ruby/misc_utils.rb
93
- - lib/ihl_ruby/config.rb
94
- - lib/ihl_ruby/logging.rb
95
- - lib/ihl_ruby/string_utils.rb
96
- - lib/ihl_ruby/xml_utils.rb
97
- - lib/ihl_ruby/shell_extras.rb
98
- - lib/ihl_ruby/database_utils.rb
99
- - lib/yore.orig.rb
100
52
  - lib/yore/yore_core.rb
101
- - Manifest.txt
102
- - PostInstall.txt
103
- - Rakefile
104
- - README.rdoc
105
- - script/console
106
- - script/destroy
107
- - script/generate
53
+ - notes.txt
54
+ - test.crontab
55
+ - test/S3_test.rb
56
+ - test/test_helper.rb
108
57
  - test/test_job_a.xml
109
58
  - test/test_job_b.xml
59
+ - test/yore_browsercms_loadsave_test.rb
60
+ - test/yore_spree_loadsave_test.rb
110
61
  - test/yore_test.rb
111
- - test/loadsave_yore_test.rb
112
- - test/S3_test.rb
62
+ - yore.vpj
63
+ - yore.vpw
113
64
  has_rdoc: true
114
- homepage: "RubyForge Project : http://rubyforge.org/projects/buzzware"
65
+ homepage: http://github.com/buzzware/yore
66
+ licenses: []
67
+
115
68
  post_install_message:
116
69
  rdoc_options:
117
- - --main
118
- - README.rdoc
70
+ - --charset=UTF-8
119
71
  require_paths:
120
72
  - lib
121
73
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -133,9 +85,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
85
  requirements: []
134
86
 
135
87
  rubyforge_project: buzzware
136
- rubygems_version: 1.3.1
88
+ rubygems_version: 1.3.5
137
89
  signing_key:
138
- specification_version: 2
139
- summary: yore (as in "days of yore") is a data management utility for web applications
140
- test_files: []
141
-
90
+ specification_version: 3
91
+ summary: yore (as in "days of yore") is a user data management utility for web applications.
92
+ test_files:
93
+ - test/S3_test.rb
94
+ - test/test_helper.rb
95
+ - test/yore_browsercms_loadsave_test.rb
96
+ - test/yore_spree_loadsave_test.rb
97
+ - test/yore_test.rb
data/History.txt DELETED
@@ -1,22 +0,0 @@
1
- == 0.0.1 2009-01-25
2
-
3
- * 1 major enhancement:
4
- * Initial release
5
-
6
- == 0.0.2 2009-2-04
7
-
8
- * now using popen4
9
- * raises exceptions when commandline tools fail
10
- * now using shoulda for tests
11
-
12
- == 0.0.3 2009-02-20
13
-
14
- * much better logging, reporting and console output
15
-
16
- == 0.0.4 2009-07-30
17
-
18
- * now a more general tool for archiving web application data.
19
- * supports specific web applications via the kind option eg. rails and spree initially
20
- * refactored config functionality
21
-
22
-
data/Manifest.txt DELETED
@@ -1,26 +0,0 @@
1
- bin/yore
2
- History.txt
3
- lib/ihl_ruby/enum.rb
4
- lib/ihl_ruby/extend_base_classes.rb
5
- lib/ihl_ruby/misc_utils.rb
6
- lib/ihl_ruby/config.rb
7
- lib/ihl_ruby/logging.rb
8
- lib/ihl_ruby/string_utils.rb
9
- lib/ihl_ruby/xml_utils.rb
10
- lib/ihl_ruby/shell_extras.rb
11
- lib/ihl_ruby/database_utils.rb
12
- lib/yore.orig.rb
13
- lib/yore/yore_core.rb
14
- Manifest.txt
15
- PostInstall.txt
16
- Rakefile
17
- README.rdoc
18
- script/console
19
- script/destroy
20
- script/generate
21
- test/test_job_a.xml
22
- test/test_job_b.xml
23
- test/yore_test.rb
24
- test/loadsave_yore_test.rb
25
- test/S3_test.rb
26
-
data/PostInstall.txt DELETED
@@ -1,7 +0,0 @@
1
-
2
- For more information on yore, see http://yore.rubyforge.org
3
-
4
- NOTE: Change this information in PostInstall.txt
5
- You can also delete it if you don't want it.
6
-
7
-