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.
@@ -9,7 +9,7 @@ module Datum
9
9
  def prepare
10
10
  create
11
11
  migrate
12
- load
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
- Dir.glob("#{@@local_path}/fixtures/*.yml").entries.each do |entry|
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
- data.each_with_index {|e, i|
78
- hash = e.attributes
79
- hash.each_pair {|key, value|
80
- new_value = value.to_s
81
- hash[key] = new_value
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
@@ -82,7 +82,9 @@ module Datum
82
82
  {:version => "0.8.3"},
83
83
  {:version => "0.8.4"},
84
84
  {:version => "0.8.5"},
85
- {:version => "0.8.6"}])
85
+ {:version => "0.8.6"},
86
+ {:version => "0.8.7"},
87
+ {:version => "0.9.0"}])
86
88
  end
87
89
 
88
90
  def exec_test
@@ -3,4 +3,6 @@
3
3
  class DatumVersion < ActiveRecord::Base
4
4
  establish_connection :datum
5
5
 
6
+ attr_accessor :datum_versions
7
+
6
8
  end
data/lib/datum/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Datum
2
- VERSION = "0.8.7"
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.8.7
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-08-30 00:00:00.000000000 Z
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: -1943143270625711471
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: -1943143270625711471
134
+ hash: -3296774884059331308
119
135
  requirements: []
120
136
  rubyforge_project:
121
137
  rubygems_version: 1.8.24