maquina 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +28 -0
  4. data/Rakefile +8 -0
  5. data/app/assets/images/maquina/maquina.svg +18 -0
  6. data/app/assets/javascripts/maquina/application.js +4 -0
  7. data/app/assets/javascripts/maquina/controllers/alert_controller.js +29 -0
  8. data/app/assets/javascripts/maquina/controllers/application.js +9 -0
  9. data/app/assets/javascripts/maquina/controllers/file_controller.js +60 -0
  10. data/app/assets/javascripts/maquina/controllers/index.js +11 -0
  11. data/app/assets/javascripts/maquina/controllers/mobile_menu_controller.js +31 -0
  12. data/app/assets/javascripts/maquina/controllers/modal_controller.js +39 -0
  13. data/app/assets/javascripts/maquina/controllers/modal_open_controller.js +15 -0
  14. data/app/assets/javascripts/maquina/controllers/popup_menu_controller.js +17 -0
  15. data/app/assets/javascripts/maquina/controllers/submit_form_controller.js +11 -0
  16. data/app/assets/stylesheets/maquina/application.css +15 -0
  17. data/app/assets/stylesheets/maquina/application.tailwind.css +102 -0
  18. data/app/controllers/concerns/maquina/authenticate.rb +41 -0
  19. data/app/controllers/concerns/maquina/create.rb +27 -0
  20. data/app/controllers/concerns/maquina/destroy.rb +28 -0
  21. data/app/controllers/concerns/maquina/edit.rb +29 -0
  22. data/app/controllers/concerns/maquina/index.rb +33 -0
  23. data/app/controllers/concerns/maquina/new.rb +22 -0
  24. data/app/controllers/concerns/maquina/resourceful.rb +180 -0
  25. data/app/controllers/concerns/maquina/show.rb +27 -0
  26. data/app/controllers/concerns/maquina/update.rb +31 -0
  27. data/app/controllers/maquina/accept_invitations_controller.rb +28 -0
  28. data/app/controllers/maquina/application_controller.rb +19 -0
  29. data/app/controllers/maquina/dashboard_controller.rb +16 -0
  30. data/app/controllers/maquina/invitations_controller.rb +51 -0
  31. data/app/controllers/maquina/plans_controller.rb +56 -0
  32. data/app/controllers/maquina/sessions_controller.rb +56 -0
  33. data/app/controllers/maquina/unauthorized_controller.rb +9 -0
  34. data/app/controllers/maquina/users_controller.rb +24 -0
  35. data/app/helpers/maquina/application_helper.rb +19 -0
  36. data/app/helpers/maquina/navbar_menu_helper.rb +29 -0
  37. data/app/helpers/maquina/views_helper.rb +9 -0
  38. data/app/jobs/maquina/application_job.rb +4 -0
  39. data/app/mailers/maquina/application_mailer.rb +8 -0
  40. data/app/mailers/maquina/user_notifications_mailer.rb +16 -0
  41. data/app/models/concerns/maquina/authenticate_by.rb +33 -0
  42. data/app/models/concerns/maquina/blockeable.rb +28 -0
  43. data/app/models/concerns/maquina/multifactor.rb +80 -0
  44. data/app/models/concerns/maquina/retain_passwords.rb +32 -0
  45. data/app/models/concerns/maquina/searchable.rb +24 -0
  46. data/app/models/maquina/active_session.rb +33 -0
  47. data/app/models/maquina/application_record.rb +11 -0
  48. data/app/models/maquina/current.rb +21 -0
  49. data/app/models/maquina/invitation.rb +15 -0
  50. data/app/models/maquina/plan.rb +38 -0
  51. data/app/models/maquina/used_password.rb +17 -0
  52. data/app/models/maquina/user.rb +33 -0
  53. data/app/policies/maquina/application_policy.rb +50 -0
  54. data/app/policies/maquina/invitation_policy.rb +13 -0
  55. data/app/policies/maquina/navigation_policy.rb +13 -0
  56. data/app/policies/maquina/plan_policy.rb +49 -0
  57. data/app/policies/maquina/user_policy.rb +27 -0
  58. data/app/views/layouts/maquina/application.html.erb +26 -0
  59. data/app/views/layouts/maquina/mailer.html.erb +377 -0
  60. data/app/views/layouts/maquina/mailer.text.erb +12 -0
  61. data/app/views/layouts/maquina/sessions.html.erb +24 -0
  62. data/app/views/maquina/accept_invitations/new.html.erb +9 -0
  63. data/app/views/maquina/accept_invitations/new_view.rb +41 -0
  64. data/app/views/maquina/application/_navbar.html.erb +21 -0
  65. data/app/views/maquina/application/alert.rb +104 -0
  66. data/app/views/maquina/application/components/action_text_component.rb +20 -0
  67. data/app/views/maquina/application/components/checkbox_component.rb +21 -0
  68. data/app/views/maquina/application/components/component_base.rb +60 -0
  69. data/app/views/maquina/application/components/file_component.rb +59 -0
  70. data/app/views/maquina/application/components/input_component.rb +20 -0
  71. data/app/views/maquina/application/components/select_component.rb +44 -0
  72. data/app/views/maquina/application/create.turbo_stream.erb +11 -0
  73. data/app/views/maquina/application/edit.html.erb +9 -0
  74. data/app/views/maquina/application/edit.rb +17 -0
  75. data/app/views/maquina/application/form.rb +77 -0
  76. data/app/views/maquina/application/index.html.erb +10 -0
  77. data/app/views/maquina/application/index_header.rb +46 -0
  78. data/app/views/maquina/application/index_modal.rb +43 -0
  79. data/app/views/maquina/application/index_table.rb +121 -0
  80. data/app/views/maquina/application/new.html.erb +9 -0
  81. data/app/views/maquina/application/new.rb +18 -0
  82. data/app/views/maquina/application/sessions_header.rb +31 -0
  83. data/app/views/maquina/application/show.html.erb +1 -0
  84. data/app/views/maquina/application/update.turbo_stream.erb +11 -0
  85. data/app/views/maquina/application_view.rb +46 -0
  86. data/app/views/maquina/dashboard/index.html.erb +0 -0
  87. data/app/views/maquina/invitations/create.turbo_stream.erb +13 -0
  88. data/app/views/maquina/invitations/new.html.erb +3 -0
  89. data/app/views/maquina/navbar/menu.rb +62 -0
  90. data/app/views/maquina/navbar/menu_item_link.rb +34 -0
  91. data/app/views/maquina/navbar/mobile_button.rb +29 -0
  92. data/app/views/maquina/navbar/mobile_menu.rb +47 -0
  93. data/app/views/maquina/navbar/notification.rb +37 -0
  94. data/app/views/maquina/navbar/profile.rb +16 -0
  95. data/app/views/maquina/navbar/profile_button.rb +24 -0
  96. data/app/views/maquina/navbar/profile_menu.rb +108 -0
  97. data/app/views/maquina/navbar/profile_menu_item_link.rb +41 -0
  98. data/app/views/maquina/navbar/search.rb +40 -0
  99. data/app/views/maquina/navbar/title.rb +22 -0
  100. data/app/views/maquina/sessions/create.turbo_stream.erb +11 -0
  101. data/app/views/maquina/sessions/form.rb +56 -0
  102. data/app/views/maquina/sessions/new.html.erb +9 -0
  103. data/app/views/maquina/unauthorized/401.html.erb +1 -0
  104. data/app/views/maquina/user_notifications_mailer/invitation_email.html.erb +40 -0
  105. data/app/views/maquina/user_notifications_mailer/invitation_email.text.erb +12 -0
  106. data/config/definitions.rb +1 -0
  107. data/config/initializers/importmap.rb +17 -0
  108. data/config/initializers/money.rb +116 -0
  109. data/config/initializers/pagy.rb +235 -0
  110. data/config/locales/flash.en.yml +44 -0
  111. data/config/locales/forms.en.yml +58 -0
  112. data/config/locales/mailers.en.yml +35 -0
  113. data/config/locales/models.en.yml +34 -0
  114. data/config/locales/routes.en.yml +7 -0
  115. data/config/locales/views.en.yml +45 -0
  116. data/config/routes.rb +17 -0
  117. data/db/migrate/20221109010726_create_maquina_plans.rb +13 -0
  118. data/db/migrate/20221113000409_create_maquina_users.rb +19 -0
  119. data/db/migrate/20221113020108_create_maquina_used_passwords.rb +10 -0
  120. data/db/migrate/20221115223414_create_maquina_active_sessions.rb +15 -0
  121. data/db/migrate/20230201203922_create_maquina_invitations.rb +12 -0
  122. data/db/schema.rb +1 -0
  123. data/lib/generators/maquina/install_generator.rb +32 -0
  124. data/lib/generators/maquina/install_templates/install_templates_generator.rb +31 -0
  125. data/lib/generators/maquina/tailwind_config/tailwind_config_generator.rb +11 -0
  126. data/lib/generators/maquina/tailwind_config/templates/app/assets/config/maquina/tailwind.config.js.tt +68 -0
  127. data/lib/generators/maquina/templates/config/initializers/maquina.rb +3 -0
  128. data/lib/maquina/engine.rb +17 -0
  129. data/lib/maquina/version.rb +3 -0
  130. data/lib/maquina.rb +48 -0
  131. data/lib/tasks/install.rake +19 -0
  132. data/lib/tasks/maquina_tasks.rake +4 -0
  133. data/lib/tasks/tailwind.rake +25 -0
  134. metadata +456 -0
@@ -0,0 +1,68 @@
1
+ const defaultTheme = require('tailwindcss/defaultTheme')
2
+
3
+ module.exports = {
4
+ content: [
5
+ <%= Maquina.configuration.tailwind_content.map{|path| "'#{path}'"}.join(",\n") %>
6
+ ],
7
+ theme: {
8
+ extend: {
9
+ fontFamily: {
10
+ sans: ['Inter var', ...defaultTheme.fontFamily.sans],
11
+ },
12
+ textColor: {
13
+ skin: {
14
+ inverted: 'rgb(var(--color-inverted) / <alpha-value>)',
15
+ accented: 'rgb(var(--color-accented) / <alpha-value>)',
16
+ 'accented-hover': 'rgb(var(--color-accented-hover) / <alpha-value>)',
17
+ base: 'rgb(var(--color-base) / <alpha-value>)',
18
+ muted: 'rgb(var(--color-muted) / <alpha-value>)',
19
+ dimmed: 'rgb(var(--color-dimmed) / <alpha-value>)',
20
+ error: 'rgb(var(--color-error) / <alpha-value>)',
21
+ }
22
+ },
23
+ textDecorationColor: {
24
+ skin: {
25
+ accented: 'rgb(var(--color-accented) / <alpha-value>)',
26
+ }
27
+ },
28
+ backgroundColor: {
29
+ skin: {
30
+ 'button-accented': 'rgb(var(--color-accented) / <alpha-value>)',
31
+ 'button-accented-hover': 'rgb(var(--color-accented-hover) / <alpha-value>)',
32
+ 'button-inverted': 'rgb(var(--color-inverted) / <alpha-value>)',
33
+ 'button-inverted-hover': 'rgb(var(--color-inverted-hover) / <alpha-value>)',
34
+ 'button-caution': 'rgb(var(--color-error) / <alpha-value>)',
35
+ 'button-caution-hover': 'rgb(var(--color-error-hover) / <alpha-value>)',
36
+ muted: 'rgb(var(--color-muted) / <alpha-value>)',
37
+ dimmed: 'rgb(var(--color-dimmed) / <alpha-value>)',
38
+ accented: 'rgb(var(--color-accented) / <alpha-value>)',
39
+ 'accented-hover': 'rgb(var(--color-accented-hover) / <alpha-value>)',
40
+ }
41
+ },
42
+ ringColor: {
43
+ skin: {
44
+ accented: 'rgb(var(--color-border-accented) / <alpha-value>)',
45
+ inverted: 'rgb(var(--color-inverted) / <alpha-value>)',
46
+ error: 'rgb(var(--color-error) / <alpha-value>)',
47
+ }
48
+ },
49
+ borderColor: {
50
+ skin: {
51
+ base: 'rgb(var(--color-border-base) / <alpha-value>)',
52
+ error: 'rgb(var(--color-error) / <alpha-value>)',
53
+ accented: 'rgb(var(--color-border-accented) / <alpha-value>)',
54
+ }
55
+ },
56
+ textDecorationColor: {
57
+ skin: {
58
+ accented: 'rgb(var(--color-border-accented) / <alpha-value>)'
59
+ }
60
+ }
61
+ },
62
+ },
63
+ plugins: [
64
+ require('@tailwindcss/forms'),
65
+ require('@tailwindcss/aspect-ratio'),
66
+ require('@tailwindcss/typography')
67
+ ],
68
+ }
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ # TODO: Have and initializer
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "importmap-rails"
4
+ require "turbo-rails"
5
+ require "stimulus-rails"
6
+ require "phlex-rails"
7
+
8
+ module Maquina
9
+ class Engine < ::Rails::Engine
10
+ config.autoload_paths += %W[#{Engine.root}/app/views]
11
+ isolate_namespace Maquina
12
+
13
+ initializer "maquina.importmap", before: "importmap" do |app|
14
+ app.config.importmap.paths << Engine.root.join("config/initializers/importmap.rb")
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,3 @@
1
+ module Maquina
2
+ VERSION = "0.1.0"
3
+ end
data/lib/maquina.rb ADDED
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "maquina/version"
4
+ require_relative "maquina/engine"
5
+ require "importmap-rails"
6
+ require "money-rails"
7
+ require "turbo-rails"
8
+ require "action_policy"
9
+ require "pagy"
10
+
11
+ module Maquina
12
+ class << self
13
+ attr_accessor :configuration
14
+ end
15
+
16
+ class Configuration
17
+ attr_accessor :password_retain_count, :temporary_block, :session_expiration, :signin_attempts, :tailwind_content,
18
+ :importmap, :root_app_path
19
+
20
+ def initialize
21
+ @password_retain_count = 3
22
+ @temporary_block = 5.minutes
23
+ @session_expiration = 2.days
24
+ @signin_attempts = 5
25
+ @importmap = Importmap::Map.new
26
+ @root_app_path = nil
27
+
28
+ @tailwind_content = [
29
+ "#{Maquina::Engine.root}/app/views/**/*.{rb,erb}",
30
+ "#{Maquina::Engine.root}/app/helpers/**/*.rb",
31
+ "#{Maquina::Engine.root}/app/controllers/**/*.rb",
32
+ "#{Maquina::Engine.root}/app/javascript/**/*.js",
33
+ "#{Maquina::Engine.root}/app/assets/**/application.tailwind.css"
34
+ ]
35
+ end
36
+ end
37
+
38
+ def self.init_config
39
+ self.configuration ||= Configuration.new
40
+ end
41
+
42
+ def self.configure
43
+ init_config
44
+ yield(configuration)
45
+ end
46
+ end
47
+
48
+ Maquina.init_config
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :maquina do
4
+ desc "Install Maquina"
5
+ task install: :environment do
6
+ ActiveRecord::Base.connection
7
+ rescue ActiveRecord::NoDatabaseError
8
+ puts "ERROR: database does not exist, run 'rails db:create' first"
9
+ else
10
+ Rails::Command.invoke :generate, ["maquina:install"]
11
+ end
12
+
13
+ namespace :install do
14
+ desc "Copy templates from maquina to application"
15
+ task copy_templates: :environment do
16
+ Rails::Command.invoke :generate, ["maquina:install_templates"]
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :maquina do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "tailwindcss-rails"
4
+
5
+ TAILWIND_COMPILE_COMMAND = "#{Tailwindcss::Engine.root.join("exe/tailwindcss")} -i #{Maquina::Engine.root.join("app/assets/stylesheets/maquina/application.tailwind.css")} -o #{Rails.root.join("app/assets/builds", "maquina/tailwind.css")} -c #{Rails.root.join("app/assets/config/maquina/tailwind.config.js")}"
6
+
7
+ namespace :maquina do
8
+ namespace :tailwindcss do
9
+ desc "Build your Tailwind CSS"
10
+ task :build do
11
+ Rails::Generators.invoke("maquina:tailwind_config", ["--force"])
12
+ system TAILWIND_COMPILE_COMMAND
13
+ end
14
+
15
+ desc "Watch and build your Tailwind CSS"
16
+ task :watch do
17
+ Rails::Generators.invoke("maquina:tailwind_config", ["--force"])
18
+ system "#{TAILWIND_COMPILE_COMMAND} -w"
19
+ end
20
+ end
21
+ end
22
+
23
+ if Rake::Task.task_defined?("assets:precompile")
24
+ Rake::Task["assets:precompile"].enhance(["maquina:tailwindcss:build"])
25
+ end
metadata ADDED
@@ -0,0 +1,456 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: maquina
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Mario Alberto Chávez
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-08-08 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: 7.0.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 7.0.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: bcrypt
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 3.1.7
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 3.1.7
41
+ - !ruby/object:Gem::Dependency
42
+ name: money-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.15.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.15.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: turbo-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.3.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.3.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: stimulus-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.2.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 1.2.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: importmap-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 1.1.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 1.1.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: tailwindcss-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 2.0.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 2.0.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: pg_search
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 2.3.0
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 2.3.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: phlex-rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 1.0.0
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 1.0.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: action_policy
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.6.3
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.6.3
153
+ - !ruby/object:Gem::Dependency
154
+ name: rotp
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '6.2'
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 6.2.1
163
+ type: :runtime
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: '6.2'
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 6.2.1
173
+ - !ruby/object:Gem::Dependency
174
+ name: pagy
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '5.10'
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: 5.10.1
183
+ type: :runtime
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: '5.10'
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: 5.10.1
193
+ - !ruby/object:Gem::Dependency
194
+ name: standard
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ type: :development
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
207
+ - !ruby/object:Gem::Dependency
208
+ name: standard-rails
209
+ requirement: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
214
+ type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - ">="
219
+ - !ruby/object:Gem::Version
220
+ version: '0'
221
+ - !ruby/object:Gem::Dependency
222
+ name: solargraph
223
+ requirement: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: '0'
228
+ type: :development
229
+ prerelease: false
230
+ version_requirements: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: '0'
235
+ - !ruby/object:Gem::Dependency
236
+ name: solargraph-rails
237
+ requirement: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
242
+ type: :development
243
+ prerelease: false
244
+ version_requirements: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - ">="
247
+ - !ruby/object:Gem::Version
248
+ version: '0'
249
+ - !ruby/object:Gem::Dependency
250
+ name: brakeman
251
+ requirement: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - ">="
254
+ - !ruby/object:Gem::Version
255
+ version: '0'
256
+ type: :development
257
+ prerelease: false
258
+ version_requirements: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ version: '0'
263
+ - !ruby/object:Gem::Dependency
264
+ name: ruby-lsp
265
+ requirement: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - ">="
268
+ - !ruby/object:Gem::Version
269
+ version: '0'
270
+ type: :development
271
+ prerelease: false
272
+ version_requirements: !ruby/object:Gem::Requirement
273
+ requirements:
274
+ - - ">="
275
+ - !ruby/object:Gem::Version
276
+ version: '0'
277
+ - !ruby/object:Gem::Dependency
278
+ name: bundle-audit
279
+ requirement: !ruby/object:Gem::Requirement
280
+ requirements:
281
+ - - ">="
282
+ - !ruby/object:Gem::Version
283
+ version: '0'
284
+ type: :development
285
+ prerelease: false
286
+ version_requirements: !ruby/object:Gem::Requirement
287
+ requirements:
288
+ - - ">="
289
+ - !ruby/object:Gem::Version
290
+ version: '0'
291
+ description: Build Rails applications focusing on your business problem not the code.
292
+ email:
293
+ - mario.chavez@gmail.com
294
+ executables: []
295
+ extensions: []
296
+ extra_rdoc_files: []
297
+ files:
298
+ - MIT-LICENSE
299
+ - README.md
300
+ - Rakefile
301
+ - app/assets/images/maquina/maquina.svg
302
+ - app/assets/javascripts/maquina/application.js
303
+ - app/assets/javascripts/maquina/controllers/alert_controller.js
304
+ - app/assets/javascripts/maquina/controllers/application.js
305
+ - app/assets/javascripts/maquina/controllers/file_controller.js
306
+ - app/assets/javascripts/maquina/controllers/index.js
307
+ - app/assets/javascripts/maquina/controllers/mobile_menu_controller.js
308
+ - app/assets/javascripts/maquina/controllers/modal_controller.js
309
+ - app/assets/javascripts/maquina/controllers/modal_open_controller.js
310
+ - app/assets/javascripts/maquina/controllers/popup_menu_controller.js
311
+ - app/assets/javascripts/maquina/controllers/submit_form_controller.js
312
+ - app/assets/stylesheets/maquina/application.css
313
+ - app/assets/stylesheets/maquina/application.tailwind.css
314
+ - app/controllers/concerns/maquina/authenticate.rb
315
+ - app/controllers/concerns/maquina/create.rb
316
+ - app/controllers/concerns/maquina/destroy.rb
317
+ - app/controllers/concerns/maquina/edit.rb
318
+ - app/controllers/concerns/maquina/index.rb
319
+ - app/controllers/concerns/maquina/new.rb
320
+ - app/controllers/concerns/maquina/resourceful.rb
321
+ - app/controllers/concerns/maquina/show.rb
322
+ - app/controllers/concerns/maquina/update.rb
323
+ - app/controllers/maquina/accept_invitations_controller.rb
324
+ - app/controllers/maquina/application_controller.rb
325
+ - app/controllers/maquina/dashboard_controller.rb
326
+ - app/controllers/maquina/invitations_controller.rb
327
+ - app/controllers/maquina/plans_controller.rb
328
+ - app/controllers/maquina/sessions_controller.rb
329
+ - app/controllers/maquina/unauthorized_controller.rb
330
+ - app/controllers/maquina/users_controller.rb
331
+ - app/helpers/maquina/application_helper.rb
332
+ - app/helpers/maquina/navbar_menu_helper.rb
333
+ - app/helpers/maquina/views_helper.rb
334
+ - app/jobs/maquina/application_job.rb
335
+ - app/mailers/maquina/application_mailer.rb
336
+ - app/mailers/maquina/user_notifications_mailer.rb
337
+ - app/models/concerns/maquina/authenticate_by.rb
338
+ - app/models/concerns/maquina/blockeable.rb
339
+ - app/models/concerns/maquina/multifactor.rb
340
+ - app/models/concerns/maquina/retain_passwords.rb
341
+ - app/models/concerns/maquina/searchable.rb
342
+ - app/models/maquina/active_session.rb
343
+ - app/models/maquina/application_record.rb
344
+ - app/models/maquina/current.rb
345
+ - app/models/maquina/invitation.rb
346
+ - app/models/maquina/plan.rb
347
+ - app/models/maquina/used_password.rb
348
+ - app/models/maquina/user.rb
349
+ - app/policies/maquina/application_policy.rb
350
+ - app/policies/maquina/invitation_policy.rb
351
+ - app/policies/maquina/navigation_policy.rb
352
+ - app/policies/maquina/plan_policy.rb
353
+ - app/policies/maquina/user_policy.rb
354
+ - app/views/layouts/maquina/application.html.erb
355
+ - app/views/layouts/maquina/mailer.html.erb
356
+ - app/views/layouts/maquina/mailer.text.erb
357
+ - app/views/layouts/maquina/sessions.html.erb
358
+ - app/views/maquina/accept_invitations/new.html.erb
359
+ - app/views/maquina/accept_invitations/new_view.rb
360
+ - app/views/maquina/application/_navbar.html.erb
361
+ - app/views/maquina/application/alert.rb
362
+ - app/views/maquina/application/components/action_text_component.rb
363
+ - app/views/maquina/application/components/checkbox_component.rb
364
+ - app/views/maquina/application/components/component_base.rb
365
+ - app/views/maquina/application/components/file_component.rb
366
+ - app/views/maquina/application/components/input_component.rb
367
+ - app/views/maquina/application/components/select_component.rb
368
+ - app/views/maquina/application/create.turbo_stream.erb
369
+ - app/views/maquina/application/edit.html.erb
370
+ - app/views/maquina/application/edit.rb
371
+ - app/views/maquina/application/form.rb
372
+ - app/views/maquina/application/index.html.erb
373
+ - app/views/maquina/application/index_header.rb
374
+ - app/views/maquina/application/index_modal.rb
375
+ - app/views/maquina/application/index_table.rb
376
+ - app/views/maquina/application/new.html.erb
377
+ - app/views/maquina/application/new.rb
378
+ - app/views/maquina/application/sessions_header.rb
379
+ - app/views/maquina/application/show.html.erb
380
+ - app/views/maquina/application/update.turbo_stream.erb
381
+ - app/views/maquina/application_view.rb
382
+ - app/views/maquina/dashboard/index.html.erb
383
+ - app/views/maquina/invitations/create.turbo_stream.erb
384
+ - app/views/maquina/invitations/new.html.erb
385
+ - app/views/maquina/navbar/menu.rb
386
+ - app/views/maquina/navbar/menu_item_link.rb
387
+ - app/views/maquina/navbar/mobile_button.rb
388
+ - app/views/maquina/navbar/mobile_menu.rb
389
+ - app/views/maquina/navbar/notification.rb
390
+ - app/views/maquina/navbar/profile.rb
391
+ - app/views/maquina/navbar/profile_button.rb
392
+ - app/views/maquina/navbar/profile_menu.rb
393
+ - app/views/maquina/navbar/profile_menu_item_link.rb
394
+ - app/views/maquina/navbar/search.rb
395
+ - app/views/maquina/navbar/title.rb
396
+ - app/views/maquina/sessions/create.turbo_stream.erb
397
+ - app/views/maquina/sessions/form.rb
398
+ - app/views/maquina/sessions/new.html.erb
399
+ - app/views/maquina/unauthorized/401.html.erb
400
+ - app/views/maquina/user_notifications_mailer/invitation_email.html.erb
401
+ - app/views/maquina/user_notifications_mailer/invitation_email.text.erb
402
+ - config/definitions.rb
403
+ - config/initializers/importmap.rb
404
+ - config/initializers/money.rb
405
+ - config/initializers/pagy.rb
406
+ - config/locales/flash.en.yml
407
+ - config/locales/forms.en.yml
408
+ - config/locales/mailers.en.yml
409
+ - config/locales/models.en.yml
410
+ - config/locales/routes.en.yml
411
+ - config/locales/views.en.yml
412
+ - config/routes.rb
413
+ - db/migrate/20221109010726_create_maquina_plans.rb
414
+ - db/migrate/20221113000409_create_maquina_users.rb
415
+ - db/migrate/20221113020108_create_maquina_used_passwords.rb
416
+ - db/migrate/20221115223414_create_maquina_active_sessions.rb
417
+ - db/migrate/20230201203922_create_maquina_invitations.rb
418
+ - db/schema.rb
419
+ - lib/generators/maquina/install_generator.rb
420
+ - lib/generators/maquina/install_templates/install_templates_generator.rb
421
+ - lib/generators/maquina/tailwind_config/tailwind_config_generator.rb
422
+ - lib/generators/maquina/tailwind_config/templates/app/assets/config/maquina/tailwind.config.js.tt
423
+ - lib/generators/maquina/templates/config/initializers/maquina.rb
424
+ - lib/maquina.rb
425
+ - lib/maquina/engine.rb
426
+ - lib/maquina/version.rb
427
+ - lib/tasks/install.rake
428
+ - lib/tasks/maquina_tasks.rake
429
+ - lib/tasks/tailwind.rake
430
+ homepage: https://mariochavez.io
431
+ licenses:
432
+ - MIT
433
+ metadata:
434
+ homepage_uri: https://mariochavez.io
435
+ source_code_uri: https://github.com/mariochavez/maquina
436
+ changelog_uri: https://github.com/mariochavez/maquina
437
+ post_install_message:
438
+ rdoc_options: []
439
+ require_paths:
440
+ - lib
441
+ required_ruby_version: !ruby/object:Gem::Requirement
442
+ requirements:
443
+ - - ">="
444
+ - !ruby/object:Gem::Version
445
+ version: '0'
446
+ required_rubygems_version: !ruby/object:Gem::Requirement
447
+ requirements:
448
+ - - ">="
449
+ - !ruby/object:Gem::Version
450
+ version: '0'
451
+ requirements: []
452
+ rubygems_version: 3.4.18
453
+ signing_key:
454
+ specification_version: 4
455
+ summary: Rails engine for building Rails applications.
456
+ test_files: []