active_null 0.0.3 → 0.0.4
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 +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
|