extendible 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/lib/extendible.rb +1 -1
- data/lib/extendible/version.rb +1 -1
- data/spec/fixtures/fixtures.rb +41 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/unit/extendible_spec.rb +14 -0
- metadata +6 -4
- data/spec/extendible_spec.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b28952ab4f2592b29f58893a3dc90e80adf67b4a
|
4
|
+
data.tar.gz: 219da90f624b040e41cdbc5fd6fb971a40db51c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f821533a0996464884ad2c83458348c1a5ed9d008a345ba6c203ad13f9f4e8992b1600c5e0d681a351c57ac04e5a17170fe91a1ad88ccda7888f720f3c32948
|
7
|
+
data.tar.gz: 73e8a8dbca93c3dc15aa5fd8227ffa6d6070b88f654b9a7b904c426db3779ed2d157baeaba53afaa038502d8205fe0e75d17734a26294a53fea085b36fc8d093
|
data/.gitignore
CHANGED
data/lib/extendible.rb
CHANGED
@@ -9,7 +9,7 @@ module Extendible
|
|
9
9
|
def extended_objects
|
10
10
|
return @extended_objects unless @extended_objects.nil?
|
11
11
|
# empty array if no params[:extend] is provided
|
12
|
-
return
|
12
|
+
return {} if scope[:extend].nil?
|
13
13
|
all = {}
|
14
14
|
# iterate comma separated list of objects to extend
|
15
15
|
scope[:extend].split(',').map(&:strip).each do |object_name|
|
data/lib/extendible/version.rb
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
class Reference
|
2
|
+
attr_accessor :title, :description, :secret
|
3
|
+
|
4
|
+
def initialize
|
5
|
+
@title = 'I\'m an object'
|
6
|
+
@description = 'Just a description'
|
7
|
+
@secret = 'this is secret'
|
8
|
+
end
|
9
|
+
|
10
|
+
def as_json
|
11
|
+
{
|
12
|
+
title: @title,
|
13
|
+
description: @description,
|
14
|
+
secret: @secret
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class EntitledRef < Reference
|
20
|
+
end
|
21
|
+
|
22
|
+
class PoorRef < Reference
|
23
|
+
end
|
24
|
+
|
25
|
+
class MyObject
|
26
|
+
attr_accessor :entitled_ref, :poor_ref
|
27
|
+
|
28
|
+
def initialize
|
29
|
+
@entitled_ref = EntitledRef.new
|
30
|
+
@poor_ref = PoorRef.new
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class MyObjectSerializer < ActiveModel::Serializer
|
35
|
+
include Extendible
|
36
|
+
end
|
37
|
+
|
38
|
+
class EntitledRefSerializer < ActiveModel::Serializer
|
39
|
+
include Extendible
|
40
|
+
attributes :title, :description
|
41
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Extendible do
|
4
|
+
it 'responds to extendible' do
|
5
|
+
expect(MyObjectSerializer.respond_to?(:extendible)).to be_true
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'makes extendible objects available' do
|
9
|
+
serializer = MyObjectSerializer.new({})
|
10
|
+
MyObjectSerializer.extendible :entitled_ref, :poor_ref
|
11
|
+
expect((serializer.respond_to?(:entitled_ref) and serializer.respond_to?(:poor_ref))).to be_true
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: extendible
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Falkén
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_model_serializers
|
@@ -81,8 +81,9 @@ files:
|
|
81
81
|
- extendible.gemspec
|
82
82
|
- lib/extendible.rb
|
83
83
|
- lib/extendible/version.rb
|
84
|
-
- spec/
|
84
|
+
- spec/fixtures/fixtures.rb
|
85
85
|
- spec/spec_helper.rb
|
86
|
+
- spec/unit/extendible_spec.rb
|
86
87
|
homepage: https://github.com/robertfalken/extendible
|
87
88
|
licenses:
|
88
89
|
- MIT
|
@@ -108,5 +109,6 @@ signing_key:
|
|
108
109
|
specification_version: 4
|
109
110
|
summary: Serializer extension
|
110
111
|
test_files:
|
111
|
-
- spec/
|
112
|
+
- spec/fixtures/fixtures.rb
|
112
113
|
- spec/spec_helper.rb
|
114
|
+
- spec/unit/extendible_spec.rb
|
data/spec/extendible_spec.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
|
4
|
-
class TestSerializer < ActiveModel::Serializer
|
5
|
-
include Extendible
|
6
|
-
end
|
7
|
-
|
8
|
-
|
9
|
-
describe Extendible do
|
10
|
-
it 'responds to extendible' do
|
11
|
-
expect(TestSerializer.respond_to?(:extendible)).to be_true
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'makes extendible objects available' do
|
15
|
-
serializer = TestSerializer.new({})
|
16
|
-
TestSerializer.extendible :ref_one, :ref_two
|
17
|
-
expect((serializer.respond_to?(:ref_one) and serializer.respond_to?(:ref_two))).to be_true
|
18
|
-
end
|
19
|
-
end
|