yore 0.0.4 → 0.0.5

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