mcfly 0.0.10 → 0.0.11

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.
@@ -2,7 +2,8 @@ require 'delorean_lang'
2
2
 
3
3
  module Mcfly
4
4
  module Model
5
-
5
+ INFINITIES = Set[Float::INFINITY, 'infinity', 'Infinity']
6
+
6
7
  class AssociationValidator < ActiveModel::Validator
7
8
  VALSET = Set[nil, Float::INFINITY, 'infinity']
8
9
 
@@ -41,6 +42,10 @@ module Mcfly
41
42
  def mcfly_lookup(name, options = {}, &block)
42
43
  delorean_fn(name, options) do |ts, *args|
43
44
  raise "time cannot be nil" if ts.nil?
45
+
46
+ # normalize infinity
47
+ ts = 'infinity' if Mcfly::Model::INFINITIES.member? ts
48
+
44
49
  self.where("#{table_name}.obsoleted_dt >= ? AND " +
45
50
  "#{table_name}.created_dt < ?", ts, ts).scoping do
46
51
  block.call(ts, *args)
@@ -61,7 +66,7 @@ module Mcfly
61
66
 
62
67
  # add :obsoleted_dt to the uniqueness scope
63
68
  attr_names.last[:scope] << :obsoleted_dt
64
-
69
+
65
70
  # Set uniqueness error message if not set. FIXME: need to
66
71
  # figure out how to change the base message. It still
67
72
  # prepends the pluralized main attr.
@@ -82,7 +87,7 @@ module Mcfly
82
87
  a.klass.class_variable_set(:@@associations, []) unless
83
88
  a.klass.class_variable_defined?(:@@associations)
84
89
 
85
- a.klass.class_variable_get(:@@associations) <<
90
+ a.klass.class_variable_get(:@@associations) <<
86
91
  [a.active_record, a.foreign_key]
87
92
  end
88
93
  end
@@ -102,7 +107,7 @@ module Mcfly
102
107
  # checks against registered associations
103
108
  if self.class.class_variable_defined?(:@@associations)
104
109
  self.class.class_variable_get(:@@associations).each do |klass, fk|
105
- self.errors.add :base,
110
+ self.errors.add :base,
106
111
  "#{self.class.name.demodulize} cannot be deleted " +
107
112
  "because #{klass.name.demodulize} records exist" if
108
113
  klass.where("obsoleted_dt = 'infinity' and
@@ -114,6 +119,6 @@ module Mcfly
114
119
  end
115
120
 
116
121
  end
117
-
122
+
118
123
  end
119
124
  end
data/lib/mcfly/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mcfly
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.11"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mcfly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-21 00:00:00.000000000 Z
12
+ date: 2013-10-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails