mirror of
https://github.com/samsonjs/grape-active_model_serializers.git
synced 2026-03-25 08:45:55 +00:00
Out with Travis CI, in with GitHub Actions
* Update dependencies and appease the robot overlords, rubocop and danger.
This commit is contained in:
parent
096fd41c11
commit
0a11b5d101
18 changed files with 118 additions and 89 deletions
36
.github/workflows/ci.yml
vendored
Normal file
36
.github/workflows/ci.yml
vendored
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
name: CI
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [master]
|
||||||
|
pull_request:
|
||||||
|
branches: [master]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- ruby-version: 3.4.4
|
||||||
|
command: bundle exec danger
|
||||||
|
|
||||||
|
- ruby-version: 3.4.4
|
||||||
|
command: bundle exec rake
|
||||||
|
- ruby-version: 3.3.8
|
||||||
|
command: bundle exec rake
|
||||||
|
- ruby-version: 3.2.8
|
||||||
|
command: bundle exec rake
|
||||||
|
- ruby-version: 3.1.7
|
||||||
|
command: bundle exec rake
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: ${{ matrix.ruby-version }}
|
||||||
|
- name: Install dependencies
|
||||||
|
run: bundle install --jobs 4 --retry 3
|
||||||
|
- name: Run command
|
||||||
|
env:
|
||||||
|
DANGER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: ${{ matrix.command }}
|
||||||
|
|
@ -4,6 +4,10 @@ AllCops:
|
||||||
Exclude:
|
Exclude:
|
||||||
- Guardfile
|
- Guardfile
|
||||||
- grape-active_model_serializers.gemspec
|
- grape-active_model_serializers.gemspec
|
||||||
|
NewCops: enable
|
||||||
|
|
||||||
Style/BlockDelimiters:
|
Style/BlockDelimiters:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
|
Style/FrozenStringLiteralComment:
|
||||||
|
Enabled: false
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ Bundler/DuplicatedGem:
|
||||||
|
|
||||||
# Offense count: 1
|
# Offense count: 1
|
||||||
Metrics/AbcSize:
|
Metrics/AbcSize:
|
||||||
Max: 17
|
Max: 18
|
||||||
|
|
||||||
# Offense count: 23
|
# Offense count: 23
|
||||||
# Configuration parameters: CountComments, ExcludedMethods.
|
# Configuration parameters: CountComments, ExcludedMethods.
|
||||||
|
|
@ -63,5 +63,9 @@ Style/GuardClause:
|
||||||
# Offense count: 2
|
# Offense count: 2
|
||||||
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
||||||
# URISchemes: http, https
|
# URISchemes: http, https
|
||||||
Metrics/LineLength:
|
Layout/LineLength:
|
||||||
Max: 87
|
Max: 87
|
||||||
|
|
||||||
|
Lint/ConstantDefinitionInBlock:
|
||||||
|
Exclude:
|
||||||
|
- spec/integration/sequel_spec.rb
|
||||||
|
|
|
||||||
39
.travis.yml
39
.travis.yml
|
|
@ -1,39 +0,0 @@
|
||||||
language: ruby
|
|
||||||
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- rvm: 2.5.0
|
|
||||||
script:
|
|
||||||
- bundle exec danger
|
|
||||||
- rvm: 2.5.0
|
|
||||||
env: GRAPE_VERSION=0.8.0
|
|
||||||
- rvm: 2.5.0
|
|
||||||
env: GRAPE_VERSION=0.9.0
|
|
||||||
- rvm: 2.5.0
|
|
||||||
env: GRAPE_VERSION=0.10.1
|
|
||||||
- rvm: 2.5.0
|
|
||||||
env: GRAPE_VERSION=0.12.0
|
|
||||||
- rvm: 2.5.0
|
|
||||||
env: GRAPE_VERSION=0.13.0
|
|
||||||
- rvm: 2.5.0
|
|
||||||
env: GRAPE_VERSION=0.14.0
|
|
||||||
- rvm: 2.5.0
|
|
||||||
env: GRAPE_VERSION=0.15.0
|
|
||||||
- rvm: 2.5.0
|
|
||||||
env: GRAPE_VERSION=0.16.2
|
|
||||||
- rvm: 2.5.0
|
|
||||||
env: GRAPE_VERSION=HEAD
|
|
||||||
- rvm: 2.4.3
|
|
||||||
- rvm: 2.3.6
|
|
||||||
- rvm: 2.2.9
|
|
||||||
- rvm: rbx-2
|
|
||||||
- rvm: jruby-19mode
|
|
||||||
- rvm: ruby-head
|
|
||||||
- rvm: jruby-head
|
|
||||||
allow_failures:
|
|
||||||
- rvm: rbx-2
|
|
||||||
- rvm: jruby-19mode
|
|
||||||
- rvm: ruby-head
|
|
||||||
- rvm: jruby-head
|
|
||||||
22
CHANGELOG.md
22
CHANGELOG.md
|
|
@ -2,20 +2,22 @@
|
||||||
|
|
||||||
### 2.0.0 (Next)
|
### 2.0.0 (Next)
|
||||||
|
|
||||||
* [#96](https://github.com/ruby-grape/grape-active_model_serializers/pull/96): Add compatibility for Grape 2.3 — [@samsonjs](https://github.com/samsonjs)
|
* [#96](https://github.com/ruby-grape/grape-active_model_serializers/pull/96): Add compatibility for Grape 2.3 - [@samsonjs](https://github.com/samsonjs).
|
||||||
|
* [#98](https://github.com/ruby-grape/grape-active_model_serializers/pull/98): Out with Travis CI, in with GitHub Actions - [@samsonjs](https://github.com/samsonjs).
|
||||||
|
* Your contribution here.
|
||||||
|
|
||||||
### 1.5.2 (March 14, 2018)
|
### 1.5.2 (2018/03/14)
|
||||||
|
|
||||||
* [#76](https://github.com/ruby-grape/grape-active_model_serializers/pull/76): Add custom error formatter - [@xn](https://github.com/xn).
|
* [#76](https://github.com/ruby-grape/grape-active_model_serializers/pull/76): Add custom error formatter - [@xn](https://github.com/xn).
|
||||||
|
|
||||||
### 1.5.1 (April 25, 2017)
|
### 1.5.1 (2017/04/25)
|
||||||
|
|
||||||
* [#74](https://github.com/ruby-grape/grape-active_model_serializers/pull/74): Add support for Sequel - [@drn](https://github.com/drn).
|
* [#74](https://github.com/ruby-grape/grape-active_model_serializers/pull/74): Add support for Sequel - [@drn](https://github.com/drn).
|
||||||
* [#73](https://github.com/ruby-grape/grape-active_model_serializers/pull/73): Ensure all AMS options are passed through - [@drn](https://github.com/drn).
|
* [#73](https://github.com/ruby-grape/grape-active_model_serializers/pull/73): Ensure all AMS options are passed through - [@drn](https://github.com/drn).
|
||||||
* [#65](https://github.com/ruby-grape/grape-active_model_serializers/pull/65): Added Danger, PR linter - [@dblock](https://github.com/dblock).
|
* [#65](https://github.com/ruby-grape/grape-active_model_serializers/pull/65): Added Danger, PR linter - [@dblock](https://github.com/dblock).
|
||||||
* [#63](https://github.com/ruby-grape/grape-active_model_serializers/pull/63): Pass adapter options through render - [@drn](https://github.com/drn).
|
* [#63](https://github.com/ruby-grape/grape-active_model_serializers/pull/63): Pass adapter options through render - [@drn](https://github.com/drn).
|
||||||
|
|
||||||
### 1.5.0 (August 24, 2016)
|
### 1.5.0 (2016/08/24)
|
||||||
|
|
||||||
* [#61](https://github.com/ruby-grape/grape-active_model_serializers/pull/61): Adds support for collection serializers - [@drn](https://github.com/drn).
|
* [#61](https://github.com/ruby-grape/grape-active_model_serializers/pull/61): Adds support for collection serializers - [@drn](https://github.com/drn).
|
||||||
* [#60](https://github.com/ruby-grape/grape-active_model_serializers/pull/60): Namespace serializer inference - [@drn](https://github.com/drn).
|
* [#60](https://github.com/ruby-grape/grape-active_model_serializers/pull/60): Namespace serializer inference - [@drn](https://github.com/drn).
|
||||||
|
|
@ -23,22 +25,22 @@
|
||||||
* [#57](https://github.com/ruby-grape/grape-active_model_serializers/pull/57): Solve line length linter issues - [@drn](https://github.com/drn).
|
* [#57](https://github.com/ruby-grape/grape-active_model_serializers/pull/57): Solve line length linter issues - [@drn](https://github.com/drn).
|
||||||
* [#54](https://github.com/ruby-grape/grape-active_model_serializers/pull/54): Adding support for ASM v0.10. Drops support for ASM v0.9 - [@drn](https://github.com/drn).
|
* [#54](https://github.com/ruby-grape/grape-active_model_serializers/pull/54): Adding support for ASM v0.10. Drops support for ASM v0.9 - [@drn](https://github.com/drn).
|
||||||
|
|
||||||
### 1.4.0 (July 14, 2016)
|
### 1.4.0 (2016/07/14)
|
||||||
|
|
||||||
* [#49](https://github.com/ruby-grape/grape-active_model_serializers/pull/49): Adds support for active model serializer namespace - [@syntaxTerr0r](https://github.com/syntaxTerr0r).
|
* [#49](https://github.com/ruby-grape/grape-active_model_serializers/pull/49): Adds support for active model serializer namespace - [@syntaxTerr0r](https://github.com/syntaxTerr0r).
|
||||||
* [#36](https://github.com/ruby-grape/grape-active_model_serializers/pull/36), [#50](https://github.com/jrhe/grape-active_model_serializers/pull/50): Added support through Grape 0.16.x - [@dblock](https://github.com/dblock).
|
* [#36](https://github.com/ruby-grape/grape-active_model_serializers/pull/36), [#50](https://github.com/jrhe/grape-active_model_serializers/pull/50): Added support through Grape 0.16.x - [@dblock](https://github.com/dblock).
|
||||||
|
|
||||||
### v1.3.2 (February 27, 2015)
|
### 1.3.2 (2015/02/27)
|
||||||
|
|
||||||
* [#40](https://github.com/ruby-grape/grape-active_model_serializers/pull/40): Use env to pass AMS meta around - [@dblock](https://github.com/dblock).
|
* [#40](https://github.com/ruby-grape/grape-active_model_serializers/pull/40): Use env to pass AMS meta around - [@dblock](https://github.com/dblock).
|
||||||
* [#39](https://github.com/ruby-grape/grape-active_model_serializers/pull/39): Look for namespace and other options to configure serializers - [@jwkoelewijn](https://github.com/jwkoelewijn).
|
* [#39](https://github.com/ruby-grape/grape-active_model_serializers/pull/39): Look for namespace and other options to configure serializers - [@jwkoelewijn](https://github.com/jwkoelewijn).
|
||||||
|
|
||||||
### v1.3.1 (November 20, 2014)
|
### 1.3.1 (2014/11/20)
|
||||||
|
|
||||||
* [#30](https://github.com/ruby-grape/grape-active_model_serializers/pull/30): Read options from default_serializer_options - [@siong1987](https://github.com/siong1987).
|
* [#30](https://github.com/ruby-grape/grape-active_model_serializers/pull/30): Read options from default_serializer_options - [@siong1987](https://github.com/siong1987).
|
||||||
* [#24](https://github.com/ruby-grape/grape-active_model_serializers/pull/24): Makes it possible to use `current_user` within serializers - [@sonxurxo](https://github.com/sonxurxo).
|
* [#24](https://github.com/ruby-grape/grape-active_model_serializers/pull/24): Makes it possible to use `current_user` within serializers - [@sonxurxo](https://github.com/sonxurxo).
|
||||||
|
|
||||||
### v1.2.1 (July 23, 2014)
|
### 1.2.1 (2014/07/23)
|
||||||
|
|
||||||
* [#21](https://github.com/ruby-grape/grape-active_model_serializers/pull/21): Correctly fetch serialization scope - [@radanskoric](https://github.com/radanskoric).
|
* [#21](https://github.com/ruby-grape/grape-active_model_serializers/pull/21): Correctly fetch serialization scope - [@radanskoric](https://github.com/radanskoric).
|
||||||
* [#18](https://github.com/ruby-grape/grape-active_model_serializers/pull/18): Added support for active model serializer 0.9.x - [@sbounmy](https://github.com/sbounmy).
|
* [#18](https://github.com/ruby-grape/grape-active_model_serializers/pull/18): Added support for active model serializer 0.9.x - [@sbounmy](https://github.com/sbounmy).
|
||||||
|
|
@ -48,12 +50,12 @@
|
||||||
* [#12](https://github.com/ruby-grape/grape-active_model_serializers/pull/12): Added support for `current_user` - [@kpassapk](https://github.com/kpassapk).
|
* [#12](https://github.com/ruby-grape/grape-active_model_serializers/pull/12): Added support for `current_user` - [@kpassapk](https://github.com/kpassapk).
|
||||||
* [#11](https://github.com/ruby-grape/grape-active_model_serializers/pull/11): Fixed require path - [@schickling](https://github.com/schickling).
|
* [#11](https://github.com/ruby-grape/grape-active_model_serializers/pull/11): Fixed require path - [@schickling](https://github.com/schickling).
|
||||||
|
|
||||||
### v1.0.1 (September 9, 2013)
|
### 1.0.1 (2013/09/09)
|
||||||
|
|
||||||
* [#6](https://github.com/ruby-grape/grape-active_model_serializers/pull/6): Conform to ActiveModel::Serializers way of determining array-ness - [@tfe](https://github.com/tfe).
|
* [#6](https://github.com/ruby-grape/grape-active_model_serializers/pull/6): Conform to ActiveModel::Serializers way of determining array-ness - [@tfe](https://github.com/tfe).
|
||||||
* [#4](https://github.com/ruby-grape/grape-active_model_serializers/pull/4): Support for namespace options and rely more on active_model_serializers - [@johnallen3d](https://github.com/johnallen3d).
|
* [#4](https://github.com/ruby-grape/grape-active_model_serializers/pull/4): Support for namespace options and rely more on active_model_serializers - [@johnallen3d](https://github.com/johnallen3d).
|
||||||
* [#1](https://github.com/ruby-grape/grape-active_model_serializers/pull/1): Fix: Grape::ActiveModelSerializers for models with compound names - [@george](https://github.com/george).
|
* [#1](https://github.com/ruby-grape/grape-active_model_serializers/pull/1): Fix: Grape::ActiveModelSerializers for models with compound names - [@george](https://github.com/george).
|
||||||
|
|
||||||
### v1.0.0
|
### 1.0.0 (2013/09/09)
|
||||||
|
|
||||||
* Initial public release - [@jrhe](https://github.com/jrhe).
|
* Initial public release - [@jrhe](https://github.com/jrhe).
|
||||||
|
|
|
||||||
6
Gemfile
6
Gemfile
|
|
@ -11,15 +11,15 @@ end
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
gem 'rack-test'
|
gem 'rack-test'
|
||||||
gem 'ruby-grape-danger', '~> 0.1.0', require: false
|
gem 'ruby-grape-danger', '~> 0.2.0', require: false
|
||||||
gem 'sequel', '~> 5.91', require: false
|
gem 'sequel', '~> 5.91', require: false
|
||||||
gem 'sqlite3'
|
gem 'sqlite3'
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development, :test do
|
group :development, :test do
|
||||||
gem 'guard-rspec'
|
gem 'guard-rspec'
|
||||||
gem 'listen', '~> 3.0.7'
|
gem 'listen', '~> 3.9.0'
|
||||||
gem 'rake'
|
gem 'rake'
|
||||||
gem 'rspec'
|
gem 'rspec'
|
||||||
gem 'rubocop', '0.53.0'
|
gem 'rubocop', '1.75.7'
|
||||||
end
|
end
|
||||||
|
|
|
||||||
24
README.md
24
README.md
|
|
@ -1,3 +1,23 @@
|
||||||
|
# Table of Contents
|
||||||
|
|
||||||
|
- [Grape::ActiveModelSerializers](#grapeactivemodelserializers)
|
||||||
|
- [Installation](#installation)
|
||||||
|
- [Dependencies](#dependencies)
|
||||||
|
- [Usage](#usage)
|
||||||
|
- [Require grape-active_model_serializers](#require-grape-active_model_serializers)
|
||||||
|
- [Tell your API to use Grape::Formatter::ActiveModelSerializers](#tell-your-api-to-use-grapeformatteractivemodelserializers)
|
||||||
|
- [Writing Serializers](#writing-serializers)
|
||||||
|
- [Serializers are inferred by active_record model names](#serializers-are-inferred-by-active_record-model-names)
|
||||||
|
- [Array Roots](#array-roots)
|
||||||
|
- [API Versioning](#api-versioning)
|
||||||
|
- [Manually specifying serializer / adapter options](#manually-specifying-serializer--adapter-options)
|
||||||
|
- [Custom Metadata](#custom-metadata)
|
||||||
|
- [Default Serializer Options](#default-serializer-options)
|
||||||
|
- [Current User](#current-user)
|
||||||
|
- [Full Example](#full-example)
|
||||||
|
- [Contributing](#contributing)
|
||||||
|
- [History](#history)
|
||||||
|
|
||||||
# Grape::ActiveModelSerializers
|
# Grape::ActiveModelSerializers
|
||||||
|
|
||||||
Use [active_model_serializers](https://github.com/rails-api/active_model_serializers) with [Grape](https://github.com/intridea/grape)!
|
Use [active_model_serializers](https://github.com/rails-api/active_model_serializers) with [Grape](https://github.com/intridea/grape)!
|
||||||
|
|
@ -17,8 +37,8 @@ See [UPGRADING](UPGRADING.md) if you're upgrading from a previous version.
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
* >= Ruby v2.2
|
* >= Ruby v3.1
|
||||||
* >= [grape](https://github.com/ruby-grape/grape) v0.8.0
|
* >= [grape](https://github.com/ruby-grape/grape) v2.3.0
|
||||||
* >= [active_model_serializers](https://github.com/rails-api/active_model_serializers) v0.10.0
|
* >= [active_model_serializers](https://github.com/rails-api/active_model_serializers) v0.10.0
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
|
||||||
1
Rakefile
1
Rakefile
|
|
@ -1,4 +1,5 @@
|
||||||
#!/usr/bin/env rake
|
#!/usr/bin/env rake
|
||||||
|
|
||||||
require 'bundler/gem_tasks'
|
require 'bundler/gem_tasks'
|
||||||
|
|
||||||
require 'rspec/core'
|
require 'rspec/core'
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ module Grape
|
||||||
def serialization_scope
|
def serialization_scope
|
||||||
return unless _serialization_scope
|
return unless _serialization_scope
|
||||||
return unless respond_to?(_serialization_scope, true)
|
return unless respond_to?(_serialization_scope, true)
|
||||||
|
|
||||||
send(_serialization_scope)
|
send(_serialization_scope)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -55,5 +56,5 @@ module Grape
|
||||||
def url_options; end
|
def url_options; end
|
||||||
end
|
end
|
||||||
|
|
||||||
Endpoint.send(:include, EndpointExtension)
|
Endpoint.include EndpointExtension
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,7 @@ module Grape
|
||||||
def extra_options
|
def extra_options
|
||||||
options = env['ams_extra'] || {}
|
options = env['ams_extra'] || {}
|
||||||
return options if options.is_a?(Hash)
|
return options if options.is_a?(Hash)
|
||||||
|
|
||||||
raise 'Extra options must be a hash'
|
raise 'Extra options must be a hash'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ module Grape
|
||||||
end
|
end
|
||||||
|
|
||||||
def serializer
|
def serializer
|
||||||
serializer_class.new(resource, serializer_options) if serializer_class
|
serializer_class&.new(resource, serializer_options)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
@ -16,6 +16,7 @@ module Grape
|
||||||
|
|
||||||
def serializer_class
|
def serializer_class
|
||||||
return @serializer_class if defined?(@serializer_class)
|
return @serializer_class if defined?(@serializer_class)
|
||||||
|
|
||||||
@serializer_class = resource_defined_class
|
@serializer_class = resource_defined_class
|
||||||
@serializer_class ||= collection_class
|
@serializer_class ||= collection_class
|
||||||
@serializer_class ||= options[:serializer]
|
@serializer_class ||= options[:serializer]
|
||||||
|
|
@ -55,12 +56,14 @@ module Grape
|
||||||
|
|
||||||
def namespace_inferred_class
|
def namespace_inferred_class
|
||||||
return nil unless options.key?(:for)
|
return nil unless options.key?(:for)
|
||||||
|
|
||||||
namespace = options[:for].to_s.deconstantize
|
namespace = options[:for].to_s.deconstantize
|
||||||
"#{namespace}::#{resource_serializer_klass}".safe_constantize
|
"#{namespace}::#{resource_serializer_klass}".safe_constantize
|
||||||
end
|
end
|
||||||
|
|
||||||
def version_inferred_class
|
def version_inferred_class
|
||||||
return nil unless options.key?(:version)
|
return nil unless options.key?(:version)
|
||||||
|
|
||||||
"#{version}::#{resource_serializer_klass}".safe_constantize
|
"#{version}::#{resource_serializer_klass}".safe_constantize
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ describe 'Grape::EndpointExtension' do
|
||||||
subject do
|
subject do
|
||||||
Grape::Endpoint.new(
|
Grape::Endpoint.new(
|
||||||
Grape::Util::InheritableSetting.new,
|
Grape::Util::InheritableSetting.new,
|
||||||
path: '/',
|
path: '/',
|
||||||
method: 'foo'
|
method: 'foo'
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
@ -27,7 +27,7 @@ describe 'Grape::EndpointExtension' do
|
||||||
|
|
||||||
describe '#render' do
|
describe '#render' do
|
||||||
let(:env) { {} }
|
let(:env) { {} }
|
||||||
let(:env_key) {}
|
let(:env_key) { nil }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
allow(subject).to receive(:env).and_return(env)
|
allow(subject).to receive(:env).and_return(env)
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ describe Grape::Formatter::ActiveModelSerializers do
|
||||||
{
|
{
|
||||||
user: {
|
user: {
|
||||||
first_name: 'JR',
|
first_name: 'JR',
|
||||||
last_name: 'HE',
|
last_name: 'HE',
|
||||||
email: 'jrhe@github.com'
|
email: 'jrhe@github.com'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
require 'spec_helper'
|
|
||||||
|
|
||||||
describe 'grape-active_model_serializers' do
|
|
||||||
end
|
|
||||||
|
|
@ -12,7 +12,7 @@ describe Grape::ActiveModelSerializers::OptionsBuilder do
|
||||||
let(:env) { super().merge('ams_meta' => meta_options) }
|
let(:env) { super().merge('ams_meta' => meta_options) }
|
||||||
let(:meta_options) {
|
let(:meta_options) {
|
||||||
{
|
{
|
||||||
meta: meta,
|
meta: meta,
|
||||||
meta_key: meta_key
|
meta_key: meta_key
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,8 +15,8 @@ describe Grape::ActiveModelSerializers::SerializerResolver do
|
||||||
let(:options) {
|
let(:options) {
|
||||||
{
|
{
|
||||||
serializer: options_serializer_class, # options defined
|
serializer: options_serializer_class, # options defined
|
||||||
for: V4::UsersApi, # namespace inference
|
for: V4::UsersApi, # namespace inference
|
||||||
version: 'v5' # version inference
|
version: 'v5' # version inference
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# resource defined
|
# resource defined
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,8 @@ describe Grape::ActiveModelSerializers do
|
||||||
app.get('/home') do
|
app.get('/home') do
|
||||||
User.new(
|
User.new(
|
||||||
first_name: 'JR',
|
first_name: 'JR',
|
||||||
last_name: 'HE',
|
last_name: 'HE',
|
||||||
email: 'contact@jrhe.co.uk'
|
email: 'contact@jrhe.co.uk'
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -60,17 +60,17 @@ describe Grape::ActiveModelSerializers do
|
||||||
app.get('/users') do
|
app.get('/users') do
|
||||||
user = User.new(
|
user = User.new(
|
||||||
first_name: 'JR',
|
first_name: 'JR',
|
||||||
last_name: 'HE',
|
last_name: 'HE',
|
||||||
email: 'contact@jrhe.co.uk'
|
email: 'contact@jrhe.co.uk'
|
||||||
)
|
)
|
||||||
[user, user]
|
[user, user]
|
||||||
end
|
end
|
||||||
|
|
||||||
get '/users'
|
get '/users'
|
||||||
expect(subject).to eq(
|
expect(subject).to eq(
|
||||||
'{"users":['\
|
'{"users":[' \
|
||||||
'{"first_name":"JR","last_name":"HE"},'\
|
'{"first_name":"JR","last_name":"HE"},' \
|
||||||
'{"first_name":"JR","last_name":"HE"}'\
|
'{"first_name":"JR","last_name":"HE"}' \
|
||||||
']}'
|
']}'
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
@ -83,8 +83,8 @@ describe Grape::ActiveModelSerializers do
|
||||||
|
|
||||||
get '/home'
|
get '/home'
|
||||||
expect(subject).to eq(
|
expect(subject).to eq(
|
||||||
'{"blog_post":'\
|
'{"blog_post":' \
|
||||||
'{"title":"Grape AM::S Rocks!","body":"Really, it does."}'\
|
'{"title":"Grape AM::S Rocks!","body":"Really, it does."}' \
|
||||||
'}'
|
'}'
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
@ -93,16 +93,16 @@ describe Grape::ActiveModelSerializers do
|
||||||
app.get('/blog_posts') do
|
app.get('/blog_posts') do
|
||||||
blog_post = BlogPost.new(
|
blog_post = BlogPost.new(
|
||||||
title: 'Grape AM::S Rocks!',
|
title: 'Grape AM::S Rocks!',
|
||||||
body: 'Really, it does.'
|
body: 'Really, it does.'
|
||||||
)
|
)
|
||||||
[blog_post, blog_post]
|
[blog_post, blog_post]
|
||||||
end
|
end
|
||||||
|
|
||||||
get '/blog_posts'
|
get '/blog_posts'
|
||||||
expect(subject).to eq(
|
expect(subject).to eq(
|
||||||
'{"blog_posts":['\
|
'{"blog_posts":[' \
|
||||||
'{"title":"Grape AM::S Rocks!","body":"Really, it does."},'\
|
'{"title":"Grape AM::S Rocks!","body":"Really, it does."},' \
|
||||||
'{"title":"Grape AM::S Rocks!","body":"Really, it does."}'\
|
'{"title":"Grape AM::S Rocks!","body":"Really, it does."}' \
|
||||||
']}'
|
']}'
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
@ -132,9 +132,9 @@ describe Grape::ActiveModelSerializers do
|
||||||
|
|
||||||
get '/admin/jeff'
|
get '/admin/jeff'
|
||||||
expect(subject).to eq(
|
expect(subject).to eq(
|
||||||
'{"admin":['\
|
'{"admin":[' \
|
||||||
'{"first_name":"Jeff","last_name":null},'\
|
'{"first_name":"Jeff","last_name":null},' \
|
||||||
'{"first_name":"Jeff","last_name":null}'\
|
'{"first_name":"Jeff","last_name":null}' \
|
||||||
']}'
|
']}'
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
@ -149,9 +149,9 @@ describe Grape::ActiveModelSerializers do
|
||||||
|
|
||||||
get '/people'
|
get '/people'
|
||||||
expect(subject).to eq(
|
expect(subject).to eq(
|
||||||
'{"people":['\
|
'{"people":[' \
|
||||||
'{"first_name":"Jeff","last_name":null},'\
|
'{"first_name":"Jeff","last_name":null},' \
|
||||||
'{"first_name":"Jeff","last_name":null}'\
|
'{"first_name":"Jeff","last_name":null}' \
|
||||||
']}'
|
']}'
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -15,4 +15,4 @@ RSpec.configure do |config|
|
||||||
config.include Rack::Test::Methods
|
config.include Rack::Test::Methods
|
||||||
end
|
end
|
||||||
|
|
||||||
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].sort.each { |f| require f }
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue