data_miner 0.4.7 → 0.4.8

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