jabysoft-base 0.1.4

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 (153) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/.rspec +3 -0
  4. data/CODE_OF_CONDUCT.md +49 -0
  5. data/Gemfile +6 -0
  6. data/Gemfile.lock +180 -0
  7. data/LICENSE +21 -0
  8. data/README.md +37 -0
  9. data/Rakefile +6 -0
  10. data/app/assets/javascripts/jabysoft.js +1 -0
  11. data/app/assets/stylesheets/jabysoft.sass +42 -0
  12. data/app/controllers/base_controller.rb +111 -0
  13. data/app/helpers/base_helper.rb +63 -0
  14. data/app/helpers/devise_helper.rb +17 -0
  15. data/app/helpers/links_helper.rb +84 -0
  16. data/app/helpers/render_helper.rb +19 -0
  17. data/app/models/concerns/extension_model_behaviour.rb +16 -0
  18. data/app/models/concerns/searchable_behaviour.rb +47 -0
  19. data/app/views/layouts/admin.html.haml +46 -0
  20. data/app/views/layouts/application.html.haml +31 -0
  21. data/app/views/shared/_datepicker_field.html.haml +9 -0
  22. data/app/views/shared/_layout.html.haml +7 -0
  23. data/app/views/shared/_messages.html.haml +7 -0
  24. data/app/views/shared/_panel.html.haml +5 -0
  25. data/app/views/shared/_search_form.html.haml +6 -0
  26. data/app/views/shared/form/_error_messages.html.haml +6 -0
  27. data/app/views/shared/modals/_delete_confirmation.html.haml +17 -0
  28. data/bin/console +14 -0
  29. data/bin/setup +8 -0
  30. data/config/locales/en.yml +35 -0
  31. data/config/locales/pt-BR.yml +35 -0
  32. data/jabysoft-base.gemspec +37 -0
  33. data/lib/generators/haml/scaffold/scaffold_generator.rb +36 -0
  34. data/lib/generators/jabysoft/setup/USAGE +19 -0
  35. data/lib/generators/jabysoft/setup/setup_generator.rb +57 -0
  36. data/lib/generators/jabysoft/setup/templates/.rspec +3 -0
  37. data/lib/generators/jabysoft/setup/templates/Gemfile +48 -0
  38. data/lib/generators/jabysoft/setup/templates/assets/stylesheets/base.scss +24 -0
  39. data/lib/generators/jabysoft/setup/templates/assets/stylesheets/bootstrap-variables.scss +875 -0
  40. data/lib/generators/jabysoft/setup/templates/layouts/admin.html.haml +46 -0
  41. data/lib/generators/jabysoft/setup/templates/layouts/application.html.haml +31 -0
  42. data/lib/generators/jabysoft/setup/templates/spec/rails_helper.rb +92 -0
  43. data/lib/generators/jabysoft/setup/templates/spec/spec_helper.rb +97 -0
  44. data/lib/generators/rspec/scaffold/scaffold_generator.rb +167 -0
  45. data/lib/jabysoft/base/version.rb +5 -0
  46. data/lib/jabysoft/base.rb +16 -0
  47. data/lib/templates/haml/scaffold/_form.html.haml +14 -0
  48. data/lib/templates/haml/scaffold/_index.html.haml +25 -0
  49. data/lib/templates/haml/scaffold/edit.html.haml +1 -0
  50. data/lib/templates/haml/scaffold/index.html.haml +1 -0
  51. data/lib/templates/haml/scaffold/new.html.haml +1 -0
  52. data/lib/templates/haml/scaffold/show.html.haml +1 -0
  53. data/lib/templates/rails/scaffold_controller/controller.rb +29 -0
  54. data/lib/templates/rspec/scaffold/controller_spec.rb +148 -0
  55. data/lib/templates/rspec/scaffold/model_spec.rb +14 -0
  56. data/lib/templates/rspec/scaffold/request_spec.rb +10 -0
  57. data/lib/templates/rspec/scaffold/routing_spec.rb +44 -0
  58. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  59. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +288 -0
  60. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  61. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  62. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  63. data/vendor/assets/images/.keep +0 -0
  64. data/vendor/assets/javascripts/bootstrap/affix.js +162 -0
  65. data/vendor/assets/javascripts/bootstrap/alert.js +94 -0
  66. data/vendor/assets/javascripts/bootstrap/button.js +120 -0
  67. data/vendor/assets/javascripts/bootstrap/carousel.js +237 -0
  68. data/vendor/assets/javascripts/bootstrap/collapse.js +211 -0
  69. data/vendor/assets/javascripts/bootstrap/dropdown.js +165 -0
  70. data/vendor/assets/javascripts/bootstrap/modal.js +337 -0
  71. data/vendor/assets/javascripts/bootstrap/popover.js +108 -0
  72. data/vendor/assets/javascripts/bootstrap/scrollspy.js +172 -0
  73. data/vendor/assets/javascripts/bootstrap/tab.js +155 -0
  74. data/vendor/assets/javascripts/bootstrap/tooltip.js +514 -0
  75. data/vendor/assets/javascripts/bootstrap/transition.js +59 -0
  76. data/vendor/assets/javascripts/bootstrap-sprockets.js +12 -0
  77. data/vendor/assets/javascripts/bootstrap.js +2363 -0
  78. data/vendor/assets/javascripts/bootstrap.min.js +7 -0
  79. data/vendor/assets/stylesheets/_bootstrap-compass.scss +9 -0
  80. data/vendor/assets/stylesheets/_bootstrap-mincer.scss +19 -0
  81. data/vendor/assets/stylesheets/_bootstrap-sprockets.scss +9 -0
  82. data/vendor/assets/stylesheets/_bootstrap.scss +56 -0
  83. data/vendor/assets/stylesheets/bootstrap/_alerts.scss +73 -0
  84. data/vendor/assets/stylesheets/bootstrap/_badges.scss +68 -0
  85. data/vendor/assets/stylesheets/bootstrap/_breadcrumbs.scss +28 -0
  86. data/vendor/assets/stylesheets/bootstrap/_button-groups.scss +244 -0
  87. data/vendor/assets/stylesheets/bootstrap/_buttons.scss +168 -0
  88. data/vendor/assets/stylesheets/bootstrap/_carousel.scss +270 -0
  89. data/vendor/assets/stylesheets/bootstrap/_close.scss +36 -0
  90. data/vendor/assets/stylesheets/bootstrap/_code.scss +69 -0
  91. data/vendor/assets/stylesheets/bootstrap/_component-animations.scss +37 -0
  92. data/vendor/assets/stylesheets/bootstrap/_dropdowns.scss +216 -0
  93. data/vendor/assets/stylesheets/bootstrap/_forms.scss +617 -0
  94. data/vendor/assets/stylesheets/bootstrap/_glyphicons.scss +307 -0
  95. data/vendor/assets/stylesheets/bootstrap/_grid.scss +84 -0
  96. data/vendor/assets/stylesheets/bootstrap/_input-groups.scss +171 -0
  97. data/vendor/assets/stylesheets/bootstrap/_jumbotron.scss +54 -0
  98. data/vendor/assets/stylesheets/bootstrap/_labels.scss +66 -0
  99. data/vendor/assets/stylesheets/bootstrap/_list-group.scss +130 -0
  100. data/vendor/assets/stylesheets/bootstrap/_media.scss +66 -0
  101. data/vendor/assets/stylesheets/bootstrap/_mixins.scss +40 -0
  102. data/vendor/assets/stylesheets/bootstrap/_modals.scss +150 -0
  103. data/vendor/assets/stylesheets/bootstrap/_navbar.scss +662 -0
  104. data/vendor/assets/stylesheets/bootstrap/_navs.scss +242 -0
  105. data/vendor/assets/stylesheets/bootstrap/_normalize.scss +424 -0
  106. data/vendor/assets/stylesheets/bootstrap/_pager.scss +54 -0
  107. data/vendor/assets/stylesheets/bootstrap/_pagination.scss +89 -0
  108. data/vendor/assets/stylesheets/bootstrap/_panels.scss +271 -0
  109. data/vendor/assets/stylesheets/bootstrap/_popovers.scss +131 -0
  110. data/vendor/assets/stylesheets/bootstrap/_print.scss +101 -0
  111. data/vendor/assets/stylesheets/bootstrap/_progress-bars.scss +87 -0
  112. data/vendor/assets/stylesheets/bootstrap/_responsive-embed.scss +35 -0
  113. data/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss +179 -0
  114. data/vendor/assets/stylesheets/bootstrap/_scaffolding.scss +161 -0
  115. data/vendor/assets/stylesheets/bootstrap/_tables.scss +234 -0
  116. data/vendor/assets/stylesheets/bootstrap/_theme.scss +291 -0
  117. data/vendor/assets/stylesheets/bootstrap/_thumbnails.scss +38 -0
  118. data/vendor/assets/stylesheets/bootstrap/_tooltip.scss +101 -0
  119. data/vendor/assets/stylesheets/bootstrap/_type.scss +298 -0
  120. data/vendor/assets/stylesheets/bootstrap/_utilities.scss +55 -0
  121. data/vendor/assets/stylesheets/bootstrap/_variables.scss +874 -0
  122. data/vendor/assets/stylesheets/bootstrap/_wells.scss +29 -0
  123. data/vendor/assets/stylesheets/bootstrap/mixins/_alerts.scss +14 -0
  124. data/vendor/assets/stylesheets/bootstrap/mixins/_background-variant.scss +12 -0
  125. data/vendor/assets/stylesheets/bootstrap/mixins/_border-radius.scss +18 -0
  126. data/vendor/assets/stylesheets/bootstrap/mixins/_buttons.scss +65 -0
  127. data/vendor/assets/stylesheets/bootstrap/mixins/_center-block.scss +7 -0
  128. data/vendor/assets/stylesheets/bootstrap/mixins/_clearfix.scss +22 -0
  129. data/vendor/assets/stylesheets/bootstrap/mixins/_forms.scss +88 -0
  130. data/vendor/assets/stylesheets/bootstrap/mixins/_gradients.scss +58 -0
  131. data/vendor/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +81 -0
  132. data/vendor/assets/stylesheets/bootstrap/mixins/_grid.scss +122 -0
  133. data/vendor/assets/stylesheets/bootstrap/mixins/_hide-text.scss +21 -0
  134. data/vendor/assets/stylesheets/bootstrap/mixins/_image.scss +33 -0
  135. data/vendor/assets/stylesheets/bootstrap/mixins/_labels.scss +12 -0
  136. data/vendor/assets/stylesheets/bootstrap/mixins/_list-group.scss +32 -0
  137. data/vendor/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  138. data/vendor/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  139. data/vendor/assets/stylesheets/bootstrap/mixins/_opacity.scss +8 -0
  140. data/vendor/assets/stylesheets/bootstrap/mixins/_pagination.scss +24 -0
  141. data/vendor/assets/stylesheets/bootstrap/mixins/_panels.scss +24 -0
  142. data/vendor/assets/stylesheets/bootstrap/mixins/_progress-bar.scss +10 -0
  143. data/vendor/assets/stylesheets/bootstrap/mixins/_reset-filter.scss +8 -0
  144. data/vendor/assets/stylesheets/bootstrap/mixins/_reset-text.scss +18 -0
  145. data/vendor/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  146. data/vendor/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +21 -0
  147. data/vendor/assets/stylesheets/bootstrap/mixins/_size.scss +10 -0
  148. data/vendor/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +9 -0
  149. data/vendor/assets/stylesheets/bootstrap/mixins/_table-row.scss +28 -0
  150. data/vendor/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +12 -0
  151. data/vendor/assets/stylesheets/bootstrap/mixins/_text-overflow.scss +8 -0
  152. data/vendor/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  153. metadata +308 -0
@@ -0,0 +1,148 @@
1
+ require 'rails_helper'
2
+
3
+ # This spec was generated by jabysoft-base
4
+
5
+ <% module_namespacing do -%>
6
+ RSpec.describe <%= controller_class_name %>Controller, <%= type_metatag(:controller) %> do
7
+ # This should return the minimal set of attributes required to create a valid
8
+ # <%= class_name %>. As you add validations to <%= class_name %>, be sure to
9
+ # adjust the attributes here as well.
10
+ let(:valid_attributes) {
11
+ build(:<%= file_name %>).attributes
12
+ }
13
+
14
+ let(:invalid_attributes) {
15
+ skip("Add a hash of attributes invalid for your model")
16
+ }
17
+ # This should return the minimal set of values that should be in the session
18
+ # in order to pass any filters (e.g. authentication) defined in
19
+ # <%= controller_class_name %>Controller. Be sure to keep this updated too.
20
+ let(:valid_session) { {} }
21
+
22
+ <% unless options[:singleton] -%>
23
+ describe 'GET #index' do
24
+ it 'renders the index template' do
25
+ get :index
26
+ expect(response).to render_template(:index)
27
+ end
28
+
29
+ it 'returns http 200' do
30
+ get :index
31
+ expect(response).to have_http_status(:success)
32
+ end
33
+ end
34
+
35
+ <% end -%>
36
+ describe 'GET #show' do
37
+ let(:<%= file_name %>) { <%= class_name %>.create! valid_attributes }
38
+
39
+ it 'renders the show template' do
40
+ get :show, params: {id: <%= file_name %>.to_param}
41
+ expect(response).to render_template(:show)
42
+ end
43
+
44
+ it 'returns http 200' do
45
+ get :show, params: {id: <%= file_name %>.to_param}
46
+ expect(response).to have_http_status(:success)
47
+ end
48
+ end
49
+
50
+ describe 'GET #new' do
51
+ it 'renders the new template' do
52
+ get :new, params: {}
53
+ expect(response).to render_template(:new)
54
+ end
55
+
56
+ it 'returns http 200' do
57
+ get :new, params: {}
58
+ expect(response).to have_http_status(:success)
59
+ end
60
+ end
61
+
62
+ describe 'GET #edit' do
63
+ let(:<%= file_name %>) { <%= class_name %>.create! valid_attributes }
64
+
65
+ it 'renders the edit template' do
66
+ get :edit, params: {id: <%= file_name %>.to_param}
67
+ expect(response).to render_template(:edit)
68
+ end
69
+
70
+ it 'returns http 200' do
71
+ get :edit, params: {id: <%= file_name %>.to_param}
72
+ expect(response).to have_http_status(:success)
73
+ end
74
+ end
75
+
76
+ describe 'POST #create' do
77
+ context 'with valid params' do
78
+ it 'creates a new <%= class_name %>' do
79
+ expect {
80
+ post :create, params: {<%= ns_file_name %>: valid_attributes}, session: valid_session
81
+ }.to change(<%= class_name %>, :count).by(1)
82
+ end
83
+
84
+ it '<%= class_name %> should be found in database' do
85
+ post :create, params: {<%= ns_file_name %>: valid_attributes}, session: valid_session
86
+ <%= ns_file_name %> = <%= class_name %>.last
87
+ expect(<%= ns_file_name %>.id.present?).to be true
88
+ end
89
+
90
+ it 'redirects to the created <%= ns_file_name %>' do
91
+ post :create, params: {<%= ns_file_name %>: valid_attributes}, session: valid_session
92
+ expect(response).to redirect_to(<%= class_name %>.last)
93
+ end
94
+ end
95
+
96
+ context 'with invalid params' do
97
+ it "re-renders the 'new' template" do
98
+ post :create, params: {<%= ns_file_name %>: invalid_attributes}, session: valid_session
99
+ expect(response).to render_template(:new)
100
+ end
101
+ end
102
+ end
103
+
104
+ describe 'PUT #update' do
105
+ context 'with valid params' do
106
+ let(:new_attributes) {
107
+ skip("Add a hash of attributes valid for your model")
108
+ }
109
+
110
+ it 'updates the requested <%= ns_file_name %>' do
111
+ <%= file_name %> = <%= class_name %>.create! valid_attributes
112
+ put :update, params: {id: <%= file_name %>.to_param, <%= ns_file_name %>: new_attributes}, session: valid_session
113
+ <%= file_name %>.reload
114
+ skip("Add assertions for updated state")
115
+ end
116
+
117
+ it 'redirects to the <%= ns_file_name %>' do
118
+ <%= file_name %> = <%= class_name %>.create! valid_attributes
119
+ put :update, params: {id: <%= file_name %>.to_param, <%= ns_file_name %>: valid_attributes}, session: valid_session
120
+ expect(response).to redirect_to(<%= file_name %>)
121
+ end
122
+ end
123
+
124
+ context 'with invalid params' do
125
+ it "re-renders the 'edit' template" do
126
+ <%= file_name %> = <%= class_name %>.create! valid_attributes
127
+ put :update, params: {id: <%= file_name %>.to_param, <%= ns_file_name %>: invalid_attributes}, session: valid_session
128
+ expect(response).to render_template('edit')
129
+ end
130
+ end
131
+ end
132
+
133
+ describe 'DELETE #destroy' do
134
+ it 'destroys the requested <%= ns_file_name %>' do
135
+ <%= file_name %> = <%= class_name %>.create! valid_attributes
136
+ expect {
137
+ delete :destroy, params: {id: <%= file_name %>.to_param}, session: valid_session
138
+ }.to change(<%= class_name %>, :count).by(-1)
139
+ expect(<%= class_name %>.find_by(id: <%= file_name %>.to_param)).to be nil
140
+ end
141
+ it 'redirects to the <%= table_name %> list' do
142
+ <%= file_name %> = <%= class_name %>.create! valid_attributes
143
+ delete :destroy, params: {id: <%= file_name %>.to_param}, session: valid_session
144
+ expect(response).to redirect_to(<%= index_helper %>_url)
145
+ end
146
+ end
147
+ end
148
+ <% end -%>
@@ -0,0 +1,14 @@
1
+ require 'rails_helper'
2
+
3
+ <% module_namespacing do -%>
4
+ RSpec.describe <%= class_name %>, <%= type_metatag(:model) %> do
5
+ pending "add some examples to (or delete) #{__FILE__}"
6
+
7
+ describe 'Relationships' do
8
+ end
9
+
10
+ describe 'Validations' do
11
+ end
12
+
13
+ end
14
+ <% end -%>
@@ -0,0 +1,10 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe '<%= class_name.pluralize %>', <%= type_metatag(:request) %> do
4
+ describe 'GET /<%= table_name %>' do
5
+ it 'works! (now write some real specs)' do
6
+ get <%= index_helper %>_path
7
+ expect(response).to have_http_status(200)
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,44 @@
1
+ require 'rails_helper'
2
+
3
+ <% module_namespacing do -%>
4
+ RSpec.describe <%= controller_class_name %>Controller, <%= type_metatag(:routing) %> do
5
+ describe 'routing' do
6
+ <% unless options[:singleton] -%>
7
+ it 'routes to #index' do
8
+ expect(get: '/<%= ns_table_name %>').to route_to('<%= ns_table_name %>#index')
9
+ end
10
+
11
+ <% end -%>
12
+ it 'routes to #new' do
13
+ expect(get: '/<%= ns_table_name %>/new').to route_to('<%= ns_table_name %>#new')
14
+ end
15
+
16
+ it 'routes to #show' do
17
+ expect(get: '/<%= ns_table_name %>/1').to route_to('<%= ns_table_name %>#show', id: '1')
18
+ end
19
+
20
+ it 'routes to #edit' do
21
+ expect(get: '/<%= ns_table_name %>/1/edit').to route_to('<%= ns_table_name %>#edit', id: '1')
22
+ end
23
+
24
+ it 'routes to #create' do
25
+ expect(post: '/<%= ns_table_name %>').to route_to('<%= ns_table_name %>#create')
26
+ end
27
+
28
+ it 'routes to #update via PUT' do
29
+ expect(put: '/<%= ns_table_name %>/1').to route_to('<%= ns_table_name %>#update', id: '1')
30
+ end
31
+
32
+ <% if Rails::VERSION::STRING > '4' -%>
33
+ it 'routes to #update via PATCH' do
34
+ expect(patch: '/<%= ns_table_name %>/1').to route_to('<%= ns_table_name %>#update', id: '1')
35
+ end
36
+
37
+ <% end -%>
38
+ it 'routes to #destroy' do
39
+ expect(delete: '/<%= ns_table_name %>/1').to route_to('<%= ns_table_name %>#destroy', id: '1')
40
+ end
41
+
42
+ end
43
+ end
44
+ <% end -%>