adminable 0.0.1 → 0.0.2

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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +94 -33
  3. data/app/assets/javascripts/adminable/scripts.js +8 -5
  4. data/app/assets/stylesheets/adminable/application.scss +15 -0
  5. data/app/controllers/adminable/application_controller.rb +0 -3
  6. data/app/controllers/adminable/resources_controller.rb +49 -24
  7. data/app/models/concerns/adminable/resource_concern.rb +15 -0
  8. data/app/views/adminable/resources/_form.html.haml +5 -9
  9. data/app/views/adminable/resources/_search.html.haml +2 -2
  10. data/app/views/adminable/resources/edit.html.haml +1 -1
  11. data/app/views/adminable/resources/form/_belongs_to.html.haml +13 -3
  12. data/app/views/adminable/resources/form/_boolean.html.haml +5 -2
  13. data/app/views/adminable/resources/form/_date.html.haml +3 -0
  14. data/app/views/adminable/resources/form/_datetime.html.haml +3 -2
  15. data/app/views/adminable/resources/form/_decimal.html.haml +3 -2
  16. data/app/views/adminable/resources/form/_float.html.haml +3 -2
  17. data/app/views/adminable/resources/form/_has_many.html.haml +12 -8
  18. data/app/views/adminable/resources/form/_integer.html.haml +3 -2
  19. data/app/views/adminable/resources/form/_string.html.haml +3 -2
  20. data/app/views/adminable/resources/form/_text.html.haml +4 -2
  21. data/app/views/adminable/resources/form/_time.html.haml +3 -0
  22. data/app/views/adminable/resources/form/_timestamp.html.haml +3 -0
  23. data/app/views/adminable/resources/index.html.haml +12 -14
  24. data/app/views/adminable/resources/index/_belongs_to.html.haml +4 -5
  25. data/app/views/adminable/resources/index/_date.html.haml +2 -0
  26. data/app/views/adminable/resources/index/_has_many.html.haml +1 -2
  27. data/app/views/adminable/resources/index/_text.html.haml +1 -1
  28. data/app/views/adminable/resources/index/_time.html.haml +2 -0
  29. data/app/views/adminable/resources/index/_timestamp.html.haml +2 -0
  30. data/app/views/adminable/shared/_label.html.haml +6 -3
  31. data/app/views/layouts/adminable/application.html.haml +3 -4
  32. data/config/locales/adminable.en.yml +4 -1
  33. data/config/locales/adminable.ru.yml +21 -0
  34. data/config/routes.rb +1 -1
  35. data/lib/adminable.rb +9 -4
  36. data/lib/adminable/attributes/association.rb +7 -14
  37. data/lib/adminable/attributes/base.rb +36 -18
  38. data/lib/adminable/attributes/collection.rb +75 -36
  39. data/lib/adminable/attributes/types/belongs_to.rb +1 -3
  40. data/lib/adminable/attributes/types/date.rb +8 -0
  41. data/lib/adminable/attributes/types/has_many.rb +0 -6
  42. data/lib/adminable/attributes/types/time.rb +8 -0
  43. data/lib/adminable/attributes/types/timestamp.rb +8 -0
  44. data/lib/adminable/configuration.rb +7 -2
  45. data/lib/adminable/engine.rb +5 -1
  46. data/lib/adminable/errors.rb +7 -0
  47. data/lib/adminable/presenters/base_presenter.rb +11 -0
  48. data/lib/adminable/presenters/entries_presenter.rb +55 -0
  49. data/lib/adminable/presenters/entry_presenter.rb +68 -0
  50. data/lib/adminable/resource.rb +9 -15
  51. data/lib/adminable/version.rb +1 -1
  52. data/lib/generators/adminable/install/templates/application_controller.rb +2 -0
  53. data/lib/generators/adminable/install_generator.rb +27 -0
  54. data/lib/generators/{cms → adminable}/resource/templates/resource_controller.rb.erb +0 -0
  55. data/lib/generators/{cms → adminable}/resource_generator.rb +0 -0
  56. metadata +77 -33
  57. data/lib/adminable/extensions/devise.rb +0 -24
