adminable 0.0.1

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 (66) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +91 -0
  4. data/Rakefile +22 -0
  5. data/app/assets/javascripts/adminable/application.js +18 -0
  6. data/app/assets/javascripts/adminable/scripts.js +20 -0
  7. data/app/assets/stylesheets/adminable/application.scss +3 -0
  8. data/app/controllers/adminable/application_controller.rb +7 -0
  9. data/app/controllers/adminable/resources_controller.rb +93 -0
  10. data/app/helpers/adminable/application_helper.rb +4 -0
  11. data/app/views/adminable/kaminari/_first_page.html.haml +2 -0
  12. data/app/views/adminable/kaminari/_last_page.html.haml +2 -0
  13. data/app/views/adminable/kaminari/_next_page.html.haml +2 -0
  14. data/app/views/adminable/kaminari/_page.html.haml +6 -0
  15. data/app/views/adminable/kaminari/_paginator.html.haml +10 -0
  16. data/app/views/adminable/kaminari/_prev_page.html.haml +2 -0
  17. data/app/views/adminable/resources/_form.html.haml +14 -0
  18. data/app/views/adminable/resources/_search.html.haml +9 -0
  19. data/app/views/adminable/resources/edit.html.haml +5 -0
  20. data/app/views/adminable/resources/form/_belongs_to.html.haml +3 -0
  21. data/app/views/adminable/resources/form/_boolean.html.haml +3 -0
  22. data/app/views/adminable/resources/form/_datetime.html.haml +2 -0
  23. data/app/views/adminable/resources/form/_decimal.html.haml +2 -0
  24. data/app/views/adminable/resources/form/_float.html.haml +2 -0
  25. data/app/views/adminable/resources/form/_has_many.html.haml +9 -0
  26. data/app/views/adminable/resources/form/_integer.html.haml +2 -0
  27. data/app/views/adminable/resources/form/_string.html.haml +2 -0
  28. data/app/views/adminable/resources/form/_text.html.haml +2 -0
  29. data/app/views/adminable/resources/index.html.haml +35 -0
  30. data/app/views/adminable/resources/index/_belongs_to.html.haml +5 -0
  31. data/app/views/adminable/resources/index/_boolean.html.haml +2 -0
  32. data/app/views/adminable/resources/index/_datetime.html.haml +2 -0
  33. data/app/views/adminable/resources/index/_decimal.html.haml +1 -0
  34. data/app/views/adminable/resources/index/_float.html.haml +1 -0
  35. data/app/views/adminable/resources/index/_has_many.html.haml +3 -0
  36. data/app/views/adminable/resources/index/_integer.html.haml +1 -0
  37. data/app/views/adminable/resources/index/_string.html.haml +1 -0
  38. data/app/views/adminable/resources/index/_text.html.haml +1 -0
  39. data/app/views/adminable/resources/new.html.haml +5 -0
  40. data/app/views/adminable/shared/_alert.html.haml +4 -0
  41. data/app/views/adminable/shared/_label.html.haml +5 -0
  42. data/app/views/layouts/adminable/application.html.haml +40 -0
  43. data/config/initializers/haml.rb +3 -0
  44. data/config/locales/adminable.en.yml +18 -0
  45. data/config/routes.rb +7 -0
  46. data/lib/adminable.rb +33 -0
  47. data/lib/adminable/attributes/association.rb +21 -0
  48. data/lib/adminable/attributes/base.rb +42 -0
  49. data/lib/adminable/attributes/collection.rb +77 -0
  50. data/lib/adminable/attributes/types/belongs_to.rb +13 -0
  51. data/lib/adminable/attributes/types/boolean.rb +8 -0
  52. data/lib/adminable/attributes/types/datetime.rb +8 -0
  53. data/lib/adminable/attributes/types/decimal.rb +8 -0
  54. data/lib/adminable/attributes/types/float.rb +8 -0
  55. data/lib/adminable/attributes/types/has_many.rb +21 -0
  56. data/lib/adminable/attributes/types/integer.rb +8 -0
  57. data/lib/adminable/attributes/types/string.rb +8 -0
  58. data/lib/adminable/attributes/types/text.rb +8 -0
  59. data/lib/adminable/configuration.rb +19 -0
  60. data/lib/adminable/engine.rb +9 -0
  61. data/lib/adminable/extensions/devise.rb +24 -0
  62. data/lib/adminable/resource.rb +37 -0
  63. data/lib/adminable/version.rb +3 -0
  64. data/lib/generators/cms/resource/templates/resource_controller.rb.erb +2 -0
  65. data/lib/generators/cms/resource_generator.rb +28 -0
  66. metadata +381 -0
