Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ end
version = ENV['RAILS_VERSION'] || 'default'
rails = case version
when 'master'
{:github => 'rails/rails'}
{ github: 'rails/rails' }
when 'default'
'>= 4.2'
'>= 4.2'
else
"~> #{version}"
end
Expand Down
4 changes: 2 additions & 2 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env rake
require "bundler/gem_tasks"
require "rake/testtask"
require 'bundler/gem_tasks'
require 'rake/testtask'
require './test/test_helper.rb'

TestApp.load_tasks
Expand Down
4 changes: 2 additions & 2 deletions jsonapi-resources.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
spec.version = JSONAPI::Resources::VERSION
spec.authors = ['Dan Gebhardt', 'Larry Gebhardt']
spec.email = ['dan@cerebris.com', 'larry@cerebris.com']
spec.summary = %q{Easily support JSON API in Rails.}
spec.description = %q{A resource-centric approach to implementing the controllers, routes, and serializers needed to support the JSON API spec.}
spec.summary = 'Easily support JSON API in Rails.'
spec.description = 'A resource-centric approach to implementing the controllers, routes, and serializers needed to support the JSON API spec.'
spec.homepage = 'https://github.com/cerebris/jsonapi-resources'
spec.license = 'MIT'

Expand Down
1 change: 0 additions & 1 deletion lib/jsonapi-resources.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,3 @@
require 'jsonapi/operation_result'
require 'jsonapi/operation_results'
require 'jsonapi/callbacks'

4 changes: 2 additions & 2 deletions lib/jsonapi/active_record_operations_processor.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
class ActiveRecordOperationsProcessor < JSONAPI::OperationsProcessor

private

def transaction
if @transactional
ActiveRecord::Base.transaction do
Expand All @@ -12,7 +12,7 @@ def transaction
end

def rollback
raise ActiveRecord::Rollback if @transactional
fail ActiveRecord::Rollback if @transactional
end

def process_operation(operation)
Expand Down
43 changes: 20 additions & 23 deletions lib/jsonapi/acts_as_resource_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ def create_operations_processor
end

private

def resource_klass
@resource_klass ||= resource_klass_name.safe_constantize
end
Expand All @@ -78,17 +79,15 @@ def resource_klass_name

def ensure_correct_media_type
unless request.content_type == JSONAPI::MEDIA_TYPE
raise JSONAPI::Exceptions::UnsupportedMediaTypeError.new(request.content_type)
fail JSONAPI::Exceptions::UnsupportedMediaTypeError.new(request.content_type)
end
rescue => e
handle_exceptions(e)
end

def setup_request
@request = JSONAPI::Request.new(params, {
context: context,
key_formatter: key_formatter
})
@request = JSONAPI::Request.new(params, context: context,
key_formatter: key_formatter)
render_errors(@request.errors) unless @request.errors.empty?
rescue => e
handle_exceptions(e)
Expand Down Expand Up @@ -128,7 +127,7 @@ def base_response_links
end

def render_errors(errors)
operation_results = JSONAPI::OperationResults.new()
operation_results = JSONAPI::OperationResults.new
result = JSONAPI::ErrorsOperationResult.new(errors[0].status, errors)
operation_results.add_result(result)

Expand All @@ -143,18 +142,16 @@ def render_results(operation_results)
def create_response_document(operation_results)
JSONAPI::ResponseDocument.new(
operation_results,
{
primary_resource_klass: resource_klass,
include_directives: @request ? @request.include_directives : nil,
fields: @request ? @request.fields : nil,
base_url: base_url,
key_formatter: key_formatter,
route_formatter: route_formatter,
base_meta: base_response_meta,
base_links: base_response_links,
resource_serializer_klass: resource_serializer_klass,
request: @request
}
primary_resource_klass: resource_klass,
include_directives: @request ? @request.include_directives : nil,
fields: @request ? @request.fields : nil,
base_url: base_url,
key_formatter: key_formatter,
route_formatter: route_formatter,
base_meta: base_response_meta,
base_links: base_response_links,
resource_serializer_klass: resource_serializer_klass,
request: @request
)
end