@@ -2,10 +2,8 @@ module Adminable
2
2
  module Attributes
3
3
  module Types
4
4
  class BelongsTo < Base
5
- include Adminable::Attributes::Association
6
-
7
5
  def key
8
- @association.foreign_key
6
+ @association.reflection.foreign_key
9
7
  end
10
8
  end
11
9
  end
@@ -0,0 +1,8 @@
1
+ module Adminable
2
+ module Attributes
3
+ module Types
4
+ class Date < Base
5
+ end
6
+ end
7
+ end
8
+ end
@@ -2,8 +2,6 @@ module Adminable
2
2
  module Attributes
3
3
  module Types
4
4
  class HasMany < Base
5
- include Adminable::Attributes::Association
6
-
7
5
  def key
8
6
  @key = "#{@name.to_s.singularize}_ids"
9
7
  end
@@ -11,10 +9,6 @@ module Adminable
11
9
  def strong_parameter
12
10
  { key => [] }
13
11
  end
14
-
15
- def show?
16
- @association.klass.any?
17
- end
18
12
  end
19
13
  end
20
14
  end
@@ -0,0 +1,8 @@
1
+ module Adminable
2
+ module Attributes
3
+ module Types
4
+ class Time < Base
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Adminable
2
+ module Attributes
3
+ module Types
4
+ class Timestamp < Base
5
+ end
6
+ end
7
+ end
8
+ end
@@ -1,9 +1,13 @@
1
1
  module Adminable
2
2
  module Configuration
3
+ # Finds all controllers from `app/controllers/adminable` directory
4
+ # @return [Array] of {Adminable::Resource} objects
3
5
  def self.resources
4
- @resources ||= resources_paths.map do |resource_path|
6
+ resources_paths.map do |resource_path|
5
7
  Adminable::Resource.new(
6
- resource_path.to_s.split('adminable/').last.sub(/_controller\.rb$/, '')
8
+ resource_path.to_s.split('adminable/').last.sub(
9
+ /_controller\.rb$/, ''
10
+ )
7
11
  )
8
12
  end
9
13
  end
@@ -14,6 +18,7 @@ module Adminable
14
18
 
15
19
  def self.resources_paths
16
20
  Dir[Rails.root.join('app/controllers/adminable/**/*_controller.rb')]
21
+ .reject { |f| f['app/controllers/adminable/application_controller.rb'] }
17
22
  end
18
23
  end
19
24
  end
@@ -3,7 +3,11 @@ module Adminable
3
3
  isolate_namespace Adminable
4
4
 
5
5
  ActionDispatch::Reloader.to_prepare do
6
- require_dependency Adminable::Engine.root.join('app/controllers/adminable/resources_controller.rb')
6
+ require_dependency(
7
+ Adminable::Engine.root.join(
8
+ 'app/controllers/adminable/resources_controller.rb'
9
+ )
10
+ )
7
11
  end
8
12
  end
9
13
  end
@@ -0,0 +1,7 @@
1
+ module Adminable
2
+ class AttributeNotImplemented < StandardError
3
+ end
4
+
5
+ class AttributeNotFound < StandardError
6
+ end
7
+ end
@@ -0,0 +1,11 @@
1
+ module Adminable
2
+ class BasePresenter
3
+ include Adminable::Engine.routes.url_helpers
4
+
5
+ private
6
+
7
+ def view
8
+ ActionController::Base.helpers
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,55 @@
1
+ module Adminable
2
+ class EntriesPresenter < BasePresenter
3
+ ENTRIES_LIMIT = 5
4
+
5
+ include Enumerable
6
+ extend Forwardable
7
+
8
+ def_delegators :@collection, :each, :first, :last, :empty?
9
+ def_delegators(
10
+ *%i(
11
+ @relation
12
+ current_page
13
+ total_pages
14
+ limit_value
15
+ entry_name
16
+ total_count
17
+ offset_value
18
+ last_page?
19
+ )
20
+ )
21
+
22
+ def initialize(relation)
23
+ @relation = relation
24
+ @collection = relation.all.map do |entry|
25
+ Adminable::EntryPresenter.new(entry)
26
+ end
27
+ end
28
+
29
+ def to_s
30
+ string = collection.first(ENTRIES_LIMIT).map do |entry|
31
+ view.link_to(entry.to_name, edit_polymorphic_path(entry))
32
+ end
33
+
34
+ string << and_more_tag if collection_size_residue > 0
35
+
36
+ string.join(', ').html_safe
37
+ end
38
+
39
+ private
40
+
41
+ attr_accessor :relation, :collection
42
+
43
+ def collection_size_residue
44
+ @collection_residue ||= collection.size - ENTRIES_LIMIT
45
+ end
46
+
47
+ def and_more_tag
48
+ view.content_tag(
49
+ :span,
50
+ I18n.t('adminable.ui.and_more', size: collection_size_residue),
51
+ class: 'text-muted'
52
+ )
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,68 @@
1
+ module Adminable
2
+ class EntryPresenter < BasePresenter
3
+ def initialize(entry)
4
+ @entry = entry
5
+ end
6
+
7
+ def to_name
8
+ %i(name title email login id).each do |method_name|
9
+ begin
10
+ return entry.public_send(method_name)
11
+ rescue NoMethodError
12
+ next
13
+ end
14
+ end
15
+ end
16
+
17
+ def link_to_self
18
+ view.link_to(
19
+ to_name,
20
+ edit_polymorphic_path(entry)
21
+ )
22
+ end
23
+
24
+ def link_to_delete
25
+ view.link_to(
26
+ I18n.t('adminable.buttons.delete'),
27
+ polymorphic_path(@entry),
28
+ class: 'btn btn-danger-outline pull-xs-right',
29
+ method: :delete,
30
+ data: {
31
+ confirm: I18n.t('adminable.ui.confirm')
32
+ }
33
+ )
34
+ end
35
+
36
+ def link_to_edit_small
37
+ view.link_to(
38
+ I18n.t('adminable.buttons.edit'),
39
+ edit_polymorphic_path(entry),
40
+ class: 'label label-primary'
41
+ )
42
+ end
43
+
44
+ def link_to_delete_small
45
+ view.link_to(
46
+ I18n.t('adminable.buttons.delete'),
47
+ polymorphic_path(entry),
48
+ class: 'label label-danger',
49
+ method: :delete,
50
+ data: {
51
+ confirm: I18n.t('adminable.ui.confirm')
52
+ }
53
+ )
54
+ end
55
+
56
+ def method_missing(method_name, *args, &block)
57
+ entry.public_send(method_name, *args) { block if block_given? }
58
+ end
59
+
60
+ def respond_to_missing?(method_name, *)
61
+ entry.respond_to?(method_name)
62
+ end
63
+
64
+ private
65
+
66
+ attr_accessor :entry
67
+ end
68
+ end
@@ -3,35 +3,29 @@ module Adminable
3
3
  attr_reader :name, :model
4
4
  attr_writer :attributes
5
5
 
6
+ # @param name [String] resource name, usually same as the model name
6
7
  def initialize(name)
7
8
  @name = name
8
9
  @model = name.classify.constantize
9
-
10
- load_extensions
11
10
  end
12
11
 
12
+ # @return [String] for route helper name
13
13
  def route
14
14
  @route ||= @model.name.underscore.pluralize.tr('/', '_')
15
15
  end
16
16
 
17
+ # @return [Array] of associations names for ActiveRecord queries
17
18
  def includes
18
- @includes ||= if attributes.association.present?
19
- attributes.association.map { |k, v| v.name }
20
- else
21
- false
22
- end
19
+ @includes ||= if attributes.associations.present?
20
+ attributes.associations.map(&:name)
21
+ else
22
+ false
23
+ end
23
24
  end
24
25
 
26
+ # @return [Array] collection, see {Adminable::Attributes::Collection}
25
27
  def attributes
26
28
  @attributes ||= Adminable::Attributes::Collection.new(@model)
27
29
  end
28
-
29
- private
30
-
31
- def load_extensions
32
- if @model.method_defined?(:devise_modules)
33
- attributes.extend(Adminable::Extensions::Devise)
34
- end
35
- end
36
30
  end
37
31
  end
@@ -1,3 +1,3 @@
1
1
  module Adminable
2
- VERSION = '0.0.1'.freeze
2
+ VERSION = '0.0.2'.freeze
3
3
  end
@@ -0,0 +1,2 @@
1
+ class Adminable::ApplicationController < ActionController::Base
2
+ end
@@ -0,0 +1,27 @@
1
+ require 'rails/generators/base'
2
+
3
+ module Adminable
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ source_root File.expand_path('../install/templates', __FILE__)
7
+
8
+ def create_controller
9
+ template(
10
+ 'application_controller.rb',
11
+ 'app/controllers/adminable/application_controller.rb'
12
+ )
13
+ end
14
+
15
+ def mount_engine
16
+ insert_into_file(
17
+ "#{Rails.root}/config/routes.rb",
18
+ after: /routes.draw.do\n/
19
+ ) do
20
+ %( mount Adminable::Engine, at: '/adminable'
21
+
22
+ )
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adminable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Novikov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-31 00:00:00.000000000 Z
11
+ date: 2016-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -64,14 +64,14 @@ dependencies:
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 4.0.4
67
+ version: 4.1.1
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: 4.0.4
74
+ version: 4.1.1
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: bootstrap
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -115,41 +115,41 @@ dependencies:
115
115
  - !ruby/object:Gem::Version
116
116
  version: 1.6.1
117
117
  - !ruby/object:Gem::Dependency
118
- name: coffee-rails
118
+ name: kaminari
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - ">="
122
122
  - !ruby/object:Gem::Version
123
- version: 4.1.1
123
+ version: 0.16.2
124
124
  type: :runtime
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - ">="
129
129
  - !ruby/object:Gem::Version
130
- version: 4.1.1
130
+ version: 0.16.2
131
131
  - !ruby/object:Gem::Dependency
132
- name: babosa
132
+ name: ransack
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - "~>"
135
+ - - ">="
136
136
  - !ruby/object:Gem::Version
137
- version: 1.0.2
137
+ version: 1.7.0
138
138
  type: :runtime
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - "~>"
142
+ - - ">="
143
143
  - !ruby/object:Gem::Version
144
- version: 1.0.2
144
+ version: 1.7.0
145
145
  - !ruby/object:Gem::Dependency
146
- name: kaminari
146
+ name: sqlite3
147
147
  requirement: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - ">="
150
150
  - !ruby/object:Gem::Version
151
151
  version: '0'
152
- type: :runtime
152
+ type: :development
153
153
  prerelease: false
154
154
  version_requirements: !ruby/object:Gem::Requirement
155
155
  requirements:
@@ -157,21 +157,35 @@ dependencies:
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
159
  - !ruby/object:Gem::Dependency
160
- name: ransack
160
+ name: rspec-rails
161
161
  requirement: !ruby/object:Gem::Requirement
162
162
  requirements:
163
163
  - - ">="
164
164
  - !ruby/object:Gem::Version
165
- version: 1.7.0
166
- type: :runtime
165
+ version: '0'
166
+ type: :development
167
167
  prerelease: false
168
168
  version_requirements: !ruby/object:Gem::Requirement
169
169
  requirements:
170
170
  - - ">="
171
171
  - !ruby/object:Gem::Version
172
- version: 1.7.0
172
+ version: '0'
173
173
  - !ruby/object:Gem::Dependency
174
- name: sqlite3
174
+ name: capybara
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: 2.7.0
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: 2.7.0
187
+ - !ruby/object:Gem::Dependency
188
+ name: factory_girl_rails
175
189
  requirement: !ruby/object:Gem::Requirement
176
190
  requirements:
177
191
  - - ">="
@@ -185,7 +199,7 @@ dependencies:
185
199
  - !ruby/object:Gem::Version
186
200
  version: '0'
187
201
  - !ruby/object:Gem::Dependency
188
- name: rspec-rails
202
+ name: database_cleaner
189
203
  requirement: !ruby/object:Gem::Requirement
190
204
  requirements:
191
205
  - - ">="
@@ -199,21 +213,21 @@ dependencies:
199
213
  - !ruby/object:Gem::Version
200
214
  version: '0'
201
215
  - !ruby/object:Gem::Dependency
202
- name: capybara
216
+ name: byebug
203
217
  requirement: !ruby/object:Gem::Requirement
204
218
  requirements:
205
- - - "~>"
219
+ - - ">="
206
220
  - !ruby/object:Gem::Version
207
- version: 2.6.2
221
+ version: '0'
208
222
  type: :development
209
223
  prerelease: false
210
224
  version_requirements: !ruby/object:Gem::Requirement
211
225
  requirements:
212
- - - "~>"
226
+ - - ">="
213
227
  - !ruby/object:Gem::Version
214
- version: 2.6.2
228
+ version: '0'
215
229
  - !ruby/object:Gem::Dependency
216
- name: factory_girl_rails
230
+ name: rubocop
217
231
  requirement: !ruby/object:Gem::Requirement
218
232
  requirements:
219
233
  - - ">="
@@ -227,7 +241,7 @@ dependencies:
227
241
  - !ruby/object:Gem::Version
228
242
  version: '0'
229
243
  - !ruby/object:Gem::Dependency
230
- name: database_cleaner
244
+ name: reek
231
245
  requirement: !ruby/object:Gem::Requirement
232
246
  requirements:
233
247
  - - ">="
@@ -241,7 +255,7 @@ dependencies:
241
255
  - !ruby/object:Gem::Version
242
256
  version: '0'
243
257
  - !ruby/object:Gem::Dependency
244
- name: byebug
258
+ name: devise
245
259
  requirement: !ruby/object:Gem::Requirement
246
260
  requirements:
247
261
  - - ">="
@@ -255,7 +269,7 @@ dependencies:
255
269
  - !ruby/object:Gem::Version
256
270
  version: '0'
257
271
  - !ruby/object:Gem::Dependency
258
- name: rubocop
272
+ name: codeclimate-test-reporter
259
273
  requirement: !ruby/object:Gem::Requirement
260
274
  requirements:
261
275
  - - ">="
@@ -269,7 +283,21 @@ dependencies:
269
283
  - !ruby/object:Gem::Version
270
284
  version: '0'
271
285
  - !ruby/object:Gem::Dependency
272
- name: devise
286
+ name: yard
287
+ requirement: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - ">="
290
+ - !ruby/object:Gem::Version
291
+ version: '0'
292
+ type: :development
293
+ prerelease: false
294
+ version_requirements: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - ">="
297
+ - !ruby/object:Gem::Version
298
+ version: '0'
299
+ - !ruby/object:Gem::Dependency
300
+ name: rack-mini-profiler
273
301
  requirement: !ruby/object:Gem::Requirement
274
302
  requirements:
275
303
  - - ">="
@@ -298,6 +326,7 @@ files:
298
326
  - app/controllers/adminable/application_controller.rb
299
327
  - app/controllers/adminable/resources_controller.rb
300
328
  - app/helpers/adminable/application_helper.rb
329
+ - app/models/concerns/adminable/resource_concern.rb
301
330
  - app/views/adminable/kaminari/_first_page.html.haml
302
331
  - app/views/adminable/kaminari/_last_page.html.haml
303
332
  - app/views/adminable/kaminari/_next_page.html.haml
@@ -309,6 +338,7 @@ files:
309
338
  - app/views/adminable/resources/edit.html.haml
310
339
  - app/views/adminable/resources/form/_belongs_to.html.haml
