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