Expand All @@ -169,11 +166,11 @@ def process_request_operations
# Note: Be sure to either call super(e) or handle JSONAPI::Exceptions::Error and raise unhandled exceptions
def handle_exceptions(e)
case e
when JSONAPI::Exceptions::Error
render_errors(e.errors)
else # raise all other exceptions
# :nocov:
raise e
when JSONAPI::Exceptions::Error
render_errors(e.errors)
else # raise all other exceptions
# :nocov:
fail e
# :nocov:
end
end
Expand Down
10 changes: 5 additions & 5 deletions lib/jsonapi/association.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ module JSONAPI
class Association
attr_reader :acts_as_set, :foreign_key, :type, :options, :name, :class_name

def initialize(name, options={})
def initialize(name, options = {})
@name = name.to_s
@options = options
@acts_as_set = options.fetch(:acts_as_set, false) == true
@foreign_key = options[:foreign_key ] ? options[:foreign_key ].to_sym : nil
@foreign_key = options[:foreign_key] ? options[:foreign_key].to_sym : nil
@module_path = options[:module_path] || ''
end

Expand All @@ -15,7 +15,7 @@ def primary_key
end

class HasOne < Association
def initialize(name, options={})
def initialize(name, options = {})
super
@class_name = options.fetch(:class_name, name.to_s.capitalize)
@type = class_name.underscore.pluralize.to_sym
Expand All @@ -24,11 +24,11 @@ def initialize(name, options={})
end

class HasMany < Association
def initialize(name, options={})
def initialize(name, options = {})
super
@class_name = options.fetch(:class_name, name.to_s.capitalize.singularize)
@type = class_name.underscore.pluralize.to_sym
@foreign_key ||= "#{name.to_s.singularize}_ids".to_sym
@foreign_key ||= "#{name.to_s.singularize}_ids".to_sym
end
end
end
Expand Down
3 changes: 1 addition & 2 deletions lib/jsonapi/callbacks.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

module JSONAPI
module Callbacks

def self.included(base)
base.class_eval do
include ActiveSupport::Callbacks
Expand Down Expand Up @@ -49,4 +48,4 @@ def _define_after_callback(klass, callback) #:nodoc:
end
end
end
end
end
32 changes: 8 additions & 24 deletions lib/jsonapi/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -62,37 +62,21 @@ def operations_processor=(operations_processor)
@operations_processor = JSONAPI::OperationsProcessor.operations_processor_for(@operations_processor_name)
end

def allowed_request_params=(allowed_request_params)
@allowed_request_params = allowed_request_params
end
attr_writer :allowed_request_params

def default_paginator=(default_paginator)
@default_paginator = default_paginator
end
attr_writer :default_paginator

def default_page_size=(default_page_size)
@default_page_size = default_page_size
end
attr_writer :default_page_size

def maximum_page_size=(maximum_page_size)
@maximum_page_size = maximum_page_size
end
attr_writer :maximum_page_size

def use_text_errors=(use_text_errors)
@use_text_errors = use_text_errors
end
attr_writer :use_text_errors

def top_level_links_include_pagination=(top_level_links_include_pagination)
@top_level_links_include_pagination = top_level_links_include_pagination
end
attr_writer :top_level_links_include_pagination

def top_level_meta_include_record_count=(top_level_meta_include_record_count)
@top_level_meta_include_record_count = top_level_meta_include_record_count
end
attr_writer :top_level_meta_include_record_count

def top_level_meta_record_count_key=(top_level_meta_record_count_key)
@top_level_meta_record_count_key = top_level_meta_record_count_key
end
attr_writer :top_level_meta_record_count_key
end

class << self
Expand Down
3 changes: 1 addition & 2 deletions lib/jsonapi/error.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
module JSONAPI
class Error

attr_accessor :title, :detail, :id, :href, :code, :path, :links, :status

def initialize(options={})
def initialize(options = {})
@title = options[:title]
@detail = options[:detail]
@id = options[:id]
Expand Down
Loading