311
340
  - app/views/adminable/resources/form/_boolean.html.haml
341
+ - app/views/adminable/resources/form/_date.html.haml
312
342
  - app/views/adminable/resources/form/_datetime.html.haml
313
343
  - app/views/adminable/resources/form/_decimal.html.haml
314
344
  - app/views/adminable/resources/form/_float.html.haml
@@ -316,9 +346,12 @@ files:
316
346
  - app/views/adminable/resources/form/_integer.html.haml
317
347
  - app/views/adminable/resources/form/_string.html.haml
318
348
  - app/views/adminable/resources/form/_text.html.haml
349
+ - app/views/adminable/resources/form/_time.html.haml
350
+ - app/views/adminable/resources/form/_timestamp.html.haml
319
351
  - app/views/adminable/resources/index.html.haml
320
352
  - app/views/adminable/resources/index/_belongs_to.html.haml
321
353
  - app/views/adminable/resources/index/_boolean.html.haml
354
+ - app/views/adminable/resources/index/_date.html.haml
322
355
  - app/views/adminable/resources/index/_datetime.html.haml
323
356
  - app/views/adminable/resources/index/_decimal.html.haml
324
357
  - app/views/adminable/resources/index/_float.html.haml
@@ -326,12 +359,15 @@ files:
326
359
  - app/views/adminable/resources/index/_integer.html.haml
327
360
  - app/views/adminable/resources/index/_string.html.haml
328
361
  - app/views/adminable/resources/index/_text.html.haml
362
+ - app/views/adminable/resources/index/_time.html.haml
363
+ - app/views/adminable/resources/index/_timestamp.html.haml
329
364
  - app/views/adminable/resources/new.html.haml
330
365
  - app/views/adminable/shared/_alert.html.haml
331
366
  - app/views/adminable/shared/_label.html.haml
332
367
  - app/views/layouts/adminable/application.html.haml
333
368
  - config/initializers/haml.rb
334
369
  - config/locales/adminable.en.yml
370
+ - config/locales/adminable.ru.yml
335
371
  - config/routes.rb
336
372
  - lib/adminable.rb
337
373
  - lib/adminable/attributes/association.rb
@@ -339,6 +375,7 @@ files:
339
375
  - lib/adminable/attributes/collection.rb
340
376
  - lib/adminable/attributes/types/belongs_to.rb
341
377
  - lib/adminable/attributes/types/boolean.rb
378
+ - lib/adminable/attributes/types/date.rb
342
379
  - lib/adminable/attributes/types/datetime.rb
343
380
  - lib/adminable/attributes/types/decimal.rb
344
381
  - lib/adminable/attributes/types/float.rb
@@ -346,13 +383,20 @@ files:
346
383
  - lib/adminable/attributes/types/integer.rb
347
384
  - lib/adminable/attributes/types/string.rb
348
385
  - lib/adminable/attributes/types/text.rb
386
+ - lib/adminable/attributes/types/time.rb
387
+ - lib/adminable/attributes/types/timestamp.rb
349
388
  - lib/adminable/configuration.rb
350
389
  - lib/adminable/engine.rb
351
- - lib/adminable/extensions/devise.rb
390
+ - lib/adminable/errors.rb
391
+ - lib/adminable/presenters/base_presenter.rb
392
+ - lib/adminable/presenters/entries_presenter.rb
393
+ - lib/adminable/presenters/entry_presenter.rb
352
394
  - lib/adminable/resource.rb
353
395
  - lib/adminable/version.rb
354
- - lib/generators/cms/resource/templates/resource_controller.rb.erb
355
- - lib/generators/cms/resource_generator.rb
396
+ - lib/generators/adminable/install/templates/application_controller.rb
397
+ - lib/generators/adminable/install_generator.rb
398
+ - lib/generators/adminable/resource/templates/resource_controller.rb.erb
399
+ - lib/generators/adminable/resource_generator.rb
356
400
  homepage: https://github.com/droptheplot/adminable
357
401
  licenses:
358
402
  - MIT