shamu 0.0.11 → 0.0.13

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 202b665e0d910a1c418ca7a5ea4bb35d441c16c7
4
- data.tar.gz: 8089bef31c11ba75389f8c6b417b2b8f1c34e9dd
3
+ metadata.gz: b2e88c67ffd19033c4fafc5933fb288f8538a709
4
+ data.tar.gz: daaf1a9d1f8dcd9746f335ef0fa6122aa7c9dfa0
5
5
  SHA512:
6
- metadata.gz: ab5be942fca9ff72725316a71a84761a28a954c3cb4445073eb94126556569ada8747795c5788811349740e828d83dfabf516fd1b9851c0ac296b993e95c5075
7
- data.tar.gz: cce3f9ff5242932c85e3dfc92977ff0a4469439a865213aeb264ee67cde98f3731aeea157651dbbc60fd18c12acff8d938e1eed42b9b2e35750cb00ba7e00496
6
+ metadata.gz: 74934132c1023791f4fff72aa458ae8815c72138044bc33b0de60a39d71802e7c976f8409b675a7bb67644d377576370ed3e88a79c21bce48a6b8fbca698c7b3
7
+ data.tar.gz: '00095f967a07a2517a92721450ab45b2ee991d43f526fcde7b9bb853ea8f98dd4dd014f000d8ff46247e83be0cd62cb93513491df24b79f1a73be1c1f293b3e0'
data/.gitignore CHANGED
@@ -3,7 +3,6 @@
3
3
  .bundle
4
4
  .config
5
5
  .yardoc
6
- Gemfile.lock
7
6
  InstalledFiles
8
7
  _yardoc
9
8
  coverage
@@ -22,4 +21,4 @@ tmp
22
21
  mkmf.log
23
22
  .env
24
23
  *.sqlite
25
- test.db
24
+ test.db
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.2
2
+ TargetRubyVersion: 2.3
3
3
 
4
4
 
5
5
  Lint/AmbiguousRegexpLiteral:
@@ -51,6 +51,9 @@ Style/EmptyLinesAroundClassBody:
51
51
  Style/EmptyLinesAroundModuleBody:
52
52
  Enabled: false
53
53
 
54
+ Style/FrozenStringLiteralComment:
55
+ Enabled: false
56
+
54
57
  Style/DoubleNegation:
55
58
  Enabled: false
56
59
 
@@ -124,4 +127,4 @@ Style/CaseEquality:
124
127
  Enabled: false
125
128
 
126
129
  Style/WordArray:
127
- Enabled: false
130
+ Enabled: false
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ source "https://rubygems.org"
3
3
  # Specify your gem"s dependencies in shamu.gemspec
4
4
  gemspec
5
5
 
6
- gem 'rake'
6
+ gem "rake"
7
7
 
8
8
  group :test do
9
9
  gem "activerecord", "~> 5.0"
@@ -26,7 +26,7 @@ group :test do
26
26
  gem "fuubar"
27
27
  gem "yard"
28
28
  gem "yard-activesupport-concern"
29
- gem "simplecov", github: "colszowka/simplecov"
29
+ gem "simplecov"
30
30
  gem "ruby_gntp", "~> 0.3.4"
31
31
  gem "awesome_print"
32
32
 
data/Gemfile.lock ADDED
@@ -0,0 +1,271 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ shamu (0.0.13)
5
+ activemodel (>= 5.0)
6
+ activesupport (>= 5.0)
7
+ crc32 (~> 1)
8
+ listen (~> 3)
9
+ loofah (~> 2)
10
+ multi_json (~> 1.11.2)
11
+ rack (>= 1)
12
+ scorpion-ioc (~> 0.6)
13
+
14
+ GEM
15
+ remote: https://rubygems.org/
16
+ specs:
17
+ actioncable (5.0.3)
18
+ actionpack (= 5.0.3)
19
+ nio4r (>= 1.2, < 3.0)
20
+ websocket-driver (~> 0.6.1)
21
+ actionmailer (5.0.3)
22
+ actionpack (= 5.0.3)
23
+ actionview (= 5.0.3)
24
+ activejob (= 5.0.3)
25
+ mail (~> 2.5, >= 2.5.4)
26
+ rails-dom-testing (~> 2.0)
27
+ actionpack (5.0.3)
28
+ actionview (= 5.0.3)
29
+ activesupport (= 5.0.3)
30
+ rack (~> 2.0)
31
+ rack-test (~> 0.6.3)
32
+ rails-dom-testing (~> 2.0)
33
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
34
+ actionview (5.0.3)
35
+ activesupport (= 5.0.3)
36
+ builder (~> 3.1)
37
+ erubis (~> 2.7.0)
38
+ rails-dom-testing (~> 2.0)
39
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
40
+ activejob (5.0.3)
41
+ activesupport (= 5.0.3)
42
+ globalid (>= 0.3.6)
43
+ activemodel (5.0.3)
44
+ activesupport (= 5.0.3)
45
+ activerecord (5.0.3)
46
+ activemodel (= 5.0.3)
47
+ activesupport (= 5.0.3)
48
+ arel (~> 7.0)
49
+ activesupport (5.0.3)
50
+ concurrent-ruby (~> 1.0, >= 1.0.2)
51
+ i18n (~> 0.7)
52
+ minitest (~> 5.1)
53
+ tzinfo (~> 1.1)
54
+ arel (7.1.4)
55
+ ast (2.3.0)
56
+ awesome_print (1.7.0)
57
+ builder (3.2.3)
58
+ byebug (9.0.6)
59
+ codeclimate-test-reporter (1.0.8)
60
+ simplecov (<= 0.13)
61
+ coderay (1.1.1)
62
+ combustion (0.6.0)
63
+ activesupport (>= 3.0.0)
64
+ railties (>= 3.0.0)
65
+ thor (>= 0.14.6)
66
+ concurrent-ruby (1.0.5)
67
+ crc32 (1.0.1)
68
+ diff-lcs (1.3)
69
+ docile (1.1.5)
70
+ erubis (2.7.0)
71
+ ffi (1.9.18)
72
+ formatador (0.2.5)
73
+ fuubar (2.2.0)
74
+ rspec-core (~> 3.0)
75
+ ruby-progressbar (~> 1.4)
76
+ globalid (0.4.0)
77
+ activesupport (>= 4.2.0)
78
+ guard (2.12.9)
79
+ formatador (>= 0.2.4)
80
+ listen (>= 2.7, <= 4.0)
81
+ lumberjack (~> 1.0)
82
+ nenv (~> 0.1)
83
+ notiffany (~> 0.0)
84
+ pry (>= 0.9.12)
85
+ shellany (~> 0.0)
86
+ thor (>= 0.18.1)
87
+ guard-compat (1.2.1)
88
+ guard-rspec (4.7.3)
89
+ guard (~> 2.1)
90
+ guard-compat (~> 1.1)
91
+ rspec (>= 2.99.0, < 4.0)
92
+ guard-rubocop (1.2.0)
93
+ guard (~> 2.0)
94
+ rubocop (~> 0.20)
95
+ i18n (0.8.1)
96
+ json (2.1.0)
97
+ kaminari (0.16.3)
98
+ actionpack (>= 3.0.0)
99
+ activesupport (>= 3.0.0)
100
+ listen (3.1.5)
101
+ rb-fsevent (~> 0.9, >= 0.9.4)
102
+ rb-inotify (~> 0.9, >= 0.9.7)
103
+ ruby_dep (~> 1.2)
104
+ loofah (2.0.3)
105
+ nokogiri (>= 1.5.9)
106
+ lumberjack (1.0.12)
107
+ mail (2.6.5)
108
+ mime-types (>= 1.16, < 4)
109
+ method_source (0.8.2)
110
+ mime-types (3.1)
111
+ mime-types-data (~> 3.2015)
112
+ mime-types-data (3.2016.0521)
113
+ mini_portile2 (2.1.0)
114
+ minitest (5.10.2)
115
+ multi_json (1.11.3)
116
+ nenv (0.3.0)
117
+ nio4r (2.0.0)
118
+ nokogiri (1.7.2)
119
+ mini_portile2 (~> 2.1.0)
120
+ notiffany (0.1.1)
121
+ nenv (~> 0.1)
122
+ shellany (~> 0.0)
123
+ parser (2.4.0.0)
124
+ ast (~> 2.2)
125
+ powerpack (0.1.1)
126
+ pry (0.10.4)
127
+ coderay (~> 1.1.0)
128
+ method_source (~> 0.8.1)
129
+ slop (~> 3.4)
130
+ pry-byebug (3.4.2)
131
+ byebug (~> 9.0)
132
+ pry (~> 0.10)
133
+ rack (2.0.3)
134
+ rack-test (0.6.3)
135
+ rack (>= 1.0)
136
+ rails (5.0.3)
137
+ actioncable (= 5.0.3)
138
+ actionmailer (= 5.0.3)
139
+ actionpack (= 5.0.3)
140
+ actionview (= 5.0.3)
141
+ activejob (= 5.0.3)
142
+ activemodel (= 5.0.3)
143
+ activerecord (= 5.0.3)
144
+ activesupport (= 5.0.3)
145
+ bundler (>= 1.3.0, < 2.0)
146
+ railties (= 5.0.3)
147
+ sprockets-rails (>= 2.0.0)
148
+ rails-dom-testing (2.0.3)
149
+ activesupport (>= 4.2.0)
150
+ nokogiri (>= 1.6)
151
+ rails-html-sanitizer (1.0.3)
152
+ loofah (~> 2.0)
153
+ railties (5.0.3)
154
+ actionpack (= 5.0.3)
155
+ activesupport (= 5.0.3)
156
+ method_source
157
+ rake (>= 0.8.7)
158
+ thor (>= 0.18.1, < 2.0)
159
+ rainbow (2.2.2)
160
+ rake
161
+ rake (12.0.0)
162
+ rb-fsevent (0.9.8)
163
+ rb-inotify (0.9.8)
164
+ ffi (>= 0.5.0)
165
+ responders (2.1.2)
166
+ railties (>= 4.2.0, < 5.1)
167
+ rspec (3.6.0)
168
+ rspec-core (~> 3.6.0)
169
+ rspec-expectations (~> 3.6.0)
170
+ rspec-mocks (~> 3.6.0)
171
+ rspec-core (3.6.0)
172
+ rspec-support (~> 3.6.0)
173
+ rspec-expectations (3.6.0)
174
+ diff-lcs (>= 1.2.0, < 2.0)
175
+ rspec-support (~> 3.6.0)
176
+ rspec-its (1.2.0)
177
+ rspec-core (>= 3.0.0)
178
+ rspec-expectations (>= 3.0.0)
179
+ rspec-mocks (3.6.0)
180
+ diff-lcs (>= 1.2.0, < 2.0)
181
+ rspec-support (~> 3.6.0)
182
+ rspec-rails (3.6.0)
183
+ actionpack (>= 3.0)
184
+ activesupport (>= 3.0)
185
+ railties (>= 3.0)
186
+ rspec-core (~> 3.6.0)
187
+ rspec-expectations (~> 3.6.0)
188
+ rspec-mocks (~> 3.6.0)
189
+ rspec-support (~> 3.6.0)
190
+ rspec-support (3.6.0)
191
+ rspec-wait (0.0.9)
192
+ rspec (>= 3, < 4)
193
+ rspec_junit_formatter (0.2.3)
194
+ builder (< 4)
195
+ rspec-core (>= 2, < 4, != 2.12.0)
196
+ rubocop (0.39.0)
197
+ parser (>= 2.3.0.7, < 3.0)
198
+ powerpack (~> 0.1)
199
+ rainbow (>= 1.99.1, < 3.0)
200
+ ruby-progressbar (~> 1.7)
201
+ unicode-display_width (~> 1.0, >= 1.0.1)
202
+ ruby-progressbar (1.8.1)
203
+ ruby_dep (1.5.0)
204
+ ruby_gntp (0.3.4)
205
+ scorpion-ioc (0.6.0)
206
+ rails (>= 4.0)
207
+ shellany (0.0.1)
208
+ simplecov (0.13.0)
209
+ docile (~> 1.1.0)
210
+ json (>= 1.8, < 3)
211
+ simplecov-html (~> 0.10.0)
212
+ simplecov-html (0.10.1)
213
+ slop (3.6.0)
214
+ spring (2.0.1)
215
+ activesupport (>= 4.2)
216
+ sprockets (3.7.1)
217
+ concurrent-ruby (~> 1.0)
218
+ rack (> 1, < 3)
219
+ sprockets-rails (3.2.0)
220
+ actionpack (>= 4.0)
221
+ activesupport (>= 4.0)
222
+ sprockets (>= 3.0.0)
223
+ sqlite3 (1.3.13)
224
+ thor (0.19.4)
225
+ thread_safe (0.3.6)
226
+ tzinfo (1.2.3)
227
+ thread_safe (~> 0.1)
228
+ unicode-display_width (1.2.1)
229
+ websocket-driver (0.6.5)
230
+ websocket-extensions (>= 0.1.0)
231
+ websocket-extensions (0.1.2)
232
+ yard (0.9.9)
233
+ yard-activesupport-concern (0.0.1)
234
+ yard (>= 0.8)
235
+
236
+ PLATFORMS
237
+ ruby
238
+
239
+ DEPENDENCIES
240
+ actionpack (~> 5.0)
241
+ activerecord (~> 5.0)
242
+ awesome_print
243
+ bundler (~> 1.6)
244
+ byebug
245
+ codeclimate-test-reporter
246
+ combustion (~> 0.5)
247
+ fuubar
248
+ guard (~> 2.12.8)
249
+ guard-rspec
250
+ guard-rubocop
251
+ i18n (~> 0.7)
252
+ kaminari (~> 0.16.3)
253
+ pry-byebug
254
+ rake
255
+ responders (~> 2.1.2)
256
+ rspec (~> 3.00)
257
+ rspec-its
258
+ rspec-rails
259
+ rspec-wait
260
+ rspec_junit_formatter (~> 0.2.2)
261
+ rubocop (~> 0.39.0)
262
+ ruby_gntp (~> 0.3.4)
263
+ shamu!
264
+ simplecov
265
+ spring
266
+ sqlite3 (~> 1.3.11)
267
+ yard
268
+ yard-activesupport-concern
269
+
270
+ BUNDLED WITH
271
+ 1.14.6
data/bin/rake CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  require "pathname"
11
11
  ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
12
- Pathname.new(__FILE__).realpath)
12
+ Pathname.new(__FILE__).realpath)
13
13
 
14
14
  require "rubygems"
15
15
  require "bundler/setup"
data/bin/rspec CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  require "pathname"
11
11
  ENV["BUNDLE_GEMFILE"] = File.expand_path("../../Gemfile",
12
- Pathname.new(__FILE__).realpath)
12
+ Pathname.new(__FILE__).realpath)
13
13
 
14
14
  require "rubygems"
15
15
  require "bundler/setup"
data/circle.yml CHANGED
@@ -6,4 +6,7 @@ database:
6
6
  test:
7
7
  override:
8
8
  - RAILS_ENV=test bundle exec rspec -r rspec_junit_formatter --format RspecJunitFormatter -o $CIRCLE_TEST_REPORTS/rspec/junit.xml
9
- - bundle exec rubocop
9
+ - bundle exec rubocop
10
+
11
+ post:
12
+ - bundle exec codeclimate-test-reporter
@@ -35,7 +35,7 @@ module Shamu
35
35
  type = type.model_name.element if type.respond_to?( :model_name )
36
36
  type = type.name.demodulize.underscore if type.is_a?( Module )
37
37
 
38
- type
38
+ type.to_s
39
39
  end
40
40
 
41
41
  def require_identifier!
@@ -60,7 +60,7 @@ module Shamu
60
60
  def attribute_value( value )
61
61
  case value
62
62
  when Date, DateTime then
63
- value.to_date.to_time.iso8601
63
+ value.to_date.iso8601
64
64
  when Time, ActiveSupport::TimeWithZone then
65
65
  value.iso8601
66
66
  else value
@@ -73,8 +73,8 @@ module Shamu
73
73
  if result.valid?
74
74
  if result.entity
75
75
  status ||= case request.method
76
- when 'POST' then :created
77
- when 'DELETE' then :no_content
76
+ when "POST" then :created
77
+ when "DELETE" then :no_content
78
78
  else :ok
79
79
  end
80
80
 
@@ -125,8 +125,6 @@ module Shamu
125
125
  response.as_json
126
126
  end
127
127
 
128
- private
129
-
130
128
  # @!visibility public
131
129
  #
132
130
  # Add page-based pagination links for the resources to the builder.
@@ -230,7 +228,8 @@ module Shamu
230
228
  # @return [JsonApi::Context] the builder context honoring any filter
231
229
  # parameters sent by the client.
232
230
  def json_context( fields: :not_set, namespaces: :not_set, presenters: :not_set )
233
- Shamu::JsonApi::Context.new fields: fields == :not_set ? json_context_fields : fields,
231
+ Shamu::JsonApi::Context.new \
232
+ fields: fields == :not_set ? json_context_fields : fields,
234
233
  namespaces: namespaces == :not_set ? json_context_namespaces : namespaces,
235
234
  presenters: presenters == :not_set ? json_context_presenters : presenters
236
235
  end
@@ -245,15 +244,13 @@ module Shamu
245
244
  payload = map_json_resource_payload( json_request_payload )
246
245
 
247
246
  request.params.each do |key, value|
248
- if ID_PATTERN =~ key
249
- payload[ key.to_sym ] ||= value
250
- end
247
+ payload[ key.to_sym ] ||= value if ID_PATTERN =~ key
251
248
  end
252
249
 
253
250
  payload
254
251
  end
255
252
 
256
- def map_json_resource_payload( resource )
253
+ def map_json_resource_payload( resource ) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
257
254
  payload = resource[ :attributes ] ? resource[ :attributes ].dup : {}
258
255
  payload[ :id ] = resource[ :id ] if resource.key?( :id )
259
256
 
@@ -262,7 +259,7 @@ module Shamu
262
259
  attr_key = "#{ key.to_s.singularize }_id"
263
260
 
264
261
  if value[ :data ].is_a?( Array )
265
- attr_key += 's' if value[ :data ].is_a?( Array )
262
+ attr_key += "s" if value[ :data ].is_a?( Array )
266
263
 
267
264
  payload[ attr_key.to_sym ] = value[ :data ].map { |d| d[ :id ] }
268
265
  payload[ key ] = value[ :data ].map { |d| map_json_resource_payload( d ) }
@@ -35,12 +35,13 @@ module Shamu
35
35
  controller.json_resource resource, **given_options
36
36
  end
37
37
 
38
- super json, given_options
38
+ super json.to_json, given_options
39
39
  end
40
40
 
41
41
  # @visibility private
42
42
  def display_errors
43
- controller.render format => controller.json_validation_errors( resource_errors ), :status => :unprocessable_entity # rubocop:disable Metrics/LineLength
43
+ controller.render format => controller.json_validation_errors( resource_errors ).to_json,
44
+ :status => :unprocessable_entity
44
45
  end
45
46
 
46
47
  private
@@ -52,4 +53,4 @@ module Shamu
52
53
  end
53
54
  end
54
55
  end
55
- end
56
+ end
@@ -163,6 +163,8 @@ module Shamu
163
163
  end
164
164
  end
165
165
 
166
+ # rubocop:disable Metrics/MethodLength
167
+
166
168
  # Define an change `method` on the service that takes the id of the
167
169
  # resource to modify and a corresponding {Request} parameter.
168
170
  #
@@ -195,6 +197,9 @@ module Shamu
195
197
  end
196
198
  end
197
199
 
200
+ # rubocop:enabled Metrics/MethodLength
201
+
202
+
198
203
  # Define an `update` method on the service that takes the id of the
199
204
  # resource to update and a {Request} parameter. After applying the
200
205
  # changes the record is persisted and the updated entity result is
@@ -252,7 +257,7 @@ module Shamu
252
257
  define_method :find do |id|
253
258
  wrap_not_found do
254
259
  record = yield( id )
255
- authorize! :read, build_entities( record )
260
+ authorize! :read, build_entity( record )
256
261
  end
257
262
  end
258
263
  else
@@ -27,7 +27,7 @@ module Shamu
27
27
  def initialize( result )
28
28
  @result = result
29
29
 
30
- super translate( :service_request_failed, errors: result.errors.full_messages.join( ', ' ) )
30
+ super translate( :service_request_failed, errors: result.errors.full_messages.join( ", " ) )
31
31
  end
32
32
  end
33
33
  end
@@ -119,7 +119,7 @@ module Shamu
119
119
  def request_class_namespace
120
120
  @request_class_namespace ||= ( name || "" ).sub( /(Service)?$/, "" )
121
121
  .singularize
122
- .concat( 'Request' )
122
+ .concat( "Request" )
123
123
  .constantize
124
124
  rescue NameError
125
125
  self
@@ -89,7 +89,7 @@ module Shamu
89
89
  # @return [self]
90
90
  # @raise [ServiceRequestFailedError] if the result was not valid.
91
91
  def valid!
92
- raise ServiceRequestFailedError.new( self ) unless valid?
92
+ raise ServiceRequestFailedError, self unless valid?
93
93
  self
94
94
  end
95
95
 
data/lib/shamu/version.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
  module Shamu
3
3
  # The primary version number
4
- VERSION_NUMBER = "0.0.11".freeze
4
+ VERSION_NUMBER = "0.0.13"
5
5
 
6
6
  # Version suffix such as 'beta' or 'alpha'
7
- VERSION_SUFFIX = "".freeze
7
+ VERSION_SUFFIX = ""
8
8
 
9
9
  # Published version number
10
- VERSION = "#{ VERSION_NUMBER }#{ VERSION_SUFFIX }".freeze
10
+ VERSION = "#{ VERSION_NUMBER }#{ VERSION_SUFFIX }"
11
11
  end
@@ -4,8 +4,8 @@ require "shamu/entities/active_record"
4
4
  module ActiveRecordSpec
5
5
  class Favorite < ::ActiveRecord::Base
6
6
  self.table_name = "favorites"
7
- extend Shamu::Entities::ActiveRecord
8
- include Shamu::Entities::ActiveRecordSoftDestroy
7
+ extend ::Shamu::Entities::ActiveRecord
8
+ include ::Shamu::Entities::ActiveRecordSoftDestroy
9
9
 
10
10
  scope :by_name, ->( name ) { where( name: name ) }
11
11
  scope :by_label, ->( label ) { where( label: label ) }
@@ -29,4 +29,4 @@ module ActiveRecordSpec
29
29
  class FavoriteScope < Shamu::Entities::ListScope
30
30
  attribute :name
31
31
  end
32
- end
32
+ end
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
- require "shamu/entities/active_record"
3
2
  require "active_record"
3
+ require "shamu/entities/active_record"
4
4
 
5
5
  describe Shamu::Entities::ActiveRecord do
6
6
  use_active_record
@@ -48,8 +48,8 @@ describe Shamu::Entities::ActiveRecord do
48
48
  scope = klass.new( since: since_date, until: until_date )
49
49
  relation = ActiveRecordSpec::Favorite.by_list_scope( scope )
50
50
 
51
- expect( relation.where_values.any? { |w| w.left.name == :since } ).to be_truthy
52
- expect( relation.where_values.any? { |w| w.left.name == :until } ).to be_truthy
51
+ expect( relation.where_clause.any? { |w| w.left.name == :since } ).to be_truthy
52
+ expect( relation.where_clause.any? { |w| w.left.name == :until } ).to be_truthy
53
53
  end
54
54
 
55
55
  it "sorts by attribute" do
@@ -63,4 +63,4 @@ describe Shamu::Entities::ActiveRecord do
63
63
  expect( relation.order_values.any? { |o| o.expr.name == :name } ).to be_truthy
