jabysoft-base 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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 -%>