azeroth 0.7.4 → 0.8.0
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/README.md +3 -1
- data/azeroth.gemspec +26 -24
- data/lib/azeroth/decorator.rb +2 -3
- data/lib/azeroth/decorator/method_builder.rb +26 -0
- data/lib/azeroth/options.rb +24 -1
- data/lib/azeroth/request_handler/index.rb +46 -0
- data/lib/azeroth/version.rb +1 -1
- data/spec/controllers/documents_controller_spec.rb +1 -1
- data/spec/controllers/documents_with_error_controller_spec.rb +1 -1
- data/spec/controllers/index_documents_controller_spec.rb +12 -1
- data/spec/controllers/paginated_documents_controller_spec.rb +97 -0
- data/spec/dummy/app/controllers/paginated_documents_controller.rb +7 -0
- data/spec/dummy/config/routes.rb +1 -0
- data/spec/lib/azeroth/decorator/method_builder_spec.rb +23 -0
- data/spec/lib/azeroth/request_handler/index_spec.rb +43 -0
- data/spec/lib/azeroth/request_handler_spec.rb +1 -1
- data/spec/spec_helper.rb +2 -0
- data/spec/support/shared_examples/request_handler.rb +1 -1
- metadata +37 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09152b8053d40bd19405c5b7165458483d4304310fa5ec64c0d2b5723dda0067'
|
4
|
+
data.tar.gz: 1a1039542352929720e5cc7ae1242932b7d2a65856e2156b14a36d1a8bb1722b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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',
|
27
|
-
gem.add_development_dependency 'activerecord',
|
28
|
-
gem.add_development_dependency 'bundler',
|
29
|
-
gem.add_development_dependency 'factory_bot',
|
30
|
-
gem.add_development_dependency 'nokogiri',
|
31
|
-
gem.add_development_dependency 'pry',
|
32
|
-
gem.add_development_dependency 'pry-nav',
|
33
|
-
gem.add_development_dependency 'rails',
|
34
|
-
gem.add_development_dependency 'rails-controller-testing',
|
35
|
-
gem.add_development_dependency 'rake',
|
36
|
-
gem.add_development_dependency 'reek',
|
37
|
-
gem.add_development_dependency 'rspec',
|
38
|
-
gem.add_development_dependency 'rspec-
|
39
|
-
gem.add_development_dependency 'rspec-
|
40
|
-
gem.add_development_dependency 'rspec-
|
41
|
-
gem.add_development_dependency 'rspec-
|
42
|
-
gem.add_development_dependency 'rspec-
|
43
|
-
gem.add_development_dependency '
|
44
|
-
gem.add_development_dependency 'rubocop
|
45
|
-
gem.add_development_dependency '
|
46
|
-
gem.add_development_dependency '
|
47
|
-
gem.add_development_dependency '
|
48
|
-
gem.add_development_dependency '
|
49
|
-
gem.add_development_dependency '
|
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
|
data/lib/azeroth/decorator.rb
CHANGED
@@ -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
|
-
|
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
|
data/lib/azeroth/options.rb
CHANGED
@@ -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
|
data/lib/azeroth/version.rb
CHANGED
@@ -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
|
-
|
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
|
data/spec/dummy/config/routes.rb
CHANGED
@@ -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
|
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 }
|
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.
|
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-
|
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
|