64
64
  end
65
65
  end
66
- end
66
+ end
@@ -39,4 +39,4 @@ describe Shamu::Features::Toggle do
39
39
  Shamu::Features::Toggle.new( "retire_at" => Time.now )
40
40
  end.to raise_error ArgumentError, /Type/
41
41
  end
42
- end
42
+ end
@@ -103,13 +103,13 @@ describe JsonApiControllerSpec::ResourcesController, type: :controller do
103
103
  describe "#render_resource" do
104
104
  it "adds Location header" do
105
105
  get :show, params: { id: 1 }
106
- expect( response.headers ).to include 'Location'
106
+ expect( response.headers ).to include "Location"
107
107
  end
108
108
  end
109
109
 
110
110
  describe "#render_result" do
111
111
  it "returns status created on #create" do
112
- post :create, params: { name: 'example' }
112
+ post :create, params: { name: "example" }
113
113
  expect( response.status ).to eq 201
114
114
  expect( response.body ).to include "data"
115
115
  end
@@ -203,7 +203,7 @@ describe JsonApiControllerSpec::ResourcesController, type: :controller do
203
203
  },
204
204
  relationships: {
205
205
  book: {
206
- data: { type: "book", id: "5", attributes: { title: "Bibliography" } }
206
+ data: { type: "book", id: "5", attributes: { title: "Bibliography" } }
207
207
  },
208
208
  stores: {
209
209
  data: [
@@ -14,6 +14,8 @@ module JsonApiResponderSpec
14
14
  class ResourcesController < ActionController::Base
15
15
  include Shamu::JsonApi::Rails::Controller
16
16
 
17
+ public :json_resource, :json_collection, :json_validation_errors, :json_error
18
+
17
19
  respond_to :json_api, :json
18
20
  self.responder = Responder
19
21
 
@@ -69,4 +69,4 @@ describe Shamu::JsonApi::Response do
69
69
  expect( response.compile ).to include errors: include( hash_including( source: { pointer: "/data/attributes/title" } ) ) # rubocop:disable Metrics/LineLength
70
70
  expect( response.compile ).to include errors: include( hash_including( source: { pointer: "/data" } ) )
71
71
  end
72
- end
72
+ end
@@ -39,7 +39,7 @@ describe Shamu::Rails::Features, type: :controller do
39
39
  controller.render plain: ""
40
40
  end
41
41
 
42
- get :show, params: { id: 1, Shamu::Features::EnvStore::RACK_PARAMS_KEY => override }
42
+ get :show, params: { id: 1, Shamu::Features::EnvStore::RACK_PARAMS_KEY => override }
43
43
  end
44
44
 
45
45
  end
@@ -298,7 +298,10 @@ describe Shamu::Services::ActiveRecordCrud do
298
298
  it "yields to block if block given" do
299
299
  find_klass = Class.new( klass )
300
300
  expect do |b|
301
- find_klass.find( &b )
301
+ find_klass.find do |_|
302
+ b.to_proc.call
303
+ ActiveRecordSpec::Favorite.all.first
304
+ end
302
305
  scorpion.new( find_klass ).find( entity.id )
303
306
  end.to yield_control
304
307
  end
@@ -4,12 +4,12 @@ describe Shamu::Services::LazyTransform do
4
4
  let( :source ) { [ 1, 2, 3 ] }
5
5
 
6
6
  def transformer( &block )
7
- ->( records ) {
7
+ ->( records ) do
8
8
  records.map do |r|
9
9
  yield
10
10
  r
11
11
  end
12
- }
12
+ end
13
13
  end
14
14
 
15
15
  it "short-circuits count" do
@@ -69,7 +69,7 @@ describe Shamu::Services::LazyTransform do
69
69
  end
70
70
 
71
71
  it "yields transformed values" do
72
- transformed = Shamu::Services::LazyTransform.new( source ) { |vs| vs.map { |v| v * v } }
72
+ transformed = Shamu::Services::LazyTransform.new( source ) { |vs| vs.map { |v| v * v } }
73
73
  expect( transformed.to_a ).to eq [ 1, 4, 9 ]
74
74
  end
75
75
 
@@ -81,7 +81,7 @@ describe Shamu::Services::RequestSupport do
81
81
  end.request_class( :change )
82
82
  end.to raise_error Shamu::Services::IncompleteSetupError, /Request/
83
83
  end
84
-
84
+
85
85
  it "singularizes service namespace" do
86
86
  service = scorpion.new RequestSupportSpec::UsersService
87
87
  expect( service.request_class( :change ) ).to be RequestSupportSpec::UserRequest::Change
@@ -54,11 +54,11 @@ describe Shamu::Services::Service do
54
54
  let( :service ) { scorpion.new ServiceSpec::Service }
55
55
 
56
56
  def transformer( &block )
57
- ->( records ) {
57
+ ->( records ) do
58
58
  records.map do |r|
59
59
  yield || r
60
60
  end
61
- }
61
+ end
62
62
  end
63
63
 
64
64
 
@@ -136,7 +136,7 @@ describe Shamu::Services::Service do
136
136
  end
137
137
 
138
138
  it "matches on a custom field" do
139
- list = service.entity_lookup_list( records, [record.amount], ServiceSpec::NullEntity, match: :amount ) do |records|
139
+ list = service.entity_lookup_list( records, [record.amount], ServiceSpec::NullEntity, match: :amount ) do |records| # rubocop:disable Metrics/LineLength
140
140
  records.map { |r| scorpion.fetch ServiceSpec::Entity, { record: r }, {} }
141
141
  end
142
142
 
@@ -145,7 +145,7 @@ describe Shamu::Services::Service do
145
145
 
146
146
  it "matches with a custom proc" do
147
147
  matcher = ->( record ) { record.amount }
148
- list = service.entity_lookup_list( records, [record.amount], ServiceSpec::NullEntity, match: matcher ) do |records|
148
+ list = service.entity_lookup_list( records, [record.amount], ServiceSpec::NullEntity, match: matcher ) do |records| # rubocop:disable Metrics/LineLength
149
149
  records.map { |r| scorpion.fetch ServiceSpec::Entity, { record: r }, {} }
150
150
  end
151
151
 
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,6 @@
1
1
  require "simplecov"
2
- if ENV[ "COVERAGE" ]
3
- require "codeclimate-test-reporter"
4
- CodeClimate::TestReporter.start
5
- else
6
- SimpleCov.start
7
- end
2
+ SimpleCov.start
3
+
8
4
  require "pry"
9
5
  require "bundler/setup"
10
6
 
@@ -24,7 +20,8 @@ RSpec.configure do |config|
24
20
 
25
21
  config.order = "random"
26
22
 
27
- config.filter_gems_from_backtrace "activesupport", "actionpack", "actionview", "scorpion-ioc", "rspec-wait", "rspec-core", "rspec", "rspec-support", "rspec-expectations"
23
+ config.filter_gems_from_backtrace "activesupport", "actionpack", "actionview", "scorpion-ioc", "rspec-wait",
24
+ "rspec-core", "rspec", "rspec-support", "rspec-expectations"
28
25
 
29
26
  config.filter_run focus: true
30
27
  config.filter_run_excluding :broken => true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shamu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Alexander
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-17 00:00:00.000000000 Z
11
+ date: 2017-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -209,6 +209,7 @@ files:
209
209
  - ".yardopts"
210
210
  - CHANGELOG.md
211
211
  - Gemfile
212
+ - Gemfile.lock
212
213
  - Guardfile
213
214
  - LABELS.md
214
215
  - LICENSE
@@ -353,7 +354,6 @@ files:
353
354
  - lib/shamu/services/request_support.rb
354
355
  - lib/shamu/services/result.rb
355
356
  - lib/shamu/services/service.rb
356
- - lib/shamu/services/service_call_failed_error.rb
357
357
  - lib/shamu/sessions.rb
358
358
  - lib/shamu/sessions/README.md
359
359
  - lib/shamu/sessions/cookie_store.rb
@@ -1,4 +0,0 @@
1
- module Shamu
2
- module Services
3
-
4
- class