mcfly 0.0.16 → 0.0.17

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0292a3c7b23dd2794b5da1d419fedaa47dd61c07
4
- data.tar.gz: 8d8d174fe27a09c7a2bd174fba8c71026918b6d4
3
+ metadata.gz: 13301c6e573ced175e281c52098e98647a6abfec
4
+ data.tar.gz: af09fa9778b5213f0b2f55250efd5c24ec466733
5
5
  SHA512:
6
- metadata.gz: c7adde9dd27852aa390e0e302c773ec199a348a2bcdc55e05c5a502462a2e0e27ae7c94efa5ca3973ac106cb99a87f570e33bd0a5c52072f458d044fd61ae65e
7
- data.tar.gz: c95515ac1be117d81b8bd770e9d42bef533ab475901010e728a98ae959d24d5a7f6e31b56ca2c1968b29f4ebd4bd5a478d9fe9d30983af16d9fdaca738f2f328
6
+ metadata.gz: 7584d45565e2945d44456c3b15410ad37ac52f210a0a3ebb6e7841364dc70ec6bc64fb3cc32624b09f2f11f9cc17acf8225ce1d8f038c6c4c635c440e769e61b
7
+ data.tar.gz: 0301b2a811b417cf785f3d79f3ed52042f52bc22d3082c90d090d353cd19eab2f8d6f5241bf0ef22ba1edc7e87303187b492b7b376d88ea8c447d1f9125b4bf9
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mcfly (0.0.16)
4
+ mcfly (0.0.17)
5
5
  delorean_lang (~> 0.1)
6
6
  pg (~> 0.17)
7
7
 
@@ -82,7 +82,7 @@ GEM
82
82
  tilt (~> 1.1, != 1.3.0)
83
83
  thor (0.19.1)
84
84
  tilt (1.4.1)
85
- treetop (1.5.3)
85
+ treetop (1.6.2)
86
86
  polyglot (~> 0.3)
87
87
  tzinfo (0.3.43)
88
88
 
@@ -1,7 +1,17 @@
1
1
  require 'delorean_lang'
2
2
 
3
3
  module Mcfly
4
- INFINITIES = Set[Float::INFINITY, 'infinity', 'Infinity']
4
+ INFINITIES = Set[Float::INFINITY, 'infinity', 'Infinity'].freeze
5
+
6
+ # Mcfly special columns -- FIXME: should "id" be here?
7
+ COLUMNS = Set[
8
+ "id",
9
+ "group_id",
10
+ "user_id",
11
+ "created_dt",
12
+ "obsoleted_dt",
13
+ "o_user_id",
14
+ ].freeze
5
15
 
6
16
  def self.is_infinity(pt)
7
17
  Mcfly::INFINITIES.member? pt
@@ -11,6 +21,17 @@ module Mcfly
11
21
  Mcfly::INFINITIES.member?(pt) ? 'infinity' : pt
12
22
  end
13
23
 
24
+ def self.has_mcfly?(klass)
25
+ # check if a class is mcfly enabled -- FIXME: currently this is
26
+ # checked using MCFLY_UNIQUENESS which is somewhat hacky.
27
+ klass.const_defined? :MCFLY_UNIQUENESS
28
+ end
29
+
30
+ def self.mcfly_uniqueness(klass)
31
+ # return uniqueness keys
32
+ klass.const_get :MCFLY_UNIQUENESS
33
+ end
34
+
14
35
  module Model
15
36
  class AssociationValidator < ActiveModel::Validator
16
37
  VALSET = Set[nil, Float::INFINITY, 'infinity']
@@ -61,12 +82,23 @@ module Mcfly
61
82
  end
62
83
 
63
84
  def mcfly_validates_uniqueness_of(*attr_names)
85
+ # FIXME: this all looks somewhat hacky since it makes
86
+ # assumptions about the shape of attr_names. Should, at
87
+ # least, add some assertions here to check the assumptions.
88
+
64
89
  # Set MCFLY_UNIQUENESS class constant to the args passed.
65
90
  # This is useful for introspection. FIXME: won't work if
66
91
  # mcfly_validates_uniqueness_of is called multiple times on
67
92
  # the same class.
68
- self.const_set(:MCFLY_UNIQUENESS, attr_names)
93
+ attr_list =
94
+ if attr_names.last.is_a?(Hash)
95
+ attr_names[0..-2] + (attr_names.last[:scope] || [])
96
+ else
97
+ attr_names.clone
98
+ end
99
+ self.const_set(:MCFLY_UNIQUENESS, attr_list.freeze)
69
100
 
101
+ # start building arguments to validates_uniqueness_of
70
102
  attr_names << {} unless attr_names.last.is_a?(Hash)
71
103
 
72
104
  attr_names.last[:scope] ||= []
@@ -1,3 +1,3 @@
1
1
  module Mcfly
2
- VERSION = "0.0.16"
2
+ VERSION = "0.0.17"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mcfly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.16
4
+ version: 0.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arman Bostani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-26 00:00:00.000000000 Z
11
+ date: 2015-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg