caboose-rets 0.0.47 → 0.0.48

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDkwYmI0ZDhhZTQzOGJiOTBiMzU0ZDk4M2UyZWI0ODc1MTI0NWQ4Mw==
4
+ YzhkZmYzZTRlOTVlYTVmZmM4M2Y0ZmY5YWQzNzE1YzAzYmQ0N2NkOQ==
5
5
  data.tar.gz: !binary |-
6
- YmY0NTEwZjhiMDRkM2Q3N2ZlNzZlMjExMWY5YzFlZjFjMzlhNDljNA==
6
+ ODM3ZmU5ZjRlZmUwNTNkMzQzZTE2NjJhNWFlYzA1MWYzOGQwOWMxNA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- OTM2Mzk4ZDY0OWNjMGVlNzc3N2M3NGJmNmI3OWM5ZTZlMjc4YTMwOGEyYzA0
10
- YWY1ODJhZmFhYTRiZWIxNDc1ZDUzODVjMmJmOTdjNjgwMGIyNmU5ZDIzMmVi
11
- ZmUyYTQ4MmI1ZjYxM2RkNTA2NjMzMzE0MTFmMDg1MDVmZjU4ZGM=
9
+ N2E1ZDQyZTA0NzI1YzA3OTUyNjcyYWFkMjhjNTNjYTEyZjQ2MzFkMTAzNTRl
10
+ NTQ2MTM3ZGRkNTU4MGI2YTU3ODk4NGE0ZDQ2YmExZWEwMWZhYjE5YmNiZjMy
11
+ Yzc5NjYzMzE5OTM2NDc5OWFjY2FiMDAzMjcwODc5MjBkNzlmZjI=
12
12
  data.tar.gz: !binary |-
13
- ZDNlNzRmZmUwNTQxMGFhOTA4MmQxZWRiZmY4NWI0NTFhZDdhYWIzYzQ3MzUy
14
- YTA2ZmUwNWRiOWY1ZWYwMjQ0ODEwMGEwYzRmNDA3YjMwYzAxNGRmOGNjNDI3
15
- ZDZiZDhiMzdhMzI2YWU4YzI5NDNhZTJjNDE5ZjQxNDZmNzI2YjQ=
13
+ ZWM3NmEyNDliYmJiZmUzYzIwODU1OWZlNDQ1NjMyMWU1NDc4NGExZTQ4NDVm
14
+ NDIzNDM5MDQ1MjYwMTY1ODgwMTEzNmM5YjJlNDZlZTk3ZjllY2ZlOTgwOTg4
15
+ Zjg0Mjc0YTNiM2ZiY2JjMDI4MGQ5NzlhMGI5OTRmYTkwMjY2YmI=
@@ -24,6 +24,32 @@ class CabooseRets::ResidentialProperty < ActiveRecord::Base
24
24
  CabooseRets::RetsImporter.import_property(mls_acct)
25
25
  end
26
26
 
27
+ #=============================================================================
28
+
29
+ # Assume this is running in a worker dyno
30
+ def self.update_rets
31
+
32
+ cri = CabooseRets::RetsImporter
33
+
34
+ return if cri.task_is_locked
35
+ task_started = cri.lock_task
36
+
37
+ begin
38
+ cri.update_after(cri.last_updated)
39
+ cri.save_last_updated(task_started)
40
+ cri.unlock_task
41
+ rescue
42
+ raise
43
+ ensure
44
+ cri.unlock_task_if_last_updated(task_started)
45
+ end
46
+
47
+ # Start the same update process in five minutes
48
+ self.delay(:run_at => 5.minutes.from_now).update_rets
49
+ end
50
+
51
+ #=============================================================================
52
+
27
53
  def parse(data)
28
54
  self.bedrooms = data['BEDROOMS']
29
55
  self.dom = data['DOM']
@@ -471,4 +471,42 @@ class CabooseRets::RetsImporter # < ActiveRecord::Base
471
471
  #puts "[rets_importer] #{msg}"
472
472
  Rails.logger.info("[rets_importer] #{msg}")
473
473
  end
474
+
475
+ #=============================================================================
476
+ # Locking update task
477
+ #=============================================================================
478
+
479
+ def self.last_updated
480
+ if !Caboose::Setting.exists?(:name => 'rets_last_updated')
481
+ Caboose::Setting.create(:name => 'rets_last_updated', :value => '2013-08-06T00:00:01')
482
+ end
483
+ s = Caboose::Setting.where(:name => 'rets_last_updated').first
484
+ return DateTime.parse(s.value)
485
+ end
486
+
487
+ def self.save_last_updated(d)
488
+ s = Caboose::Setting.where(:name => 'rets_last_updated').first
489
+ s.value = d.strftime('%FT%T')
490
+ s.save
491
+ end
492
+
493
+ def self.task_is_locked
494
+ return Caboose::Setting.exists?(:name => 'rets_update_running')
495
+ end
496
+
497
+ def self.lock_task
498
+ date = DateTime.now
499
+ Caboose::Setting.create(:name => 'rets_update_running', :value => date.strftime('%F %T'))
500
+ return date
501
+ end
502
+
503
+ def self.unlock_task
504
+ Caboose::Setting.where(:name => 'rets_update_running').first.destroy
505
+ end
506
+
507
+ def self.unlock_task_if_last_updated(d)
508
+ setting = Caboose::Setting.where(:name => 'rets_update_running').first
509
+ unlock_task if setting && d.strftime('%F %T') == setting.value
510
+ end
511
+
474
512
  end
@@ -1,3 +1,3 @@
1
1
  module CabooseRets
2
- VERSION = '0.0.47'
2
+ VERSION = '0.0.48'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caboose-rets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.47
4
+ version: 0.0.48
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry