azeroth 0.7.4 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 197968637291c04e3ce145d6d5dd9f84451e4b47d104d420aef7c1a5e7b999dc
4
- data.tar.gz: 9936013b82fcc56048027c6a469130bc15913e095c5373a9b3b50d577d2fcc93
3
+ metadata.gz: '09152b8053d40bd19405c5b7165458483d4304310fa5ec64c0d2b5723dda0067'
4
+ data.tar.gz: 1a1039542352929720e5cc7ae1242932b7d2a65856e2156b14a36d1a8bb1722b
5
5
  SHA512:
6
- metadata.gz: d05f185b913c3ac80e58bfad3cdcfea1de68c4836251d5a121826961bf3779adc3e9b39e4dff6d92e72204a4bc8d355d063f0b910c4607dad17f741206a31149
7
- data.tar.gz: 85e4d4c4625e36fd40358bf486e5bb2dd81fef82cc6fbf198545b6fdad51642d63d3ee5af2e828d0cf394ca0dfbf7aff5efd568634517a1c5236a79901275915
6
+ metadata.gz: 2ae5257e2851ccbbadbd79d9a0c0a13be63e392b2af16c6e1f66be399ee00bc51b06f9682f25d88648f3a32d2c07451d456d80035f04b48a4cc471d27a572e59
7
+ data.tar.gz: d7c01b81ce09615d65cc451d2a1669ac9d843d18d75fbb0c12c2e4356507fce62288145bd30295674619a0649327b1b69568fede8adb452e602073f67659235e
data/README.md CHANGED
@@ -11,7 +11,7 @@ Azeroth
11
11
 
12
12
  Yard Documentation
13
13
  -------------------
14
- [https://www.rubydoc.info/gems/azeroth/0.7.4](https://www.rubydoc.info/gems/azeroth/0.7.4)
14
+ [https://www.rubydoc.info/gems/azeroth/0.8.0](https://www.rubydoc.info/gems/azeroth/0.8.0)
15
15
 
16
16
  Azeroth has been designed making the coding of controllers easier
17
17
  as routes in controllers are usually copy, paste and replace of same
@@ -61,6 +61,8 @@ It accepts options
61
61
  - before_save: Method/Proc to be ran before saving the resource on create or update
62
62
  - after_save: Method/Proc to be ran after saving the resource on create or update
63
63
  - build_with: Method/Block to be ran when building the reource on create
64
+ - paginated: Flag when pagination should be applied
65
+ - per_page: Number of items returned when pagination is active
64
66
 
65
67
  ```ruby
66
68
  # publishers_controller.rb
data/azeroth.gemspec CHANGED
@@ -23,28 +23,30 @@ Gem::Specification.new do |gem|
23
23
  gem.add_runtime_dependency 'jace', '>= 0.0.3'
24
24
  gem.add_runtime_dependency 'sinclair', '>= 1.6.7'
25
25
 
26
- gem.add_development_dependency 'actionpack', '~> 5.2.x'
27
- gem.add_development_dependency 'activerecord', '~> 5.2.x'
28
- gem.add_development_dependency 'bundler', '1.16.1'
29
- gem.add_development_dependency 'factory_bot', '5.2.0'
30
- gem.add_development_dependency 'nokogiri', '1.11.4'
31
- gem.add_development_dependency 'pry', '0.12.2'
32
- gem.add_development_dependency 'pry-nav', '0.3.0'
33
- gem.add_development_dependency 'rails', '~> 5.2.x'
34
- gem.add_development_dependency 'rails-controller-testing', '1.0.4'
35
- gem.add_development_dependency 'rake', '13.0.3'
36
- gem.add_development_dependency 'reek', '6.0.3'
37
- gem.add_development_dependency 'rspec', '3.9.0'
38
- gem.add_development_dependency 'rspec-core', '3.9.3'
39
- gem.add_development_dependency 'rspec-expectations', '3.9.4'
40
- gem.add_development_dependency 'rspec-mocks', '3.9.1'
41
- gem.add_development_dependency 'rspec-rails', '3.9.0'
42
- gem.add_development_dependency 'rspec-support', '3.9.4'
43
- gem.add_development_dependency 'rubocop', '0.80.1'
44
- gem.add_development_dependency 'rubocop-rspec', '1.38.1'
45
- gem.add_development_dependency 'rubycritic', '4.6.1'
46
- gem.add_development_dependency 'simplecov', '0.17.1'
47
- gem.add_development_dependency 'sqlite3', '1.4.2'
48
- gem.add_development_dependency 'yard', '0.9.26'
49
- gem.add_development_dependency 'yardstick', '0.9.9'
26
+ gem.add_development_dependency 'actionpack', '~> 5.2.x'
27
+ gem.add_development_dependency 'activerecord', '~> 5.2.x'
28
+ gem.add_development_dependency 'bundler', '1.16.1'
29
+ gem.add_development_dependency 'factory_bot', '5.2.0'
30
+ gem.add_development_dependency 'nokogiri', '1.11.4'
31
+ gem.add_development_dependency 'pry', '0.12.2'
32
+ gem.add_development_dependency 'pry-nav', '0.3.0'
33
+ gem.add_development_dependency 'rails', '~> 5.2.x'
34
+ gem.add_development_dependency 'rails-controller-testing', '1.0.4'
35
+ gem.add_development_dependency 'rake', '13.0.3'
36
+ gem.add_development_dependency 'reek', '6.0.3'
37
+ gem.add_development_dependency 'rspec', '3.9.0'
38
+ gem.add_development_dependency 'rspec-collection_matchers', '1.2.0'
39
+ gem.add_development_dependency 'rspec-core', '3.9.3'
40
+ gem.add_development_dependency 'rspec-expectations', '3.9.4'
41
+ gem.add_development_dependency 'rspec-mocks', '3.9.1'
42
+ gem.add_development_dependency 'rspec-rails', '3.9.0'
43
+ gem.add_development_dependency 'rspec-support', '3.9.4'
44
+ gem.add_development_dependency 'rubocop', '0.80.1'
45
+ gem.add_development_dependency 'rubocop-rspec', '1.38.1'
46
+ gem.add_development_dependency 'rubycritic', '4.6.1'
47
+ gem.add_development_dependency 'shoulda-matchers', '4.3.0'
48
+ gem.add_development_dependency 'simplecov', '0.17.1'
49
+ gem.add_development_dependency 'sqlite3', '1.4.2'
50
+ gem.add_development_dependency 'yard', '0.9.26'
51
+ gem.add_development_dependency 'yardstick', '0.9.9'
50
52
  end
@@ -42,6 +42,7 @@ module Azeroth
42
42
  class Decorator
43
43
  autoload :HashBuilder, 'azeroth/decorator/hash_builder'
44
44
  autoload :KeyValueExtractor, 'azeroth/decorator/key_value_extractor'
45
+ autoload :MethodBuilder, 'azeroth/decorator/method_builder'
45
46
  autoload :Options, 'azeroth/decorator/options'
46
47
 
47
48
  class << self
@@ -228,9 +229,7 @@ module Azeroth
228
229
  def expose(attribute, **options_hash)
229
230
  options = Decorator::Options.new(options_hash)
230
231
 
231
- builder = Sinclair.new(self)
232
- builder.add_method(attribute, "@object.#{attribute}")
233
- builder.build
232
+ MethodBuilder.build_reader(self, attribute)
234
233
 
235
234
  attributes_map[attribute] = options
236
235
  end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sinclair'
4
+
5
+ module Azeroth
6
+ class Decorator
7
+ # Responsible for building readers for attributes
8
+ # @api private
9
+ class MethodBuilder < Sinclair
10
+ # Builds reader
11
+ #
12
+ # reaader delegate method calls to @object
13
+ #
14
+ # @return (see Sinclair#build)
15
+ def self.build_reader(klass, attribute)
16
+ new(klass).build_reader(attribute)
17
+ end
18
+
19
+ # (see MethodBuilder.build_reader)
20
+ def build_reader(attribute)
21
+ add_method(attribute, "@object.#{attribute}")
22
+ build
23
+ end
24
+ end
25
+ end
26
+ end
@@ -20,7 +20,9 @@ module Azeroth
20
20
  decorator: true,
21
21
  before_save: nil,
22
22
  after_save: nil,
23
- build_with: nil
23
+ build_with: nil,
24
+ paginated: false,
25
+ per_page: 20
24
26
  }.freeze
25
27
 
26
28
  with_options DEFAULT_OPTIONS
@@ -46,6 +48,13 @@ module Azeroth
46
48
  )
47
49
  end
48
50
 
51
+ alias paginated? paginated
52
+ # @method paginated?
53
+ # @api private
54
+ #
55
+ # @see paginated
56
+ # @return [TrueClass,FalseClass]
57
+
49
58
  # @method only
50
59
  # @api private
51
60
  #
@@ -100,5 +109,19 @@ module Azeroth
100
109
  # Block or method name to be ran when building the resource
101
110
  #
102
111
  # @return [Symbol,Proc]
112
+
113
+ # @method paginated
114
+ # @api private
115
+ #
116
+ # Boolean indicating if pagination should or not be used
117
+ #
118
+ # @return [TrueClass,FalseClass]
119
+
120
+ # @method per_page
121
+ # @api private
122
+ #
123
+ # Number of elements when pagination is active
124
+ #
125
+ # @return [Integer]
103
126
  end
104
127
  end
@@ -8,12 +8,58 @@ module Azeroth
8
8
  class Index < RequestHandler
9
9
  private
10
10
 
11
+ delegate :paginated?, :per_page, to: :options
12
+
11
13
  # @private
12
14
  #
13
15
  # return a collection of the model
14
16
  #
15
17
  # @return [Enumerable<Object>]
16
18
  def resource
19
+ return scoped_entries unless paginated?
20
+
21
+ paginated_entries
22
+ end
23
+
24
+ # @private
25
+ #
26
+ # paginated collection of the model
27
+ #
28
+ # @return [Enumerable<Object>]
29
+ def paginated_entries
30
+ scoped_entries.offset(offset).limit(limit)
31
+ end
32
+
33
+ # @private
34
+ #
35
+ # offest used in pagination
36
+ #
37
+ # offset is retrieved from +params[:per_page]+
38
+ # or +options.per_page+
39
+ #
40
+ # @return [Integer]
41
+ def offset
42
+ page = (params[:page] || 1).to_i - 1
43
+ page * limit
44
+ end
45
+
46
+ # @private
47
+ #
48
+ # limit used in pagination
49
+ #
50
+ # limit is retrieved from +params[:page]+
51
+ #
52
+ # @return [Integer]
53
+ def limit
54
+ (params[:per_page] || per_page).to_i
55
+ end
56
+
57
+ # @private
58
+ #
59
+ # default scope of elements
60
+ #
61
+ # @return [Enumerable<Object>]
62
+ def scoped_entries
17
63
  controller.send(model.plural)
18
64
  end
19
65
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Azeroth
4
- VERSION = '0.7.4'
4
+ VERSION = '0.8.0'
5
5
  end
@@ -11,7 +11,7 @@ describe DocumentsController do
11
11
  let(:documents_count) { 0 }
12
12
 
13
13
  before do
14
- documents_count.times.map { create(:document) }
14
+ create_list(:document, documents_count)
15
15
  end
16
16
 
17
17
  context 'when calling on format json' do
@@ -11,7 +11,7 @@ describe DocumentsWithErrorController do
11
11
  let(:documents_count) { 0 }
12
12
 
13
13
  before do
14
- documents_count.times.map { create(:document) }
14
+ create_list(:document, documents_count)
15
15
  end
16
16
 
17
17
  context 'when calling on format json' do
@@ -10,7 +10,7 @@ describe IndexDocumentsController do
10
10
  describe 'GET index' do
11
11
  let(:documents_count) { 0 }
12
12
  let!(:documents) do
13
- documents_count.times.map { create(:document) }
13
+ create_list(:document, documents_count)
14
14
  end
15
15
 
16
16
  let(:expected_json) do
@@ -37,6 +37,17 @@ describe IndexDocumentsController do
37
37
  expect(parsed_response).to eq(expected_json)
38
38
  end
39
39
  end
40
+
41
+ context 'when there are more documents than expected pagination' do
42
+ let(:documents_count) { Random.rand(21..30) }
43
+
44
+ it { expect(response).to be_successful }
45
+
46
+ it 'returns all documents' do
47
+ expect(parsed_response)
48
+ .to have(documents_count).elements
49
+ end
50
+ end
40
51
  end
41
52
  end
42
53
 
@@ -0,0 +1,97 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe PaginatedDocumentsController do
6
+ let(:parsed_response) do
7
+ JSON.parse(response.body)
8
+ end
9
+
10
+ describe 'GET index' do
11
+ let(:documents_count) { 0 }
12
+ let!(:documents) do
13
+ create_list(:document, documents_count)
14
+ end
15
+
16
+ let(:expected_json) do
17
+ Document::Decorator.new(documents).as_json
18
+ end
19
+
20
+ context 'when calling on format json' do
21
+ let(:parameters) { {} }
22
+
23
+ before do
24
+ get :index, params: parameters.merge(format: :json)
25
+ end
26
+
27
+ it { expect(response).to be_successful }
28
+
29
+ it 'returns empty array' do
30
+ expect(parsed_response).to eq(expected_json)
31
+ end
32
+
33
+ context 'when there is a document' do
34
+ let(:documents_count) { 1 }
35
+
36
+ it { expect(response).to be_successful }
37
+
38
+ it 'renders documents json' do
39
+ expect(parsed_response).to eq(expected_json)
40
+ end
41
+ end
42
+
43
+ context 'when there are more documents than expected pagination' do
44
+ let(:documents_count) { Random.rand(21..30) }
45
+
46
+ it { expect(response).to be_successful }
47
+
48
+ it 'returns paginated documents' do
49
+ expect(parsed_response)
50
+ .not_to have(documents_count).elements
51
+ end
52
+
53
+ it 'returns full page of documents' do
54
+ expect(parsed_response)
55
+ .to have(20).elements
56
+ end
57
+ end
58
+
59
+ context 'when page is given' do
60
+ let(:documents_count) { Random.rand(21..30) }
61
+ let(:parameters) { { page: 2 } }
62
+
63
+ it { expect(response).to be_successful }
64
+
65
+ it 'returns paginated documents' do
66
+ expect(parsed_response)
67
+ .not_to have(documents_count).elements
68
+ end
69
+
70
+ it 'returns full page of documents' do
71
+ expect(parsed_response)
72
+ .to have(documents_count - 20)
73
+ .elements
74
+ end
75
+ end
76
+
77
+ context 'when per_page is given' do
78
+ let(:documents_count) { Random.rand(21..30) }
79
+ let(:per_page) { Random.rand(5..15) }
80
+ let(:parameters) { { per_page: per_page } }
81
+
82
+ it { expect(response).to be_successful }
83
+
84
+ it 'returns paginated documents' do
85
+ expect(parsed_response)
86
+ .not_to have(documents_count).elements
87
+ end
88
+
89
+ it 'returns full page of documents' do
90
+ expect(parsed_response)
91
+ .to have(per_page)
92
+ .elements
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class PaginatedDocumentsController < ApplicationController
4
+ include Azeroth::Resourceable
5
+
6
+ resource_for :document, only: 'index', paginated: true
7
+ end
@@ -4,6 +4,7 @@ Rails.application.routes.draw do
4
4
  resources :documents
5
5
  resources :public_documents, controller: :index_documents
6
6
  resources :create_documents, controller: :documents_with_error
7
+ resources :paginated_documents
7
8
 
8
9
  resources :publishers, only: %i[create index] do
9
10
  resources :games, except: :delete
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Azeroth::Decorator::MethodBuilder do
6
+ let(:decorator_class) { Class.new(Azeroth::Decorator) }
7
+ let(:decorator) { decorator_class.new(object) }
8
+ let(:model) { build(:dummy_model) }
9
+ let(:object) { model }
10
+
11
+ describe '.build_reader' do
12
+ it do
13
+ expect { described_class.build_reader(decorator_class, :age) }
14
+ .to add_method(:age).to(decorator)
15
+ end
16
+
17
+ it do
18
+ described_class.build_reader(decorator_class, :age)
19
+
20
+ expect(decorator.age).to eq(model.age)
21
+ end
22
+ end
23
+ end
@@ -8,5 +8,48 @@ describe Azeroth::RequestHandler::Index do
8
8
  let(:documents_count) { 3 }
9
9
  let(:expected_resource) { Document.all }
10
10
  end
11
+
12
+ context 'when pagination is active' do
13
+ it_behaves_like 'a request handler' do
14
+ let(:documents_count) { Random.rand(21..30) }
15
+ let(:expected_resource) { Document.all.limit(20) }
16
+ let(:options_hash) { { paginated: true } }
17
+ end
18
+
19
+ context 'when page is given' do
20
+ it_behaves_like 'a request handler' do
21
+ let(:documents_count) { Random.rand(41..50) }
22
+ let(:expected_resource) { Document.all.offset(20).limit(20) }
23
+ let(:options_hash) { { paginated: true } }
24
+ let(:extra_params) { { page: '2' } }
25
+ end
26
+ end
27
+
28
+ context 'when third page is given' do
29
+ it_behaves_like 'a request handler' do
30
+ let(:documents_count) { Random.rand(41..50) }
31
+ let(:expected_resource) { Document.all.offset(40) }
32
+ let(:options_hash) { { paginated: true } }
33
+ let(:extra_params) { { page: '3' } }
34
+ end
35
+ end
36
+
37
+ context 'when per_page is not default' do
38
+ it_behaves_like 'a request handler' do
39
+ let(:documents_count) { Random.rand(21..30) }
40
+ let(:expected_resource) { Document.all.limit(10) }
41
+ let(:options_hash) { { paginated: true, per_page: 10 } }
42
+ end
43
+ end
44
+
45
+ context 'when per page is given in params' do
46
+ it_behaves_like 'a request handler' do
47
+ let(:documents_count) { Random.rand(41..50) }
48
+ let(:expected_resource) { Document.all.offset(15).limit(15) }
49
+ let(:options_hash) { { paginated: true, per_page: 10 } }
50
+ let(:extra_params) { { page: '2', per_page: '15' } }
51
+ end
52
+ end
53
+ end
11
54
  end
12
55
  end
@@ -34,7 +34,7 @@ describe Azeroth::RequestHandler do
34
34
  end
35
35
 
36
36
  before do
37
- documents_count.times { create(:document) }
37
+ create_list(:document, documents_count)
38
38
 
39
39
  allow(controller).to receive(:params)
40
40
  .and_return(params)
data/spec/spec_helper.rb CHANGED
@@ -18,6 +18,8 @@ require File.expand_path('spec/dummy/db/schema.rb')
18
18
  require 'rspec/rails'
19
19
  require 'active_support/railtie'
20
20
  require 'sinclair/matchers'
21
+ require 'shoulda-matchers'
22
+ require 'rspec/collection_matchers'
21
23
 
22
24
  support_files = File.expand_path('spec/support/**/*.rb')
23
25
  Dir[support_files].sort.each { |file| require file }
@@ -25,7 +25,7 @@ shared_examples 'a request handler' do |status: :ok|
25
25
  end
26
26
 
27
27
  before do
28
- documents_count.times { create(:document) }
28
+ create_list(:document, documents_count)
29
29
 
30
30
  allow(controller).to receive(:params)
31
31
  .and_return(params)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: azeroth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darthjee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-09 00:00:00.000000000 Z
11
+ date: 2021-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -234,6 +234,20 @@ dependencies:
234
234
  - - '='
235
235
  - !ruby/object:Gem::Version
236
236
  version: 3.9.0
237
+ - !ruby/object:Gem::Dependency
238
+ name: rspec-collection_matchers
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - '='
242
+ - !ruby/object:Gem::Version
243
+ version: 1.2.0
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - '='
249
+ - !ruby/object:Gem::Version
250
+ version: 1.2.0
237
251
  - !ruby/object:Gem::Dependency
238
252
  name: rspec-core
239
253
  requirement: !ruby/object:Gem::Requirement
@@ -346,6 +360,20 @@ dependencies:
346
360
  - - '='
347
361
  - !ruby/object:Gem::Version
348
362
  version: 4.6.1
363
+ - !ruby/object:Gem::Dependency
364
+ name: shoulda-matchers
365
+ requirement: !ruby/object:Gem::Requirement
366
+ requirements:
367
+ - - '='
368
+ - !ruby/object:Gem::Version
369
+ version: 4.3.0
370
+ type: :development
371
+ prerelease: false
372
+ version_requirements: !ruby/object:Gem::Requirement
373
+ requirements:
374
+ - - '='
375
+ - !ruby/object:Gem::Version
376
+ version: 4.3.0
349
377
  - !ruby/object:Gem::Dependency
350
378
  name: simplecov
351
379
  requirement: !ruby/object:Gem::Requirement
@@ -431,6 +459,7 @@ files:
431
459
  - lib/azeroth/decorator.rb
432
460
  - lib/azeroth/decorator/hash_builder.rb
433
461
  - lib/azeroth/decorator/key_value_extractor.rb
462
+ - lib/azeroth/decorator/method_builder.rb
434
463
  - lib/azeroth/decorator/options.rb
435
464
  - lib/azeroth/dummy_decorator.rb
436
465
  - lib/azeroth/model.rb
@@ -452,6 +481,7 @@ files:
452
481
  - spec/controllers/documents_controller_spec.rb
453
482
  - spec/controllers/documents_with_error_controller_spec.rb
454
483
  - spec/controllers/index_documents_controller_spec.rb
484
+ - spec/controllers/paginated_documents_controller_spec.rb
455
485
  - spec/controllers/pokemon_masters_controller_spec.rb
456
486
  - spec/controllers/pokemons_controller_spec.rb
457
487
  - spec/dummy/.ruby-version
@@ -470,6 +500,7 @@ files:
470
500
  - spec/dummy/app/controllers/documents_with_error_controller.rb
471
501
  - spec/dummy/app/controllers/games_controller.rb
472
502
  - spec/dummy/app/controllers/index_documents_controller.rb
503
+ - spec/dummy/app/controllers/paginated_documents_controller.rb
473
504
  - spec/dummy/app/controllers/pokemon_masters_controller.rb
474
505
  - spec/dummy/app/controllers/pokemons_controller.rb
475
506
  - spec/dummy/app/controllers/publishers_controller.rb
@@ -554,6 +585,7 @@ files:
554
585
  - spec/integration/yard/controllers/games_controller_spec.rb
555
586
  - spec/lib/azeroth/decorator/hash_builder_spec.rb
556
587
  - spec/lib/azeroth/decorator/key_value_extractor_spec.rb
588
+ - spec/lib/azeroth/decorator/method_builder_spec.rb
557
589
  - spec/lib/azeroth/decorator_spec.rb
558
590
  - spec/lib/azeroth/dummy_decorator_spec.rb
559
591
  - spec/lib/azeroth/model_spec.rb
@@ -614,6 +646,7 @@ test_files:
614
646
  - spec/controllers/documents_controller_spec.rb
615
647
  - spec/controllers/documents_with_error_controller_spec.rb
616
648
  - spec/controllers/index_documents_controller_spec.rb
649
+ - spec/controllers/paginated_documents_controller_spec.rb
617
650
  - spec/controllers/pokemon_masters_controller_spec.rb
618
651
  - spec/controllers/pokemons_controller_spec.rb
619
652
  - spec/dummy/.ruby-version
@@ -632,6 +665,7 @@ test_files:
632
665
  - spec/dummy/app/controllers/documents_with_error_controller.rb
633
666
  - spec/dummy/app/controllers/games_controller.rb
634
667
  - spec/dummy/app/controllers/index_documents_controller.rb
668
+ - spec/dummy/app/controllers/paginated_documents_controller.rb
635
669
  - spec/dummy/app/controllers/pokemon_masters_controller.rb
636
670
  - spec/dummy/app/controllers/pokemons_controller.rb
637
671
  - spec/dummy/app/controllers/publishers_controller.rb
@@ -716,6 +750,7 @@ test_files:
716
750
  - spec/integration/yard/controllers/games_controller_spec.rb
717
751
  - spec/lib/azeroth/decorator/hash_builder_spec.rb
718
752
  - spec/lib/azeroth/decorator/key_value_extractor_spec.rb
753
+ - spec/lib/azeroth/decorator/method_builder_spec.rb
719
754
  - spec/lib/azeroth/decorator_spec.rb
720
755
  - spec/lib/azeroth/dummy_decorator_spec.rb
721
756
  - spec/lib/azeroth/model_spec.rb