jsonapi_compliable 0.6.4 → 0.6.5
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/.gitignore +1 -1
- data/.travis.yml +11 -3
- data/.yardopts +1 -0
- data/README.md +10 -1
- data/Rakefile +1 -0
- data/docs/JsonapiCompliable.html +202 -0
- data/docs/JsonapiCompliable/Adapters.html +119 -0
- data/docs/JsonapiCompliable/Adapters/Abstract.html +2285 -0
- data/docs/JsonapiCompliable/Adapters/ActiveRecord.html +2151 -0
- data/docs/JsonapiCompliable/Adapters/ActiveRecordSideloading.html +582 -0
- data/docs/JsonapiCompliable/Adapters/Null.html +1682 -0
- data/docs/JsonapiCompliable/Base.html +1395 -0
- data/docs/JsonapiCompliable/Deserializer.html +835 -0
- data/docs/JsonapiCompliable/Errors.html +115 -0
- data/docs/JsonapiCompliable/Errors/BadFilter.html +124 -0
- data/docs/JsonapiCompliable/Errors/StatNotFound.html +266 -0
- data/docs/JsonapiCompliable/Errors/UnsupportedPageSize.html +264 -0
- data/docs/JsonapiCompliable/Errors/ValidationError.html +124 -0
- data/docs/JsonapiCompliable/Extensions.html +117 -0
- data/docs/JsonapiCompliable/Extensions/BooleanAttribute.html +212 -0
- data/docs/JsonapiCompliable/Extensions/BooleanAttribute/ClassMethods.html +229 -0
- data/docs/JsonapiCompliable/Extensions/ExtraAttribute.html +242 -0
- data/docs/JsonapiCompliable/Extensions/ExtraAttribute/ClassMethods.html +237 -0
- data/docs/JsonapiCompliable/Query.html +1099 -0
- data/docs/JsonapiCompliable/Rails.html +211 -0
- data/docs/JsonapiCompliable/Resource.html +5241 -0
- data/docs/JsonapiCompliable/Scope.html +703 -0
- data/docs/JsonapiCompliable/Scoping.html +117 -0
- data/docs/JsonapiCompliable/Scoping/Base.html +843 -0
- data/docs/JsonapiCompliable/Scoping/DefaultFilter.html +318 -0
- data/docs/JsonapiCompliable/Scoping/ExtraFields.html +301 -0
- data/docs/JsonapiCompliable/Scoping/Filter.html +313 -0
- data/docs/JsonapiCompliable/Scoping/Filterable.html +364 -0
- data/docs/JsonapiCompliable/Scoping/Paginate.html +613 -0
- data/docs/JsonapiCompliable/Scoping/Sort.html +454 -0
- data/docs/JsonapiCompliable/SerializableTempId.html +216 -0
- data/docs/JsonapiCompliable/Sideload.html +2484 -0
- data/docs/JsonapiCompliable/Stats.html +117 -0
- data/docs/JsonapiCompliable/Stats/DSL.html +999 -0
- data/docs/JsonapiCompliable/Stats/Payload.html +391 -0
- data/docs/JsonapiCompliable/Util.html +117 -0
- data/docs/JsonapiCompliable/Util/FieldParams.html +228 -0
- data/docs/JsonapiCompliable/Util/Hash.html +471 -0
- data/docs/JsonapiCompliable/Util/IncludeParams.html +299 -0
- data/docs/JsonapiCompliable/Util/Persistence.html +435 -0
- data/docs/JsonapiCompliable/Util/RelationshipPayload.html +563 -0
- data/docs/JsonapiCompliable/Util/RenderOptions.html +250 -0
- data/docs/JsonapiCompliable/Util/ValidationResponse.html +532 -0
- data/docs/_index.html +527 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +492 -0
- data/docs/file.README.html +99 -0
- data/docs/file_list.html +56 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +99 -0
- data/docs/js/app.js +248 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +1731 -0
- data/docs/top-level-namespace.html +110 -0
- data/gemfiles/rails_5.gemfile +1 -1
- data/lib/jsonapi_compliable/adapters/abstract.rb +267 -4
- data/lib/jsonapi_compliable/adapters/active_record.rb +23 -1
- data/lib/jsonapi_compliable/adapters/null.rb +43 -3
- data/lib/jsonapi_compliable/base.rb +182 -33
- data/lib/jsonapi_compliable/deserializer.rb +90 -21
- data/lib/jsonapi_compliable/extensions/boolean_attribute.rb +12 -0
- data/lib/jsonapi_compliable/extensions/extra_attribute.rb +32 -0
- data/lib/jsonapi_compliable/extensions/temp_id.rb +11 -0
- data/lib/jsonapi_compliable/query.rb +94 -2
- data/lib/jsonapi_compliable/rails.rb +8 -0
- data/lib/jsonapi_compliable/resource.rb +548 -11
- data/lib/jsonapi_compliable/scope.rb +43 -1
- data/lib/jsonapi_compliable/scoping/base.rb +59 -8
- data/lib/jsonapi_compliable/scoping/default_filter.rb +33 -0
- data/lib/jsonapi_compliable/scoping/extra_fields.rb +33 -0
- data/lib/jsonapi_compliable/scoping/filter.rb +29 -2
- data/lib/jsonapi_compliable/scoping/filterable.rb +4 -0
- data/lib/jsonapi_compliable/scoping/paginate.rb +33 -0
- data/lib/jsonapi_compliable/scoping/sort.rb +18 -0
- data/lib/jsonapi_compliable/sideload.rb +229 -1
- data/lib/jsonapi_compliable/stats/dsl.rb +44 -0
- data/lib/jsonapi_compliable/stats/payload.rb +20 -0
- data/lib/jsonapi_compliable/util/field_params.rb +1 -0
- data/lib/jsonapi_compliable/util/hash.rb +18 -0
- data/lib/jsonapi_compliable/util/include_params.rb +22 -0
- data/lib/jsonapi_compliable/util/persistence.rb +13 -3
- data/lib/jsonapi_compliable/util/relationship_payload.rb +2 -0
- data/lib/jsonapi_compliable/util/render_options.rb +2 -0
- data/lib/jsonapi_compliable/util/validation_response.rb +16 -0
- data/lib/jsonapi_compliable/version.rb +1 -1
- metadata +60 -5
- data/gemfiles/rails_4.gemfile.lock +0 -208
- data/gemfiles/rails_5.gemfile.lock +0 -212
- data/lib/jsonapi_compliable/write.rb +0 -93
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
module JsonapiCompliable
|
|
2
2
|
module Stats
|
|
3
|
+
# Provides an easier interface to stats scoping.
|
|
4
|
+
#
|
|
5
|
+
# Used within Resource DSL:
|
|
6
|
+
#
|
|
7
|
+
# allow_stat total: [:count] do
|
|
8
|
+
# # ... eval'd in Stats::DSL context! ...
|
|
9
|
+
# end
|
|
10
|
+
#
|
|
11
|
+
# This allows us to define arbitrary stats:
|
|
12
|
+
#
|
|
13
|
+
# allow_stat total: [:count] do
|
|
14
|
+
# standard_deviation { |scope, attr| ... }
|
|
15
|
+
# end
|
|
16
|
+
#
|
|
17
|
+
# And use convenience methods:
|
|
18
|
+
#
|
|
19
|
+
# allow_stat :rating do
|
|
20
|
+
# count!
|
|
21
|
+
# average!
|
|
22
|
+
# end
|
|
23
|
+
#
|
|
24
|
+
# @see Resource.allow_stat
|
|
25
|
+
# @attr_reader [Symbol] name the stat, e.g. :total
|
|
26
|
+
# @attr_reader [Hash] calculations procs for various metrics
|
|
3
27
|
class DSL
|
|
4
28
|
attr_reader :name, :calculations
|
|
5
29
|
|
|
30
|
+
# @param [Adapters::Abstract] adapter the Resource adapter
|
|
31
|
+
# @param [Symbol, Hash] config example: +:total+ or +{ total: [:count] }+
|
|
6
32
|
def initialize(adapter, config)
|
|
7
33
|
config = { config => [] } if config.is_a?(Symbol)
|
|
8
34
|
|
|
@@ -12,31 +38,49 @@ module JsonapiCompliable
|
|
|
12
38
|
Array(config.values.first).each { |c| send(:"#{c}!") }
|
|
13
39
|
end
|
|
14
40
|
|
|
41
|
+
# Used for defining arbitrary stats within the DSL:
|
|
42
|
+
#
|
|
43
|
+
# allow_stat :total do
|
|
44
|
+
# standard_deviation { |scope, attr| ... }
|
|
45
|
+
# end
|
|
46
|
+
#
|
|
47
|
+
# ...will hit +method_missing+ and store the proc for future reference.
|
|
48
|
+
# @api private
|
|
15
49
|
def method_missing(meth, *args, &blk)
|
|
16
50
|
@calculations[meth] = blk
|
|
17
51
|
end
|
|
18
52
|
|
|
53
|
+
# Grab a calculation proc. Raises error if no corresponding stat
|
|
54
|
+
# has been configured.
|
|
55
|
+
#
|
|
56
|
+
# @param [String, Symbol] name the name of the calculation, e.g. +:total+
|
|
57
|
+
# @return [Proc] the proc to run the calculation
|
|
19
58
|
def calculation(name)
|
|
20
59
|
callable = @calculations[name] || @calculations[name.to_sym]
|
|
21
60
|
callable || raise(Errors::StatNotFound.new(@name, name))
|
|
22
61
|
end
|
|
23
62
|
|
|
63
|
+
# Convenience method for default :count proc
|
|
24
64
|
def count!
|
|
25
65
|
@calculations[:count] = @adapter.method(:count)
|
|
26
66
|
end
|
|
27
67
|
|
|
68
|
+
# Convenience method for default :sum proc
|
|
28
69
|
def sum!
|
|
29
70
|
@calculations[:sum] = @adapter.method(:sum)
|
|
30
71
|
end
|
|
31
72
|
|
|
73
|
+
# Convenience method for default :average proc
|
|
32
74
|
def average!
|
|
33
75
|
@calculations[:average] = @adapter.method(:average)
|
|
34
76
|
end
|
|
35
77
|
|
|
78
|
+
# Convenience method for default :maximum proc
|
|
36
79
|
def maximum!
|
|
37
80
|
@calculations[:maximum] = @adapter.method(:maximum)
|
|
38
81
|
end
|
|
39
82
|
|
|
83
|
+
# Convenience method for default :minimum proc
|
|
40
84
|
def minimum!
|
|
41
85
|
@calculations[:minimum] = @adapter.method(:minimum)
|
|
42
86
|
end
|
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
module JsonapiCompliable
|
|
2
2
|
module Stats
|
|
3
|
+
# Generate the stats payload so we can return it in the response.
|
|
4
|
+
#
|
|
5
|
+
# {
|
|
6
|
+
# data: [...],
|
|
7
|
+
# meta: { stats: the_generated_payload }
|
|
8
|
+
# }
|
|
9
|
+
#
|
|
10
|
+
# For example:
|
|
11
|
+
#
|
|
12
|
+
# {
|
|
13
|
+
# data: [...],
|
|
14
|
+
# meta: { stats: { total: { count: 100 } } }
|
|
15
|
+
# }
|
|
3
16
|
class Payload
|
|
17
|
+
# @param [Resource] resource the resource instance
|
|
18
|
+
# @param [Hash] query_hash the Query#to_hash for the current resource
|
|
19
|
+
# @param scope the scope we are chaining/modifying
|
|
4
20
|
def initialize(resource, query_hash, scope)
|
|
5
21
|
@resource = resource
|
|
6
22
|
@query_hash = query_hash[:stats]
|
|
7
23
|
@scope = scope
|
|
8
24
|
end
|
|
9
25
|
|
|
26
|
+
# Generate the payload for +{ meta: { stats: { ... } } }+
|
|
27
|
+
# Loops over all calculations, computes then, and gives back
|
|
28
|
+
# a hash of stats and their results.
|
|
29
|
+
# @return [Hash] the generated payload
|
|
10
30
|
def generate
|
|
11
31
|
{}.tap do |stats|
|
|
12
32
|
@query_hash.each_pair do |name, calculation|
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
module JsonapiCompliable
|
|
2
2
|
module Util
|
|
3
|
+
# @api private
|
|
3
4
|
class Hash
|
|
5
|
+
# Grab all keys at any level of the hash.
|
|
6
|
+
#
|
|
7
|
+
# { foo: { bar: { baz: {} } } }
|
|
8
|
+
#
|
|
9
|
+
# Becomes
|
|
10
|
+
#
|
|
11
|
+
# [:foo, :bar, :bar]
|
|
12
|
+
#
|
|
13
|
+
# @param hash the hash we want to process
|
|
14
|
+
# @param [Array<Symbol, String>] collection the memoized collection of keys
|
|
15
|
+
# @return [Array<Symbol, String>] the keys
|
|
16
|
+
# @api private
|
|
4
17
|
def self.keys(hash, collection = [])
|
|
5
18
|
hash.each_pair do |key, value|
|
|
6
19
|
collection << key
|
|
@@ -10,11 +23,16 @@ module JsonapiCompliable
|
|
|
10
23
|
collection
|
|
11
24
|
end
|
|
12
25
|
|
|
26
|
+
# Like ActiveSupport's #deep_merge
|
|
27
|
+
# @return [Hash] the merged hash
|
|
28
|
+
# @api private
|
|
13
29
|
def self.deep_merge!(hash, other)
|
|
14
30
|
merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2 }
|
|
15
31
|
hash.merge!(other, &merger)
|
|
16
32
|
end
|
|
17
33
|
|
|
34
|
+
# Like ActiveSupport's #deep_dup
|
|
35
|
+
# @api private
|
|
18
36
|
def self.deep_dup(hash)
|
|
19
37
|
if hash.respond_to?(:deep_dup)
|
|
20
38
|
hash.deep_dup
|
|
@@ -1,7 +1,29 @@
|
|
|
1
1
|
module JsonapiCompliable
|
|
2
2
|
module Util
|
|
3
|
+
# Utility class for dealing with Include Directives
|
|
3
4
|
class IncludeParams
|
|
4
5
|
class << self
|
|
6
|
+
# Let's say the user requested these sideloads:
|
|
7
|
+
#
|
|
8
|
+
# GET /posts?include=comments.author
|
|
9
|
+
#
|
|
10
|
+
# But our resource had this code:
|
|
11
|
+
#
|
|
12
|
+
# sideload_whitelist({ index: [:comments] })
|
|
13
|
+
#
|
|
14
|
+
# We should drop the 'author' sideload from the request.
|
|
15
|
+
#
|
|
16
|
+
# Hashes become 'include directive hashes' within the library. ie
|
|
17
|
+
#
|
|
18
|
+
# [:tags, { comments: :author }]
|
|
19
|
+
#
|
|
20
|
+
# Becomes
|
|
21
|
+
#
|
|
22
|
+
# { tags: {}, comments: { author: {} } }
|
|
23
|
+
#
|
|
24
|
+
# @param [Hash] requested_includes the nested hash the user requested
|
|
25
|
+
# @param [Hash] allowed_includes the nested hash configured via DSL
|
|
26
|
+
# @return [Hash] the scrubbed hash
|
|
5
27
|
def scrub(requested_includes, allowed_includes)
|
|
6
28
|
{}.tap do |valid|
|
|
7
29
|
requested_includes.each_pair do |key, sub_hash|
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
# Save the given Resource#model, and all of its nested relationships.
|
|
2
|
+
# @api private
|
|
1
3
|
class JsonapiCompliable::Util::Persistence
|
|
4
|
+
# @param [Resource] resource the resource instance
|
|
5
|
+
# @param [Hash] meta see (Deserializer#meta)
|
|
6
|
+
# @param [Hash] attributes see (Deserializer#attributes)
|
|
7
|
+
# @param [Hash] relationships see (Deserializer#relationships)
|
|
2
8
|
def initialize(resource, meta, attributes, relationships)
|
|
3
9
|
@resource = resource
|
|
4
10
|
@meta = meta
|
|
@@ -6,9 +12,11 @@ class JsonapiCompliable::Util::Persistence
|
|
|
6
12
|
@relationships = relationships
|
|
7
13
|
end
|
|
8
14
|
|
|
15
|
+
# Perform the actual save logic.
|
|
16
|
+
#
|
|
9
17
|
# belongs_to must be processed before/separately from has_many -
|
|
10
18
|
# we need to know the primary key value of the parent before
|
|
11
|
-
# persisting the child
|
|
19
|
+
# persisting the child.
|
|
12
20
|
#
|
|
13
21
|
# Flow:
|
|
14
22
|
# * process parents
|
|
@@ -19,6 +27,8 @@ class JsonapiCompliable::Util::Persistence
|
|
|
19
27
|
# * process children
|
|
20
28
|
# * associate children
|
|
21
29
|
# * return current object
|
|
30
|
+
#
|
|
31
|
+
# @return the persisted model instance
|
|
22
32
|
def run
|
|
23
33
|
parents = process_belongs_to(@relationships)
|
|
24
34
|
update_foreign_key_for_parents(parents)
|
|
@@ -35,6 +45,8 @@ class JsonapiCompliable::Util::Persistence
|
|
|
35
45
|
persisted unless @meta[:method] == :destroy
|
|
36
46
|
end
|
|
37
47
|
|
|
48
|
+
private
|
|
49
|
+
|
|
38
50
|
# The child's attributes should be modified to nil-out the
|
|
39
51
|
# foreign_key when the parent is being destroyed or disassociated
|
|
40
52
|
def update_foreign_key(parent_object, attrs, x)
|
|
@@ -99,8 +111,6 @@ class JsonapiCompliable::Util::Persistence
|
|
|
99
111
|
object.instance_variable_set(:@_jsonapi_temp_id, temp_id)
|
|
100
112
|
end
|
|
101
113
|
|
|
102
|
-
private
|
|
103
|
-
|
|
104
114
|
def iterate(only: [], except: [])
|
|
105
115
|
opts = {
|
|
106
116
|
resource: @resource,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
module JsonapiCompliable
|
|
2
2
|
module Util
|
|
3
|
+
# Generate the options we end up passing to {{http://jsonapi-rb.org jsonapi-rb}}
|
|
4
|
+
# @api private
|
|
3
5
|
class RenderOptions
|
|
4
6
|
def self.generate(object, query_hash, overrides = {})
|
|
5
7
|
resolved = object.respond_to?(:resolve) ? object.resolve : object
|
|
@@ -1,15 +1,31 @@
|
|
|
1
|
+
# We need to know two things in the response of a persistence call:
|
|
2
|
+
#
|
|
3
|
+
# * The model we just tried to persist
|
|
4
|
+
# * Was the persistence successful?
|
|
5
|
+
#
|
|
6
|
+
# This object wraps those bits of data. The call is considered
|
|
7
|
+
# unsuccessful when it adheres to the ActiveModel#errors interface,
|
|
8
|
+
# and #errors is not blank. In other words, it is not successful if
|
|
9
|
+
# there were validation errors.
|
|
10
|
+
#
|
|
11
|
+
# @attr_reader object the object we are saving
|
|
1
12
|
class JsonapiCompliable::Util::ValidationResponse
|
|
2
13
|
attr_reader :object
|
|
3
14
|
|
|
15
|
+
# @param object the model instance we tried to save
|
|
16
|
+
# @param deserialized_params see Base#deserialized_params
|
|
4
17
|
def initialize(object, deserialized_params)
|
|
5
18
|
@object = object
|
|
6
19
|
@deserialized_params = deserialized_params
|
|
7
20
|
end
|
|
8
21
|
|
|
22
|
+
# Check to ensure no validation errors.
|
|
23
|
+
# @return [Boolean] did the persistence call succeed?
|
|
9
24
|
def success?
|
|
10
25
|
all_valid?(object, @deserialized_params.relationships)
|
|
11
26
|
end
|
|
12
27
|
|
|
28
|
+
# @return [Array] the object and success state
|
|
13
29
|
def to_a
|
|
14
30
|
[object, success?]
|
|
15
31
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jsonapi_compliable
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.6.
|
|
4
|
+
version: 0.6.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Lee Richmond
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2017-
|
|
12
|
+
date: 2017-05-08 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: jsonapi-serializable
|
|
@@ -127,6 +127,7 @@ files:
|
|
|
127
127
|
- ".rspec"
|
|
128
128
|
- ".ruby-version"
|
|
129
129
|
- ".travis.yml"
|
|
130
|
+
- ".yardopts"
|
|
130
131
|
- Appraisals
|
|
131
132
|
- CODE_OF_CONDUCT.md
|
|
132
133
|
- Gemfile
|
|
@@ -138,10 +139,65 @@ files:
|
|
|
138
139
|
- bin/console
|
|
139
140
|
- bin/rspec
|
|
140
141
|
- bin/setup
|
|
142
|
+
- docs/JsonapiCompliable.html
|
|
143
|
+
- docs/JsonapiCompliable/Adapters.html
|
|
144
|
+
- docs/JsonapiCompliable/Adapters/Abstract.html
|
|
145
|
+
- docs/JsonapiCompliable/Adapters/ActiveRecord.html
|
|
146
|
+
- docs/JsonapiCompliable/Adapters/ActiveRecordSideloading.html
|
|
147
|
+
- docs/JsonapiCompliable/Adapters/Null.html
|
|
148
|
+
- docs/JsonapiCompliable/Base.html
|
|
149
|
+
- docs/JsonapiCompliable/Deserializer.html
|
|
150
|
+
- docs/JsonapiCompliable/Errors.html
|
|
151
|
+
- docs/JsonapiCompliable/Errors/BadFilter.html
|
|
152
|
+
- docs/JsonapiCompliable/Errors/StatNotFound.html
|
|
153
|
+
- docs/JsonapiCompliable/Errors/UnsupportedPageSize.html
|
|
154
|
+
- docs/JsonapiCompliable/Errors/ValidationError.html
|
|
155
|
+
- docs/JsonapiCompliable/Extensions.html
|
|
156
|
+
- docs/JsonapiCompliable/Extensions/BooleanAttribute.html
|
|
157
|
+
- docs/JsonapiCompliable/Extensions/BooleanAttribute/ClassMethods.html
|
|
158
|
+
- docs/JsonapiCompliable/Extensions/ExtraAttribute.html
|
|
159
|
+
- docs/JsonapiCompliable/Extensions/ExtraAttribute/ClassMethods.html
|
|
160
|
+
- docs/JsonapiCompliable/Query.html
|
|
161
|
+
- docs/JsonapiCompliable/Rails.html
|
|
162
|
+
- docs/JsonapiCompliable/Resource.html
|
|
163
|
+
- docs/JsonapiCompliable/Scope.html
|
|
164
|
+
- docs/JsonapiCompliable/Scoping.html
|
|
165
|
+
- docs/JsonapiCompliable/Scoping/Base.html
|
|
166
|
+
- docs/JsonapiCompliable/Scoping/DefaultFilter.html
|
|
167
|
+
- docs/JsonapiCompliable/Scoping/ExtraFields.html
|
|
168
|
+
- docs/JsonapiCompliable/Scoping/Filter.html
|
|
169
|
+
- docs/JsonapiCompliable/Scoping/Filterable.html
|
|
170
|
+
- docs/JsonapiCompliable/Scoping/Paginate.html
|
|
171
|
+
- docs/JsonapiCompliable/Scoping/Sort.html
|
|
172
|
+
- docs/JsonapiCompliable/SerializableTempId.html
|
|
173
|
+
- docs/JsonapiCompliable/Sideload.html
|
|
174
|
+
- docs/JsonapiCompliable/Stats.html
|
|
175
|
+
- docs/JsonapiCompliable/Stats/DSL.html
|
|
176
|
+
- docs/JsonapiCompliable/Stats/Payload.html
|
|
177
|
+
- docs/JsonapiCompliable/Util.html
|
|
178
|
+
- docs/JsonapiCompliable/Util/FieldParams.html
|
|
179
|
+
- docs/JsonapiCompliable/Util/Hash.html
|
|
180
|
+
- docs/JsonapiCompliable/Util/IncludeParams.html
|
|
181
|
+
- docs/JsonapiCompliable/Util/Persistence.html
|
|
182
|
+
- docs/JsonapiCompliable/Util/RelationshipPayload.html
|
|
183
|
+
- docs/JsonapiCompliable/Util/RenderOptions.html
|
|
184
|
+
- docs/JsonapiCompliable/Util/ValidationResponse.html
|
|
185
|
+
- docs/_index.html
|
|
186
|
+
- docs/class_list.html
|
|
187
|
+
- docs/css/common.css
|
|
188
|
+
- docs/css/full_list.css
|
|
189
|
+
- docs/css/style.css
|
|
190
|
+
- docs/file.README.html
|
|
191
|
+
- docs/file_list.html
|
|
192
|
+
- docs/frames.html
|
|
193
|
+
- docs/index.html
|
|
194
|
+
- docs/js/app.js
|
|
195
|
+
- docs/js/full_list.js
|
|
196
|
+
- docs/js/jquery.js
|
|
197
|
+
- docs/method_list.html
|
|
198
|
+
- docs/top-level-namespace.html
|
|
141
199
|
- gemfiles/rails_4.gemfile
|
|
142
|
-
- gemfiles/rails_4.gemfile.lock
|
|
143
200
|
- gemfiles/rails_5.gemfile
|
|
144
|
-
- gemfiles/rails_5.gemfile.lock
|
|
145
201
|
- jsonapi_compliable.gemspec
|
|
146
202
|
- lib/jsonapi_compliable.rb
|
|
147
203
|
- lib/jsonapi_compliable/adapters/abstract.rb
|
|
@@ -176,7 +232,6 @@ files:
|
|
|
176
232
|
- lib/jsonapi_compliable/util/render_options.rb
|
|
177
233
|
- lib/jsonapi_compliable/util/validation_response.rb
|
|
178
234
|
- lib/jsonapi_compliable/version.rb
|
|
179
|
-
- lib/jsonapi_compliable/write.rb
|
|
180
235
|
homepage:
|
|
181
236
|
licenses:
|
|
182
237
|
- MIT
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: ..
|
|
3
|
-
specs:
|
|
4
|
-
jsonapi_compliable (0.6.3)
|
|
5
|
-
jsonapi-serializable (~> 0.1)
|
|
6
|
-
|
|
7
|
-
GEM
|
|
8
|
-
remote: https://rubygems.org/
|
|
9
|
-
specs:
|
|
10
|
-
actionmailer (4.2.7.1)
|
|
11
|
-
actionpack (= 4.2.7.1)
|
|
12
|
-
actionview (= 4.2.7.1)
|
|
13
|
-
activejob (= 4.2.7.1)
|
|
14
|
-
mail (~> 2.5, >= 2.5.4)
|
|
15
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
|
16
|
-
actionpack (4.2.7.1)
|
|
17
|
-
actionview (= 4.2.7.1)
|
|
18
|
-
activesupport (= 4.2.7.1)
|
|
19
|
-
rack (~> 1.6)
|
|
20
|
-
rack-test (~> 0.6.2)
|
|
21
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
|
22
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
23
|
-
actionview (4.2.7.1)
|
|
24
|
-
activesupport (= 4.2.7.1)
|
|
25
|
-
builder (~> 3.1)
|
|
26
|
-
erubis (~> 2.7.0)
|
|
27
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
|
28
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
29
|
-
activejob (4.2.7.1)
|
|
30
|
-
activesupport (= 4.2.7.1)
|
|
31
|
-
globalid (>= 0.3.0)
|
|
32
|
-
activemodel (4.2.7.1)
|
|
33
|
-
activesupport (= 4.2.7.1)
|
|
34
|
-
builder (~> 3.1)
|
|
35
|
-
activerecord (4.2.7.1)
|
|
36
|
-
activemodel (= 4.2.7.1)
|
|
37
|
-
activesupport (= 4.2.7.1)
|
|
38
|
-
arel (~> 6.0)
|
|
39
|
-
activesupport (4.2.7.1)
|
|
40
|
-
i18n (~> 0.7)
|
|
41
|
-
json (~> 1.7, >= 1.7.7)
|
|
42
|
-
minitest (~> 5.1)
|
|
43
|
-
thread_safe (~> 0.3, >= 0.3.4)
|
|
44
|
-
tzinfo (~> 1.1)
|
|
45
|
-
appraisal (2.1.0)
|
|
46
|
-
bundler
|
|
47
|
-
rake
|
|
48
|
-
thor (>= 0.14.0)
|
|
49
|
-
arel (6.0.3)
|
|
50
|
-
builder (3.2.2)
|
|
51
|
-
byebug (9.0.6)
|
|
52
|
-
coderay (1.1.1)
|
|
53
|
-
concurrent-ruby (1.0.4)
|
|
54
|
-
database_cleaner (1.5.3)
|
|
55
|
-
diff-lcs (1.2.5)
|
|
56
|
-
erubis (2.7.0)
|
|
57
|
-
ffi (1.9.14)
|
|
58
|
-
formatador (0.2.5)
|
|
59
|
-
globalid (0.3.7)
|
|
60
|
-
activesupport (>= 4.1.0)
|
|
61
|
-
guard (2.14.0)
|
|
62
|
-
formatador (>= 0.2.4)
|
|
63
|
-
listen (>= 2.7, < 4.0)
|
|
64
|
-
lumberjack (~> 1.0)
|
|
65
|
-
nenv (~> 0.1)
|
|
66
|
-
notiffany (~> 0.0)
|
|
67
|
-
pry (>= 0.9.12)
|
|
68
|
-
shellany (~> 0.0)
|
|
69
|
-
thor (>= 0.18.1)
|
|
70
|
-
guard-compat (1.2.1)
|
|
71
|
-
guard-rspec (4.7.3)
|
|
72
|
-
guard (~> 2.1)
|
|
73
|
-
guard-compat (~> 1.1)
|
|
74
|
-
rspec (>= 2.99.0, < 4.0)
|
|
75
|
-
i18n (0.7.0)
|
|
76
|
-
json (1.8.3)
|
|
77
|
-
jsonapi-deserializable (0.1.1)
|
|
78
|
-
jsonapi-parser (= 0.1.1)
|
|
79
|
-
jsonapi-parser (0.1.1)
|
|
80
|
-
jsonapi-rails (0.1.1)
|
|
81
|
-
jsonapi-rb (= 0.1.1)
|
|
82
|
-
jsonapi-rb (0.1.1)
|
|
83
|
-
jsonapi-deserializable (= 0.1.1)
|
|
84
|
-
jsonapi-serializable (= 0.1.1)
|
|
85
|
-
jsonapi-renderer (0.1.1)
|
|
86
|
-
jsonapi-serializable (0.1.1)
|
|
87
|
-
jsonapi-renderer (= 0.1.1)
|
|
88
|
-
kaminari (0.17.0)
|
|
89
|
-
actionpack (>= 3.0.0)
|
|
90
|
-
activesupport (>= 3.0.0)
|
|
91
|
-
listen (3.1.5)
|
|
92
|
-
rb-fsevent (~> 0.9, >= 0.9.4)
|
|
93
|
-
rb-inotify (~> 0.9, >= 0.9.7)
|
|
94
|
-
ruby_dep (~> 1.2)
|
|
95
|
-
loofah (2.0.3)
|
|
96
|
-
nokogiri (>= 1.5.9)
|
|
97
|
-
lumberjack (1.0.10)
|
|
98
|
-
mail (2.6.4)
|
|
99
|
-
mime-types (>= 1.16, < 4)
|
|
100
|
-
method_source (0.8.2)
|
|
101
|
-
mime-types (3.1)
|
|
102
|
-
mime-types-data (~> 3.2015)
|
|
103
|
-
mime-types-data (3.2016.0521)
|
|
104
|
-
mini_portile2 (2.1.0)
|
|
105
|
-
minitest (5.10.1)
|
|
106
|
-
nenv (0.3.0)
|
|
107
|
-
nokogiri (1.6.8.1)
|
|
108
|
-
mini_portile2 (~> 2.1.0)
|
|
109
|
-
notiffany (0.1.1)
|
|
110
|
-
nenv (~> 0.1)
|
|
111
|
-
shellany (~> 0.0)
|
|
112
|
-
pry (0.10.4)
|
|
113
|
-
coderay (~> 1.1.0)
|
|
114
|
-
method_source (~> 0.8.1)
|
|
115
|
-
slop (~> 3.4)
|
|
116
|
-
pry-byebug (3.4.2)
|
|
117
|
-
byebug (~> 9.0)
|
|
118
|
-
pry (~> 0.10)
|
|
119
|
-
rack (1.6.5)
|
|
120
|
-
rack-test (0.6.3)
|
|
121
|
-
rack (>= 1.0)
|
|
122
|
-
rails (4.2.7.1)
|
|
123
|
-
actionmailer (= 4.2.7.1)
|
|
124
|
-
actionpack (= 4.2.7.1)
|
|
125
|
-
actionview (= 4.2.7.1)
|
|
126
|
-
activejob (= 4.2.7.1)
|
|
127
|
-
activemodel (= 4.2.7.1)
|
|
128
|
-
activerecord (= 4.2.7.1)
|
|
129
|
-
activesupport (= 4.2.7.1)
|
|
130
|
-
bundler (>= 1.3.0, < 2.0)
|
|
131
|
-
railties (= 4.2.7.1)
|
|
132
|
-
sprockets-rails
|
|
133
|
-
rails-deprecated_sanitizer (1.0.3)
|
|
134
|
-
activesupport (>= 4.2.0.alpha)
|
|
135
|
-
rails-dom-testing (1.0.7)
|
|
136
|
-
activesupport (>= 4.2.0.beta, < 5.0)
|
|
137
|
-
nokogiri (~> 1.6.0)
|
|
138
|
-
rails-deprecated_sanitizer (>= 1.0.1)
|
|
139
|
-
rails-html-sanitizer (1.0.3)
|
|
140
|
-
loofah (~> 2.0)
|
|
141
|
-
railties (4.2.7.1)
|
|
142
|
-
actionpack (= 4.2.7.1)
|
|
143
|
-
activesupport (= 4.2.7.1)
|
|
144
|
-
rake (>= 0.8.7)
|
|
145
|
-
thor (>= 0.18.1, < 2.0)
|
|
146
|
-
rake (10.5.0)
|
|
147
|
-
rb-fsevent (0.9.8)
|
|
148
|
-
rb-inotify (0.9.7)
|
|
149
|
-
ffi (>= 0.5.0)
|
|
150
|
-
rspec (3.5.0)
|
|
151
|
-
rspec-core (~> 3.5.0)
|
|
152
|
-
rspec-expectations (~> 3.5.0)
|
|
153
|
-
rspec-mocks (~> 3.5.0)
|
|
154
|
-
rspec-core (3.5.4)
|
|
155
|
-
rspec-support (~> 3.5.0)
|
|
156
|
-
rspec-expectations (3.5.0)
|
|
157
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
158
|
-
rspec-support (~> 3.5.0)
|
|
159
|
-
rspec-mocks (3.5.0)
|
|
160
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
161
|
-
rspec-support (~> 3.5.0)
|
|
162
|
-
rspec-rails (3.5.2)
|
|
163
|
-
actionpack (>= 3.0)
|
|
164
|
-
activesupport (>= 3.0)
|
|
165
|
-
railties (>= 3.0)
|
|
166
|
-
rspec-core (~> 3.5.0)
|
|
167
|
-
rspec-expectations (~> 3.5.0)
|
|
168
|
-
rspec-mocks (~> 3.5.0)
|
|
169
|
-
rspec-support (~> 3.5.0)
|
|
170
|
-
rspec-support (3.5.0)
|
|
171
|
-
ruby_dep (1.5.0)
|
|
172
|
-
shellany (0.0.1)
|
|
173
|
-
slop (3.6.0)
|
|
174
|
-
sprockets (3.7.0)
|
|
175
|
-
concurrent-ruby (~> 1.0)
|
|
176
|
-
rack (> 1, < 3)
|
|
177
|
-
sprockets-rails (3.2.0)
|
|
178
|
-
actionpack (>= 4.0)
|
|
179
|
-
activesupport (>= 4.0)
|
|
180
|
-
sprockets (>= 3.0.0)
|
|
181
|
-
sqlite3 (1.3.12)
|
|
182
|
-
thor (0.19.4)
|
|
183
|
-
thread_safe (0.3.5)
|
|
184
|
-
tzinfo (1.2.2)
|
|
185
|
-
thread_safe (~> 0.1)
|
|
186
|
-
|
|
187
|
-
PLATFORMS
|
|
188
|
-
ruby
|
|
189
|
-
|
|
190
|
-
DEPENDENCIES
|
|
191
|
-
activerecord (>= 4.1, < 6)
|
|
192
|
-
appraisal
|
|
193
|
-
bundler (~> 1.12)
|
|
194
|
-
database_cleaner
|
|
195
|
-
guard
|
|
196
|
-
guard-rspec
|
|
197
|
-
jsonapi-rails (~> 0.1)
|
|
198
|
-
jsonapi_compliable!
|
|
199
|
-
kaminari (~> 0.17)
|
|
200
|
-
pry
|
|
201
|
-
pry-byebug
|
|
202
|
-
rails (~> 4.1)
|
|
203
|
-
rake (~> 10.0)
|
|
204
|
-
rspec-rails
|
|
205
|
-
sqlite3
|
|
206
|
-
|
|
207
|
-
BUNDLED WITH
|
|
208
|
-
1.14.6
|