datum 0.8.7 → 0.9.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.
- data/lib/datum/db_tasks.rb +31 -22
- data/lib/datum/verification_task.rb +3 -1
- data/lib/datum/verify_helpers/datum_version.rb +2 -0
- data/lib/datum/version.rb +5 -2
- data/lib/tasks/datum.rake +3 -0
- metadata +22 -6
data/lib/datum/db_tasks.rb
CHANGED
@@ -9,7 +9,7 @@ module Datum
|
|
9
9
|
def prepare
|
10
10
|
create
|
11
11
|
migrate
|
12
|
-
|
12
|
+
load_when_empty
|
13
13
|
end
|
14
14
|
|
15
15
|
def create
|
@@ -27,22 +27,15 @@ module Datum
|
|
27
27
|
|
28
28
|
#Rake::Task['db:drop'].invoke()
|
29
29
|
ActiveRecord::Base.connection.drop_database database rescue nil
|
30
|
-
|
31
30
|
end
|
32
31
|
|
32
|
+
def load_when_empty
|
33
|
+
load_fixtures true
|
34
|
+
end
|
35
|
+
|
33
36
|
# get into the datum fixtures directory, walk the yml, load into db
|
34
37
|
def load
|
35
|
-
|
36
|
-
file_name = entry.to_s.split('/').last.to_s.split('.')[0]
|
37
|
-
target_model = file_name.classify.constantize
|
38
|
-
data_hash = YAML.load(File.read(entry))
|
39
|
-
data_hash.each_value {|value|
|
40
|
-
value.delete "id"
|
41
|
-
value.delete "created_at"
|
42
|
-
value.delete "updated_at"
|
43
|
-
target_model.create value
|
44
|
-
}
|
45
|
-
end
|
38
|
+
load_fixtures false
|
46
39
|
end
|
47
40
|
|
48
41
|
# get into datum db, get relevant tables, produce ymls (for sharing)
|
@@ -55,8 +48,7 @@ module Datum
|
|
55
48
|
tables = (ActiveRecord::Base.connection.tables - skip_tables)
|
56
49
|
tables.each do |table_name|
|
57
50
|
i = "000"
|
58
|
-
File.open("#{@@local_path}/fixtures/#{table_name}.yml",
|
59
|
-
'w') do |file|
|
51
|
+
File.open("#{@@local_path}/fixtures/#{table_name}.yml", 'w') do |file|
|
60
52
|
data = ActiveRecord::Base.connection.select_all(sql % table_name)
|
61
53
|
file.write data.inject({}) { |hash, record|
|
62
54
|
hash["#{table_name}_#{i.succ!}"] = record
|
@@ -74,23 +66,40 @@ module Datum
|
|
74
66
|
f1.puts "\n\n#\n# data dump for code access of table #{file_name}"
|
75
67
|
f1.puts "#\nmodule #{tasked_model.to_s.pluralize}"
|
76
68
|
f1.puts "def self.data\nd = ["
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
}
|
83
|
-
f1.puts "#{hash.to_s},"
|
69
|
+
data.each_with_index {|e, i|
|
70
|
+
hash = e.attributes
|
71
|
+
hash.each_pair {|key, value|
|
72
|
+
new_value = value.to_s
|
73
|
+
hash[key] = new_value
|
84
74
|
}
|
75
|
+
f1.puts "#{hash.to_s},"
|
76
|
+
}
|
85
77
|
f1.puts "]\nend\nend"
|
86
78
|
end
|
87
79
|
end
|
88
80
|
|
89
81
|
private
|
82
|
+
|
90
83
|
@@local_path = "#{Rails.root}/test/lib/datum"
|
91
84
|
|
92
85
|
@@datum_environment = "datum"
|
93
86
|
|
87
|
+
def load_fixtures skip_with_data
|
88
|
+
Dir.glob("#{@@local_path}/fixtures/*.yml").entries.each do |entry|
|
89
|
+
file_name = entry.to_s.split('/').last.to_s.split('.')[0]
|
90
|
+
target_model = file_name.classify.constantize
|
91
|
+
if(!skip_with_data || target_model.count == 0)
|
92
|
+
data_hash = YAML.load(File.read(entry))
|
93
|
+
data_hash.each_value {|value|
|
94
|
+
value.delete "id"
|
95
|
+
value.delete "created_at"
|
96
|
+
value.delete "updated_at"
|
97
|
+
target_model.create value
|
98
|
+
}
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
94
103
|
def context
|
95
104
|
return Datum::Context
|
96
105
|
end
|
data/lib/datum/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Datum
|
2
|
-
VERSION = "0.
|
2
|
+
VERSION = "0.9.0"
|
3
3
|
end
|
4
4
|
|
5
5
|
## 0.8.1
|
@@ -18,4 +18,7 @@ end
|
|
18
18
|
## Fixed migration not observing schema version (regression)
|
19
19
|
## Updated drop to use connection instead of rake task (unreliable)
|
20
20
|
## 0.8.7
|
21
|
-
## Added db:prepare rake task
|
21
|
+
## Added db:prepare rake task
|
22
|
+
## 0.9.0
|
23
|
+
## prepare no longer uses load, instead it uses load_when_empty
|
24
|
+
## attr_accessor added to datum_version model
|
data/lib/tasks/datum.rake
CHANGED
@@ -23,6 +23,9 @@ namespace :datum do
|
|
23
23
|
desc "Dump data as fixtures from datum database"
|
24
24
|
task :dump => :environment do invoke "dump" end
|
25
25
|
|
26
|
+
desc "Loads datum fixtures IF table is empty"
|
27
|
+
task :load_when_empty => :environment do invoke "load_when_empty" end
|
28
|
+
|
26
29
|
desc "Loads fixtures specific to datum database"
|
27
30
|
task :load => :environment do invoke "load" end
|
28
31
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,14 +10,14 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-09-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
|
-
- -
|
20
|
+
- - ! '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 3.2.1
|
23
23
|
type: :runtime
|
@@ -25,9 +25,25 @@ dependencies:
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
none: false
|
27
27
|
requirements:
|
28
|
-
- -
|
28
|
+
- - ! '>='
|
29
29
|
- !ruby/object:Gem::Version
|
30
30
|
version: 3.2.1
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: mysql2
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: 0.3.11
|
39
|
+
type: :runtime
|
40
|
+
prerelease: false
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 0.3.11
|
31
47
|
description: Flexible data-driven test solution for Rails
|
32
48
|
email:
|
33
49
|
- datum@tyemill.com
|
@@ -106,7 +122,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
106
122
|
version: '0'
|
107
123
|
segments:
|
108
124
|
- 0
|
109
|
-
hash: -
|
125
|
+
hash: -3296774884059331308
|
110
126
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
127
|
none: false
|
112
128
|
requirements:
|
@@ -115,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
131
|
version: '0'
|
116
132
|
segments:
|
117
133
|
- 0
|
118
|
-
hash: -
|
134
|
+
hash: -3296774884059331308
|
119
135
|
requirements: []
|
120
136
|
rubyforge_project:
|
121
137
|
rubygems_version: 1.8.24
|