@@ -0,0 +1,24 @@
1
+ module Adminable
2
+ module Extensions
3
+ module Devise
4
+ def index
5
+ super.except!(:encrypted_password)
6
+
7
+ @index ||= super
8
+ end
9
+
10
+ def form
11
+ super.except!(:encrypted_password)
12
+ super[:password] = Adminable::Attributes::Types::String.new(:password)
13
+
14
+ @form ||= super
15
+ end
16
+
17
+ def ransack
18
+ super.except!(:encrypted_password)
19
+
20
+ @ransack ||= super
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,37 @@
1
+ module Adminable
2
+ class Resource
3
+ attr_reader :name, :model
4
+ attr_writer :attributes
5
+
6
+ def initialize(name)
7
+ @name = name
8
+ @model = name.classify.constantize
9
+
10
+ load_extensions
11
+ end
12
+
13
+ def route
14
+ @route ||= @model.name.underscore.pluralize.tr('/', '_')
15
+ end
16
+
17
+ def includes
18
+ @includes ||= if attributes.association.present?
19
+ attributes.association.map { |k, v| v.name }
20
+ else
21
+ false
22
+ end
23
+ end
24
+
25
+ def attributes
26
+ @attributes ||= Adminable::Attributes::Collection.new(@model)
27
+ 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
+ end
37
+ end
@@ -0,0 +1,3 @@
1
+ module Adminable
2
+ VERSION = '0.0.1'.freeze
3
+ end
@@ -0,0 +1,2 @@
1
+ class <%= resource_class %>Controller < Adminable::ResourcesController
2
+ end
@@ -0,0 +1,28 @@
1
+ require 'rails/generators/base'
2
+
3
+ module Adminable
4
+ module Generators
5
+ class ResourceGenerator < Rails::Generators::Base
6
+ source_root File.expand_path('../resource/templates', __FILE__)
7
+ argument :name, type: :string, default: 'post'
8
+
9
+ def create_controller
10
+ template('resource_controller.rb.erb', resource_file)
11
+ end
12
+
13
+ private
14
+
15
+ def resource_file
16
+ "app/controllers/adminable/#{resource_name}_controller.rb"
17
+ end
18
+
19
+ def resource_name
20
+ name.underscore.pluralize
21
+ end
22
+
23
+ def resource_class
24
+ "adminable/#{resource_name}".classify.pluralize
25
+ end
26
+ end
27
+ end
28
+ end
metadata ADDED
@@ -0,0 +1,381 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: adminable
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Sergey Novikov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-03-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4.2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5.1'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '4.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.1'
33
+ - !ruby/object:Gem::Dependency
34
+ name: haml-rails
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.9.0
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.9.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: sass-rails
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 5.0.4
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 5.0.4
61
+ - !ruby/object:Gem::Dependency
62
+ name: jquery-rails
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 4.0.4
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 4.0.4
75
+ - !ruby/object:Gem::Dependency
76
+ name: bootstrap
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 4.0.0.alpha3
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 4.0.0.alpha3
89
+ - !ruby/object:Gem::Dependency
90
+ name: rails-assets-tether
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 1.1.0
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 1.1.0
103
+ - !ruby/object:Gem::Dependency
104
+ name: faker
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 1.6.1
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 1.6.1
117
+ - !ruby/object:Gem::Dependency
118
+ name: coffee-rails
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: 4.1.1
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: 4.1.1
131
+ - !ruby/object:Gem::Dependency
132
+ name: babosa
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: 1.0.2
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: 1.0.2
145
+ - !ruby/object:Gem::Dependency
146
+ name: kaminari
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ type: :runtime
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: ransack
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: 1.7.0
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 1.7.0
173
+ - !ruby/object:Gem::Dependency
174
+ name: sqlite3
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ - !ruby/object:Gem::Dependency
188
+ name: rspec-rails
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ - !ruby/object:Gem::Dependency
202
+ name: capybara
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: 2.6.2
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: 2.6.2
215
+ - !ruby/object:Gem::Dependency
216
+ name: factory_girl_rails
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ type: :development
223
+ prerelease: false
224
+ version_requirements: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - ">="
227
+ - !ruby/object:Gem::Version
228
+ version: '0'
229
+ - !ruby/object:Gem::Dependency
230
+ name: database_cleaner
231
+ requirement: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - ">="
234
+ - !ruby/object:Gem::Version
235
+ version: '0'
236
+ type: :development
237
+ prerelease: false
238
+ version_requirements: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: '0'
243
+ - !ruby/object:Gem::Dependency
244
+ name: byebug
245
+ requirement: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - ">="
248
+ - !ruby/object:Gem::Version
249
+ version: '0'
250
+ type: :development
251
+ prerelease: false
252
+ version_requirements: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - ">="
255
+ - !ruby/object:Gem::Version
256
+ version: '0'
257
+ - !ruby/object:Gem::Dependency
258
+ name: rubocop
259
+ requirement: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - ">="
262
+ - !ruby/object:Gem::Version
263
+ version: '0'
264
+ type: :development
265
+ prerelease: false
266
+ version_requirements: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - ">="
269
+ - !ruby/object:Gem::Version
270
+ version: '0'
271
+ - !ruby/object:Gem::Dependency
272
+ name: devise
273
+ requirement: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - ">="
276
+ - !ruby/object:Gem::Version
277
+ version: '0'
278
+ type: :development
279
+ prerelease: false
280
+ version_requirements: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - ">="
283
+ - !ruby/object:Gem::Version
284
+ version: '0'
285
+ description: Simple admin interface for Ruby on Rails applications.
286
+ email:
287
+ - novikov359@gmail.com
288
+ executables: []
289
+ extensions: []
290
+ extra_rdoc_files: []
291
+ files:
292
+ - MIT-LICENSE
293
+ - README.md
294
+ - Rakefile
295
+ - app/assets/javascripts/adminable/application.js
296
+ - app/assets/javascripts/adminable/scripts.js
297
+ - app/assets/stylesheets/adminable/application.scss
298
+ - app/controllers/adminable/application_controller.rb
299
+ - app/controllers/adminable/resources_controller.rb
300
+ - app/helpers/adminable/application_helper.rb
301
+ - app/views/adminable/kaminari/_first_page.html.haml
302
+ - app/views/adminable/kaminari/_last_page.html.haml
303
+ - app/views/adminable/kaminari/_next_page.html.haml
304
+ - app/views/adminable/kaminari/_page.html.haml
305
+ - app/views/adminable/kaminari/_paginator.html.haml
306
+ - app/views/adminable/kaminari/_prev_page.html.haml
307
+ - app/views/adminable/resources/_form.html.haml
308
+ - app/views/adminable/resources/_search.html.haml
309
+ - app/views/adminable/resources/edit.html.haml
310
+ - app/views/adminable/resources/form/_belongs_to.html.haml
311
+ - app/views/adminable/resources/form/_boolean.html.haml
312
+ - app/views/adminable/resources/form/_datetime.html.haml
313
+ - app/views/adminable/resources/form/_decimal.html.haml
314
+ - app/views/adminable/resources/form/_float.html.haml
315
+ - app/views/adminable/resources/form/_has_many.html.haml
316
+ - app/views/adminable/resources/form/_integer.html.haml
317
+ - app/views/adminable/resources/form/_string.html.haml
318
+ - app/views/adminable/resources/form/_text.html.haml
319
+ - app/views/adminable/resources/index.html.haml
320
+ - app/views/adminable/resources/index/_belongs_to.html.haml
321
+ - app/views/adminable/resources/index/_boolean.html.haml
322
+ - app/views/adminable/resources/index/_datetime.html.haml
323
+ - app/views/adminable/resources/index/_decimal.html.haml
324
+ - app/views/adminable/resources/index/_float.html.haml
325
+ - app/views/adminable/resources/index/_has_many.html.haml
326
+ - app/views/adminable/resources/index/_integer.html.haml
327
+ - app/views/adminable/resources/index/_string.html.haml
328
+ - app/views/adminable/resources/index/_text.html.haml
329
+ - app/views/adminable/resources/new.html.haml
330
+ - app/views/adminable/shared/_alert.html.haml
331
+ - app/views/adminable/shared/_label.html.haml
332
+ - app/views/layouts/adminable/application.html.haml
333
+ - config/initializers/haml.rb
334
+ - config/locales/adminable.en.yml
335
+ - config/routes.rb
336
+ - lib/adminable.rb
337
+ - lib/adminable/attributes/association.rb
338
+ - lib/adminable/attributes/base.rb
339
+ - lib/adminable/attributes/collection.rb
340
+ - lib/adminable/attributes/types/belongs_to.rb
341
+ - lib/adminable/attributes/types/boolean.rb
342
+ - lib/adminable/attributes/types/datetime.rb
343
+ - lib/adminable/attributes/types/decimal.rb
344
+ - lib/adminable/attributes/types/float.rb
345
+ - lib/adminable/attributes/types/has_many.rb
346
+ - lib/adminable/attributes/types/integer.rb
347
+ - lib/adminable/attributes/types/string.rb
348
+ - lib/adminable/attributes/types/text.rb
349
+ - lib/adminable/configuration.rb
350
+ - lib/adminable/engine.rb
351
+ - lib/adminable/extensions/devise.rb
352
+ - lib/adminable/resource.rb
353
+ - lib/adminable/version.rb
354
+ - lib/generators/cms/resource/templates/resource_controller.rb.erb
355
+ - lib/generators/cms/resource_generator.rb
356
+ homepage: https://github.com/droptheplot/adminable
357
+ licenses:
358
+ - MIT
359
+ metadata: {}
360
+ post_install_message:
361
+ rdoc_options: []
362
+ require_paths:
363
+ - lib
364
+ required_ruby_version: !ruby/object:Gem::Requirement
365
+ requirements:
366
+ - - ">="
367
+ - !ruby/object:Gem::Version
368
+ version: '0'
369
+ required_rubygems_version: !ruby/object:Gem::Requirement
370
+ requirements:
371
+ - - ">="
372
+ - !ruby/object:Gem::Version
373
+ version: '0'
374
+ requirements: []
375
+ rubyforge_project:
376
+ rubygems_version: 2.4.8
377
+ signing_key:
378
+ specification_version: 4
379
+ summary: Simple admin interface for Ruby on Rails applications.
380
+ test_files: []
381
+ has_rdoc: