pat-maddox-fixjour 0.1.5 → 0.1.6
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/lib/fixjour.rb +1 -1
- data/lib/fixjour/attributes.rb +25 -0
- data/lib/fixjour/builders.rb +2 -5
- data/lib/fixjour/counter.rb +10 -20
- data/lib/fixjour/definitions.rb +4 -8
- metadata +2 -22
- data/lib/core_ext/hash.rb +0 -9
data/lib/fixjour.rb
CHANGED
|
@@ -2,7 +2,6 @@ $LOAD_PATH << File.dirname(__FILE__)
|
|
|
2
2
|
|
|
3
3
|
require 'rubygems'
|
|
4
4
|
require 'activerecord'
|
|
5
|
-
require 'core_ext/hash'
|
|
6
5
|
require 'core_ext/object'
|
|
7
6
|
require 'fixjour/merging_proxy'
|
|
8
7
|
require 'fixjour/redundant_check'
|
|
@@ -14,6 +13,7 @@ require 'fixjour/definitions'
|
|
|
14
13
|
require 'fixjour/counter'
|
|
15
14
|
require 'fixjour/builders'
|
|
16
15
|
require 'fixjour/deprecation'
|
|
16
|
+
require 'fixjour/attributes'
|
|
17
17
|
|
|
18
18
|
# This method is just for prettiness
|
|
19
19
|
def Fixjour(options={}, &block)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module Fixjour
|
|
2
|
+
class Attributes < Hash
|
|
3
|
+
def initialize(hash)
|
|
4
|
+
hash.each do |k, v|
|
|
5
|
+
self[k.to_s] = v unless v.nil?
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
each do |k, v|
|
|
9
|
+
(class << self; self; end).send(:define_method, k) { v }
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def [](key)
|
|
14
|
+
super key.to_s
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def has_key?(key)
|
|
18
|
+
super key.to_s
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def ==(other)
|
|
22
|
+
other.all? {|k, v| self[k] == v }
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
data/lib/fixjour/builders.rb
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
module Fixjour
|
|
2
|
-
|
|
3
|
-
Counter.counter(key)
|
|
4
|
-
end
|
|
5
|
-
|
|
2
|
+
include Counter
|
|
6
3
|
class << self
|
|
7
4
|
include Definitions
|
|
8
5
|
|
|
@@ -29,7 +26,7 @@ module Fixjour
|
|
|
29
26
|
name = name_for(klass)
|
|
30
27
|
|
|
31
28
|
define_create(name)
|
|
32
|
-
define_valid_attributes(name)
|
|
29
|
+
define_valid_attributes(name, options)
|
|
33
30
|
end
|
|
34
31
|
|
|
35
32
|
# Adds builders to Fixjour.
|
data/lib/fixjour/counter.rb
CHANGED
|
@@ -1,30 +1,20 @@
|
|
|
1
1
|
module Fixjour
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
key
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def counter(key)
|
|
9
|
-
counters[key] ||= new
|
|
10
|
-
counters[key].next
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
private
|
|
14
|
-
|
|
15
|
-
def counters
|
|
16
|
-
@counters ||= {}
|
|
2
|
+
module Counter
|
|
3
|
+
def self.reset(key=nil)
|
|
4
|
+
if key
|
|
5
|
+
@counters[key] = lambda { s ||= 0; s += 1 }
|
|
6
|
+
else
|
|
7
|
+
@counters = Hash.new { |h,k| s ||= 0; c = lambda { s += 1 }; h[k] = c }
|
|
17
8
|
end
|
|
18
9
|
end
|
|
19
|
-
|
|
20
10
|
reset
|
|
21
11
|
|
|
22
|
-
def
|
|
23
|
-
@
|
|
12
|
+
def self.counter(key)
|
|
13
|
+
@counters[key][]
|
|
24
14
|
end
|
|
25
15
|
|
|
26
|
-
def
|
|
27
|
-
|
|
16
|
+
def counter(key=nil)
|
|
17
|
+
Counter.counter(key)
|
|
28
18
|
end
|
|
29
19
|
end
|
|
30
20
|
end
|
data/lib/fixjour/definitions.rb
CHANGED
|
@@ -15,16 +15,12 @@ module Fixjour
|
|
|
15
15
|
model
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
# Defines the valid_*_attributes method
|
|
20
|
-
def define_valid_attributes(name)
|
|
20
|
+
def define_valid_attributes(name, options)
|
|
21
21
|
define_method("valid_#{name}_attributes") do |*args|
|
|
22
|
-
|
|
23
|
-
valid_attributes.delete_if { |key, value| value.nil? }
|
|
24
|
-
valid_attributes.stringify_keys!
|
|
25
|
-
valid_attributes.make_indifferent!
|
|
26
|
-
valid_attributes
|
|
22
|
+
Attributes.new(options.empty?? send("new_#{name}", *args).attributes : options)
|
|
27
23
|
end
|
|
28
24
|
end
|
|
29
25
|
end
|
|
30
|
-
end
|
|
26
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pat-maddox-fixjour
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Pat Nakajima
|
|
@@ -22,26 +22,6 @@ dependencies:
|
|
|
22
22
|
- !ruby/object:Gem::Version
|
|
23
23
|
version: "0"
|
|
24
24
|
version:
|
|
25
|
-
- !ruby/object:Gem::Dependency
|
|
26
|
-
name: faker
|
|
27
|
-
type: :development
|
|
28
|
-
version_requirement:
|
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - ">="
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: "0"
|
|
34
|
-
version:
|
|
35
|
-
- !ruby/object:Gem::Dependency
|
|
36
|
-
name: acts_as_fu
|
|
37
|
-
type: :development
|
|
38
|
-
version_requirement:
|
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
40
|
-
requirements:
|
|
41
|
-
- - ">="
|
|
42
|
-
- !ruby/object:Gem::Version
|
|
43
|
-
version: "0"
|
|
44
|
-
version:
|
|
45
25
|
description:
|
|
46
26
|
email: patnakajima@gmail.com
|
|
47
27
|
executables: []
|
|
@@ -52,9 +32,9 @@ extra_rdoc_files: []
|
|
|
52
32
|
|
|
53
33
|
files:
|
|
54
34
|
- lib/core_ext
|
|
55
|
-
- lib/core_ext/hash.rb
|
|
56
35
|
- lib/core_ext/object.rb
|
|
57
36
|
- lib/fixjour
|
|
37
|
+
- lib/fixjour/attributes.rb
|
|
58
38
|
- lib/fixjour/builders.rb
|
|
59
39
|
- lib/fixjour/counter.rb
|
|
60
40
|
- lib/fixjour/definitions.rb
|
data/lib/core_ext/hash.rb
DELETED