yore 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +5 -0
- data/LICENSE +23 -0
- data/Rakefile +64 -57
- data/VERSION +1 -0
- data/bin/yore +6 -11
- data/lib/yore/yore_core.rb +70 -43
- data/notes.txt +27 -0
- data/test/S3_test.rb +2 -5
- data/test/test_helper.rb +10 -0
- data/test/test_job_b.xml +1 -1
- data/test/yore_browsercms_loadsave_test.rb +191 -0
- data/test/{loadsave_yore_test.rb → yore_spree_loadsave_test.rb} +9 -10
- data/test/yore_test.rb +1 -4
- data/test.crontab +5 -0
- data/yore.vpj +120 -0
- data/yore.vpw +6 -0
- metadata +38 -82
- data/History.txt +0 -22
- data/Manifest.txt +0 -26
- data/PostInstall.txt +0 -7
- data/lib/ihl_ruby/config.rb +0 -202
- data/lib/ihl_ruby/database_utils.rb +0 -89
- data/lib/ihl_ruby/enum.rb +0 -50
- data/lib/ihl_ruby/extend_base_classes.rb +0 -319
- data/lib/ihl_ruby/logging.rb +0 -159
- data/lib/ihl_ruby/misc_utils.rb +0 -382
- data/lib/ihl_ruby/shell_extras.rb +0 -84
- data/lib/ihl_ruby/string_utils.rb +0 -53
- data/lib/ihl_ruby/xml_utils.rb +0 -177
- data/lib/yore.orig.rb +0 -6
- data/script/console +0 -10
- data/script/destroy +0 -14
- data/script/generate +0 -14
@@ -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 '
|
3
|
-
|
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
|
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 '
|
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="&Compile"
|
14
|
+
CaptureOutputWith="ProcessBuffer"
|
15
|
+
SaveOption="SaveCurrent"
|
16
|
+
RunFromDir="%rw">
|
17
|
+
<Exec/>
|
18
|
+
</Target>
|
19
|
+
<Target
|
20
|
+
Name="Build"
|
21
|
+
MenuCaption="&Build"
|
22
|
+
CaptureOutputWith="ProcessBuffer"
|
23
|
+
SaveOption="SaveWorkspaceFiles"
|
24
|
+
RunFromDir="%rw">
|
25
|
+
<Exec/>
|
26
|
+
</Target>
|
27
|
+
<Target
|
28
|
+
Name="Rebuild"
|
29
|
+
MenuCaption="&Rebuild"
|
30
|
+
CaptureOutputWith="ProcessBuffer"
|
31
|
+
SaveOption="SaveWorkspaceFiles"
|
32
|
+
RunFromDir="%rw">
|
33
|
+
<Exec/>
|
34
|
+
</Target>
|
35
|
+
<Target
|
36
|
+
Name="Debug"
|
37
|
+
MenuCaption="&Debug"
|
38
|
+
SaveOption="SaveNone"
|
39
|
+
RunFromDir="%rw">
|
40
|
+
<Exec/>
|
41
|
+
</Target>
|
42
|
+
<Target
|
43
|
+
Name="Execute"
|
44
|
+
MenuCaption="E&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
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
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- buzzware
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
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:
|
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:
|
23
|
+
version: 0.2.5
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
|
-
name:
|
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:
|
33
|
+
version: "0"
|
64
34
|
version:
|
65
|
-
|
66
|
-
|
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
|
-
-
|
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
|
-
-
|
102
|
-
-
|
103
|
-
-
|
104
|
-
-
|
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
|
-
-
|
112
|
-
-
|
62
|
+
- yore.vpj
|
63
|
+
- yore.vpw
|
113
64
|
has_rdoc: true
|
114
|
-
homepage:
|
65
|
+
homepage: http://github.com/buzzware/yore
|
66
|
+
licenses: []
|
67
|
+
|
115
68
|
post_install_message:
|
116
69
|
rdoc_options:
|
117
|
-
- --
|
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.
|
88
|
+
rubygems_version: 1.3.5
|
137
89
|
signing_key:
|
138
|
-
specification_version:
|
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
|
-
|