active_null 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/lib/active_null.rb +5 -3
- data/lib/active_null/null_model_builder.rb +2 -2
- data/lib/active_null/version.rb +1 -1
- data/spec/active_null_spec.rb +5 -0
- data/spec/models.rb +8 -0
- data/spec/schema.rb +4 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3494bf9c332cedeb22db3910a21b9164ce99082
|
4
|
+
data.tar.gz: e1a18e65f9a6b31af45896a73b307847d70341d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff9327d00259b3a0c21f9e3c032e77b674d5ed6740b96bcc65cba07482f95f5393d3c1dcc85a516a6a426bee5f8319e7231bdde78ba9b6187dbb5cf877634a94
|
7
|
+
data.tar.gz: e6171f1aedabb49e2faf150848e855d4d984e4b8942c78e83352c0dae57598faa556522c263f26096d946ab469baecd7e7ca1a523386a4a2428c93d4df7bffad
|
data/README.md
CHANGED
@@ -34,11 +34,13 @@ For each model you would like to be null aware, `extend ActiveNull`.
|
|
34
34
|
class Post < ActiveRecord::Base
|
35
35
|
extend ActiveNull
|
36
36
|
has_many :comments
|
37
|
+
null_model
|
37
38
|
end
|
38
39
|
|
39
40
|
class Comment < ActiveRecord::Base
|
40
41
|
extend ActiveNull
|
41
42
|
belongs_to :post
|
43
|
+
null_model
|
42
44
|
end
|
43
45
|
```
|
44
46
|
|
data/lib/active_null.rb
CHANGED
@@ -3,12 +3,14 @@ require 'active_null/null_model_builder'
|
|
3
3
|
|
4
4
|
module ActiveNull
|
5
5
|
def null
|
6
|
-
|
6
|
+
@null_class.get
|
7
7
|
end
|
8
8
|
|
9
9
|
def null_model(&block)
|
10
|
-
|
11
|
-
|
10
|
+
null_model_overrides = if block_given?
|
11
|
+
Module.new.tap { |m| m.module_eval(&block) }
|
12
|
+
end
|
13
|
+
@null_class = NullModelBuilder.new(self, null_model_overrides).build
|
12
14
|
end
|
13
15
|
|
14
16
|
def find_by(*args, &block)
|
@@ -72,8 +72,8 @@ module ActiveNull
|
|
72
72
|
end
|
73
73
|
end
|
74
74
|
end
|
75
|
-
null.include Draper::Decoratable if Object.const_defined? 'Draper'
|
76
|
-
null.include overrides if overrides
|
75
|
+
null.send(:include, Draper::Decoratable) if Object.const_defined? 'Draper'
|
76
|
+
null.send(:include, overrides) if overrides
|
77
77
|
set_null_model null
|
78
78
|
end
|
79
79
|
|
data/lib/active_null/version.rb
CHANGED
data/spec/active_null_spec.rb
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe ActiveNull do
|
4
|
+
it 'defines the null class' do
|
5
|
+
expect(Object.const_defined? 'NullPost').to eq true
|
6
|
+
end
|
7
|
+
|
4
8
|
describe '.null' do
|
5
9
|
specify { expect(Post.null).to be_instance_of(NullPost) }
|
10
|
+
specify { expect(Test::TestModel.null).to be_instance_of(Test::NullTestModel) }
|
6
11
|
end
|
7
12
|
|
8
13
|
describe '.null_model' do
|
data/spec/models.rb
CHANGED
@@ -11,6 +11,7 @@ end
|
|
11
11
|
class Comment < ActiveRecord::Base
|
12
12
|
extend ActiveNull
|
13
13
|
belongs_to :post
|
14
|
+
null_model
|
14
15
|
end
|
15
16
|
|
16
17
|
class NullPostDecorator < Draper::Decorator
|
@@ -20,3 +21,10 @@ end
|
|
20
21
|
class PostDecorator < Draper::Decorator
|
21
22
|
delegate_all
|
22
23
|
end
|
24
|
+
|
25
|
+
module Test
|
26
|
+
class TestModel < ActiveRecord::Base
|
27
|
+
extend ActiveNull
|
28
|
+
null_model
|
29
|
+
end
|
30
|
+
end
|
data/spec/schema.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_null
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- alexpeachey
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: naught
|