data_miner 0.4.7 → 0.4.8

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -15,7 +15,7 @@ begin
15
15
  gem.add_dependency 'activesupport', '>=2.3.4'
16
16
  gem.add_dependency 'andand', '>=1.3.1'
17
17
  gem.add_dependency 'errata', '>=0.1.7'
18
- gem.add_dependency 'conversions', '>=1.4.3'
18
+ gem.add_dependency 'conversions', '>=1.4.4'
19
19
  gem.add_dependency 'blockenspiel', '>=0.3.2'
20
20
  gem.add_dependency 'log4r', '>=1.1.7'
21
21
  gem.require_path = "lib"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.7
1
+ 0.4.8
data/data_miner.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{data_miner}
8
- s.version = "0.4.7"
8
+ s.version = "0.4.8"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Seamus Abshere", "Andy Rossmeissl"]
12
- s.date = %q{2010-03-30}
12
+ s.date = %q{2010-04-05}
13
13
  s.description = %q{Mine remote data into your ActiveRecord models. You can also perform associations and convert units.}
14
14
  s.email = %q{seamus@abshere.net}
15
15
  s.extra_rdoc_files = [
@@ -56,7 +56,7 @@ Gem::Specification.new do |s|
56
56
  s.add_runtime_dependency(%q<activesupport>, [">= 2.3.4"])
57
57
  s.add_runtime_dependency(%q<andand>, [">= 1.3.1"])
58
58
  s.add_runtime_dependency(%q<errata>, [">= 0.1.7"])
59
- s.add_runtime_dependency(%q<conversions>, [">= 1.4.3"])
59
+ s.add_runtime_dependency(%q<conversions>, [">= 1.4.4"])
60
60
  s.add_runtime_dependency(%q<blockenspiel>, [">= 0.3.2"])
61
61
  s.add_runtime_dependency(%q<log4r>, [">= 1.1.7"])
62
62
  else
@@ -65,7 +65,7 @@ Gem::Specification.new do |s|
65
65
  s.add_dependency(%q<activesupport>, [">= 2.3.4"])
66
66
  s.add_dependency(%q<andand>, [">= 1.3.1"])
67
67
  s.add_dependency(%q<errata>, [">= 0.1.7"])
68
- s.add_dependency(%q<conversions>, [">= 1.4.3"])
68
+ s.add_dependency(%q<conversions>, [">= 1.4.4"])
69
69
  s.add_dependency(%q<blockenspiel>, [">= 0.3.2"])
70
70
  s.add_dependency(%q<log4r>, [">= 1.1.7"])
71
71
  end
@@ -75,7 +75,7 @@ Gem::Specification.new do |s|
75
75
  s.add_dependency(%q<activesupport>, [">= 2.3.4"])
76
76
  s.add_dependency(%q<andand>, [">= 1.3.1"])
77
77
  s.add_dependency(%q<errata>, [">= 0.1.7"])
78
- s.add_dependency(%q<conversions>, [">= 1.4.3"])
78
+ s.add_dependency(%q<conversions>, [">= 1.4.4"])
79
79
  s.add_dependency(%q<blockenspiel>, [">= 0.3.2"])
80
80
  s.add_dependency(%q<log4r>, [">= 1.1.7"])
81
81
  end
data/lib/data_miner.rb CHANGED
@@ -17,14 +17,15 @@ require 'data_miner/run'
17
17
  module DataMiner
18
18
  class MissingHashColumn < RuntimeError; end
19
19
 
20
- include Log4r unless defined? Rails
21
-
22
20
  mattr_accessor :logger
23
21
 
24
22
  def self.start_logging
23
+ return if logger
24
+
25
25
  if defined? Rails
26
26
  self.logger = Rails.logger
27
27
  else
28
+ class_eval { include Log4r }
28
29
  info_outputter = FileOutputter.new 'f1', :filename => 'data_miner.log'
29
30
  error_outputter = Outputter.stderr
30
31
  info_outputter.only_at DEBUG, INFO
@@ -33,7 +34,6 @@ module DataMiner
33
34
  self.logger = Logger.new 'data_miner'
34
35
  logger.add info_outputter, error_outputter
35
36
  ActiveRecord::Base.logger = logger
36
- ActiveRecord::Base.colorize_logging = false
37
37
  end
38
38
  end
39
39
 
@@ -53,21 +53,24 @@ module DataMiner
53
53
  def self.resource_names
54
54
  DataMiner::Configuration.resource_names
55
55
  end
56
-
57
- def self.create_tables
58
- DataMiner::Configuration.create_tables
59
- end
60
56
  end
61
57
 
62
58
  ActiveRecord::Base.class_eval do
59
+ def self.x_data_miner(&block)
60
+ DataMiner.start_logging
61
+
62
+ DataMiner.logger.info "Skipping data_miner block in #{self.name} because called as x_data_miner"
63
+ end
64
+
63
65
  def self.data_miner(&block)
66
+ DataMiner.start_logging
67
+
64
68
  unless table_exists?
65
69
  DataMiner.log_or_raise "Database table `#{table_name}` doesn't exist. DataMiner probably won't work properly until you run a migration or otherwise fix the schema."
66
70
  return
67
71
  end
68
72
 
69
73
  DataMiner.resource_names.push self.name unless DataMiner.resource_names.include? self.name
70
- DataMiner.create_tables
71
74
 
72
75
  belongs_to :data_miner_last_run, :class_name => 'DataMiner::Run'
73
76
 
@@ -88,5 +91,3 @@ ActiveRecord::Base.class_eval do
88
91
  data_miner_config.after_invoke
89
92
  end
90
93
  end
91
-
92
- DataMiner.start_logging
@@ -35,13 +35,17 @@ module DataMiner
35
35
  options.symbolize_keys!
36
36
 
37
37
  finished = false
38
- run = DataMiner::Run.create! :started_at => Time.now, :resource_name => resource.name
38
+ if DataMiner::Run.table_exists?
39
+ run = DataMiner::Run.create! :started_at => Time.now, :resource_name => resource.name if DataMiner::Run.table_exists?
40
+ else
41
+ DataMiner.info "Not logging individual runs. Please run DataMiner::Run.create_tables if you want to enable this."
42
+ end
39
43
  resource.delete_all if options[:from_scratch]
40
44
  begin
41
45
  runnables.each { |runnable| runnable.run(run) }
42
46
  finished = true
43
47
  ensure
44
- run.update_attributes! :ended_at => Time.now, :finished => finished
48
+ run.update_attributes! :ended_at => Time.now, :finished => finished if DataMiner::Run.table_exists?
45
49
  end
46
50
  nil
47
51
  end
@@ -151,20 +155,6 @@ On the other hand, if you're working directly with create_table, this might be h
151
155
  end
152
156
  end
153
157
  end
154
-
155
- def create_tables
156
- c = ActiveRecord::Base.connection
157
- unless c.table_exists?('data_miner_runs')
158
- c.create_table 'data_miner_runs', :options => 'ENGINE=InnoDB default charset=utf8' do |t|
159
- t.string 'resource_name'
160
- t.boolean 'finished'
161
- t.datetime 'started_at'
162
- t.datetime 'ended_at'
163
- t.datetime 'created_at'
164
- t.datetime 'updated_at'
165
- end
166
- end
167
- end
168
158
  end
169
159
  end
170
160
  end
@@ -1,7 +1,6 @@
1
1
  module DataMiner
2
2
  class Run < ActiveRecord::Base
3
3
  set_table_name 'data_miner_runs'
4
- default_scope :order => 'id ASC'
5
4
 
6
5
  def resource
7
6
  resource_name.constantize
@@ -10,5 +9,19 @@ module DataMiner
10
9
  def resource_records_last_touched_by_me
11
10
  resource.scoped :conditions => { :data_miner_last_run_id => id }
12
11
  end
12
+
13
+ class << self
14
+ def create_tables
15
+ return if table_exists?
16
+ connection.create_table 'data_miner_runs' do |t|
17
+ t.string 'resource_name'
18
+ t.boolean 'finished'
19
+ t.datetime 'started_at'
20
+ t.datetime 'ended_at'
21
+ t.datetime 'created_at'
22
+ t.datetime 'updated_at'
23
+ end
24
+ end
25
+ end
13
26
  end
14
27
  end
data/test/test_helper.rb CHANGED
@@ -253,3 +253,5 @@ ActiveRecord::Schema.define(:version => 20090819143429) do
253
253
  end
254
254
  execute "ALTER TABLE residential_energy_consumption_survey_responses ADD PRIMARY KEY (department_of_energy_identifier);"
255
255
  end
256
+
257
+ DataMiner::Run.create_tables
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 4
8
- - 7
9
- version: 0.4.7
8
+ - 8
9
+ version: 0.4.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - Seamus Abshere
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-03-30 00:00:00 -04:00
18
+ date: 2010-04-05 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -98,8 +98,8 @@ dependencies:
98
98
  segments:
99
99
  - 1
100
100
  - 4
101
- - 3
102
- version: 1.4.3
101
+ - 4
102
+ version: 1.4.4
103
103
  type: :runtime
104
104
  version_requirements: *id006
105
105
  - !ruby/object:Gem::Dependency