sun-sword 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b414900e8daf53df2781f85514ad0b2ff9bd876b59bab1414f954acf9920b83
4
- data.tar.gz: f3adc01b9e3aa64c3c07d9aa9c843282eb978d0bd2a84542acefc94012cafd06
3
+ metadata.gz: e876a062dad8a99dc15b8954c7bdf447f843de121bc578932068394cab917000
4
+ data.tar.gz: 67c9dc597e823267475da811830f40699496537467a0fb2ca0cf20395543addc
5
5
  SHA512:
6
- metadata.gz: 5ef80ec8a386908e924568e666fc8616754d4fd5fc0df9a335996a0dcb8d69970d9698efe1366a61ce3c082b2921bacf70cfa75a229bb7fff745caa1eed6197e
7
- data.tar.gz: 30cc226b312508adb9fc7fa2a04cdce9432170038bb2661d9042b78c301bc03a600ce56220e6f90d47423edaac6ac615a8b58fbc7c6cfee411b77a2d2067a4d0
6
+ metadata.gz: 3b81d13ef0544cb3aa9ec08fb89aaae894a6636e551aa8234653cd03ec55a1ca8a4df89616aad8266f81222320655f112d16b2a50c02bcfdcf5d9f417715f7f4
7
+ data.tar.gz: 2b2f61c502fed7615f2efbc868d4874c390261103d261364e893af9f4ff4233d66528557cb8a911e7bfc7d8837bfb0eb8d41cec2d4c501ab3dccb57f03614f66
@@ -10,11 +10,9 @@ module SunSword
10
10
  end
11
11
  end
12
12
 
13
- desc 'This generator installs Vite with Rails 7 configuration'
13
+ desc 'This generator installs Vite with Rails 8 configuration'
14
14
 
15
15
  def setup
16
- validation!
17
- remove_assets_folder
18
16
  copy_assets_from_template
19
17
 
20
18
  add_vite_to_gemfile
@@ -26,50 +24,10 @@ module SunSword
26
24
  generate_controllers_site
27
25
  generate_components
28
26
  modify_layout_for_vite
29
-
30
- setup_migration
31
- setup_models
32
- gem_dependencies
33
27
  end
34
28
 
35
29
  private
36
30
 
37
- def gem_dependencies
38
- # auth
39
- # rails generate devise:install
40
- # config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
41
- # devise_for :auths, class_name: "Models::Auth", controllers: {
42
- # sessions: 'auths/sessions'
43
- # }
44
- gem 'devise', '~> 4.9'
45
-
46
- say 'Menjalankan bundle install...'
47
- run 'bundle install'
48
- run 'rails generate devise:install'
49
- inject_into_file 'config/routes.rb', " devise_for :auths, class_name: 'Models::Auth'\n", after: "Rails.application.routes.draw do\n"
50
- end
51
-
52
- def setup_migration
53
- template 'db/migrate/20241117042039_devise_create_auths.rb', File.join("db/migrate/#{Time.now.strftime('%Y%m%d%H%M')}11_devise_create_auths.rb")
54
- template 'db/migrate/20241117043154_create_models_accounts.rb', File.join("db/migrate/#{Time.now.strftime('%Y%m%d%H%M')}22_create_models_accounts.rb")
55
- template 'db/migrate/20241117044142_create_models_users.rb', File.join("db/migrate/#{Time.now.strftime('%Y%m%d%H%M')}33_create_models_users.rb")
56
-
57
- template 'db/seeds.rb', File.join('db/seeds.rb')
58
- end
59
-
60
- def setup_models
61
- template 'models/models/account.rb', File.join('app/models/models/account.rb')
62
- template 'models/models/auth.rb', File.join('app/models/models/auth.rb')
63
- template 'models/models/user.rb', File.join('app/models/models/user.rb')
64
- end
65
-
66
- def validation!
67
- unless File.exist?('config/initializers/sun_sword.rb')
68
- say 'Error must create init configuration for sun_sword!'
69
- raise Thor::Error, 'run: bin/rails generate sun_sword:init'
70
- end
71
- end
72
-
73
31
  def remove_assets_folder
74
32
  assets_path = "#{path_app}/assets"
75
33
  if Dir.exist?(assets_path)
@@ -144,6 +102,7 @@ module SunSword
144
102
  template 'controllers/application_controller.rb.tt', File.join('app/controllers/application_controller.rb')
145
103
  site_route = <<-RUBY
146
104
 
105
+ default_url_options :host => "#{ENV['BASE_URL']}"
147
106
  root "site#stimulus"
148
107
  get "site/jadi_a"
149
108
  get "site/jadi_b"
@@ -6,7 +6,6 @@ module SunSword
6
6
  argument :arg_scope, type: :hash, default: '', banner: 'scope:dashboard'
7
7
 
8
8
  def running
9
- validation!
10
9
  setup_variables
11
10
  create_root_folder
12
11
  create_controller_file
@@ -16,13 +15,6 @@ module SunSword
16
15
 
17
16
  private
18
17
 
19
- def validation!
20
- unless File.exist?('config/initializers/sun_sword.rb')
21
- say 'Error must create init configuration for sun_sword!'
22
- raise Thor::Error, 'run: bin/rails generate sun_sword:init'
23
- end
24
- end
25
-
26
18
  def setup_variables
27
19
  config = YAML.load_file("db/structures/#{arg_structure}_structure.yaml")
28
20
  @structure = Hashie::Mash.new(config)
@@ -33,6 +25,7 @@ module SunSword
33
25
  entity = @structure.entity || {}
34
26
 
35
27
  @actor = @structure.actor
28
+ @resource_owner_id = @structure.resource_owner_id
36
29
  @uploaders = @structure.uploaders || []
37
30
  @search_able = @structure.search_able || []
38
31
  @services = @structure.domains || {}
@@ -221,15 +214,12 @@ module SunSword
221
214
  if @route_scope_path.present?
222
215
  inject_into_file routes_file, " resources :#{@scope_path}\n", after: "namespace :#{@route_scope_path} do\n"
223
216
  else
224
- inject_into_file routes_file, " resources :#{@scope_path}\n", after: "Rails.application.routes.draw do\n"
217
+ inject_into_file routes_file, " resources :#{@scope_path}\n", after: "Rails.application.routes.draw do\n"
225
218
  end
226
219
  end
227
220
 
228
221
  def contract_fields
229
222
  skip_contract_fields = @skipped_fields.map(&:strip).uniq
230
- if SunSword.scope_owner_column.present?
231
- skip_contract_fields << SunSword.scope_owner_column.to_s
232
- end
233
223
  @model_class.columns.reject { |column| skip_contract_fields.include?(column.name.to_s) }.map(&:name).map(&:to_s)
234
224
  end
235
225
 
@@ -5,13 +5,12 @@ class ApplicationController < ActionController::Base
5
5
 
6
6
  protected
7
7
 
8
- def <%=SunSword.scope_owner_column%>
9
- current_auth.account.id
10
- end
8
+ # Adjust the value of <resource_owner_id> in db/structures/<resource>_structure.yaml
9
+ # Ignore this comment if you haven't generated the structure yet
11
10
 
12
- def build_contract(params)
13
- { <%=SunSword.scope_owner_column.to_s%>: <%=SunSword.scope_owner_column.to_s%> }.merge(params)
14
- end
11
+ #def <resource_owner_id>
12
+ # current_auth.<resource_owner_id>
13
+ #end
15
14
 
16
15
  def build_form_errors(params, model, errors)
17
16
  params.keys.each do |key|
@@ -35,6 +34,6 @@ class ApplicationController < ActionController::Base
35
34
 
36
35
  def set_layouts
37
36
  # "#{current_auth.user.role}/application"
38
- "owner/application"
37
+ 'owner/application'
39
38
  end
40
39
  end
@@ -8,11 +8,15 @@ class <%= [@route_scope_class, @scope_class].reject { |c| c.empty? }.join("::")
8
8
  use_case = Core::UseCases::<%= [@route_scope_class, @scope_class, build_usecase_filename('list')].reject { |c| c.empty? }.join("::") %>
9
9
  contract = use_case.contract!(build_contract({}))
10
10
  result = use_case.new(contract).result
11
- @<%= @variable_subject %> = Dry::Matcher::ResultMatcher.call(result) do |matcher|
12
- matcher.success { |response| response }
13
- matcher.failure { |errors| errors }
11
+ Dry::Matcher::ResultMatcher.call(result) do |matcher|
12
+ matcher.success do |response|
13
+ @<%= @scope_path %> = response
14
+ render '<%= @route_scope_path %>/<%= @scope_path %>/index'
15
+ end
16
+ matcher.failure do |errors|
17
+ redirect_to root_path, success: errors
18
+ end
14
19
  end
15
- render '<%= @route_scope_path %>/<%= @scope_path %>/index'
16
20
  end
17
21
 
18
22
  # GET /<%= [@route_scope_path, @scope_path, ":uuid"].reject { |c| c.empty? }.join("/") %>
@@ -20,9 +24,13 @@ class <%= [@route_scope_class, @scope_class].reject { |c| c.empty? }.join("::")
20
24
  use_case = Core::UseCases::<%= [@route_scope_class, @scope_class, build_usecase_filename('fetch', '_by_id')].reject { |c| c.empty? }.join("::") %>
21
25
  contract = use_case.contract!(build_contract({ id: params[:id] }))
22
26
  result = use_case.new(contract).result
23
- @<%= @scope_path %> = Dry::Matcher::ResultMatcher.call(result) do |matcher|
24
- matcher.success { |response| response }
25
- matcher.failure { |errors| errors }
27
+ Dry::Matcher::ResultMatcher.call(result) do |matcher|
28
+ matcher.success do |response|
29
+ @<%= @variable_subject %> = response
30
+ end
31
+ matcher.failure do |errors|
32
+ redirect_to root_path, success: errors
33
+ end
26
34
  end
27
35
  end
28
36
 
@@ -84,10 +92,14 @@ class <%= [@route_scope_class, @scope_class].reject { |c| c.empty? }.join("::")
84
92
 
85
93
  private
86
94
 
95
+ def build_contract(params)
96
+ { <%=@resource_owner_id%>: <%=@resource_owner_id%> }.merge(params)
97
+ end
98
+
87
99
  # Use callbacks to share common setup or constraints between actions.
88
100
  def set_<%= @variable_subject %>
89
- <% if SunSword.scope_owner_column.present? -%>
90
- @<%= @variable_subject %> = <%= @model_class %>.find_by(id: params[:id], <%=SunSword.scope_owner_column%>: <%=SunSword.scope_owner_column%>)
101
+ <% if @resource_owner_id.present? -%>
102
+ @<%= @variable_subject %> = <%= @model_class %>.find_by(id: params[:id], <%=@resource_owner_id%>: <%=@resource_owner_id%>)
91
103
  <%else %>
92
104
  @<%= @variable_subject %> = <%= @model_class %>.find_by(id: params[:id])
93
105
  <%end %>
@@ -12,10 +12,31 @@
12
12
  <div class="border-t border-gray-100">
13
13
  <dl class="divide-y divide-gray-100">
14
14
  <%@controllers.show_fields.each do |col| -%>
15
+ <%if @uploaders.include?(col)-%>
16
+ <div class="px-4 py-6 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
17
+ <dt class="text-sm font-medium text-gray-900"><%=col.titleize%></dt>
18
+ <dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
19
+ <section class="overflow-hidden text-gray-700 ">
20
+ <div class="container px-5 py-2 mx-auto">
21
+ <div class="flex flex-wrap -m-1 md:-m-2">
22
+ <div class="flex flex-wrap w-1/1">
23
+ <%%= [@<%=@variable_subject%>.<%=col%>].flatten.each do |asset| %>
24
+ <div class="w-1/3 p-1 md:p-2">
25
+ <img alt="<%=col.titleize%>" class="block object-cover object-center w-100 rounded-lg" src="<%%= asset %>">
26
+ </div>
27
+ <%% end %>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </section>
32
+ </dd>
33
+ </div>
34
+ <%else-%>
15
35
  <div class="px-4 py-6 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
16
36
  <dt class="text-sm font-medium text-gray-900"><%=col.titleize%></dt>
17
37
  <dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0"><%%= @<%=@variable_subject%>.<%=col%> %></dd>
18
38
  </div>
39
+ <%end-%>
19
40
  <%end-%>
20
41
  </dl>
21
42
  </div>
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SunSword
4
- VERSION = '0.0.5'
4
+ VERSION = '0.0.6'
5
5
  public_constant :VERSION
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sun-sword
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - kotarominami
@@ -77,9 +77,6 @@ files:
77
77
  - lib/generators/sun_sword/templates_frontend/config/vite.json
78
78
  - lib/generators/sun_sword/templates_frontend/controllers/application_controller.rb.tt
79
79
  - lib/generators/sun_sword/templates_frontend/controllers/site_controller.rb
80
- - lib/generators/sun_sword/templates_frontend/db/migrate/20241117042039_devise_create_auths.rb
81
- - lib/generators/sun_sword/templates_frontend/db/migrate/20241117043154_create_models_accounts.rb
82
- - lib/generators/sun_sword/templates_frontend/db/migrate/20241117044142_create_models_users.rb
83
80
  - lib/generators/sun_sword/templates_frontend/db/seeds.rb
84
81
  - lib/generators/sun_sword/templates_frontend/db/structures/example.yaml.tt
85
82
  - lib/generators/sun_sword/templates_frontend/env.development
@@ -93,9 +90,6 @@ files:
93
90
  - lib/generators/sun_sword/templates_frontend/frontend/pages/web.js
94
91
  - lib/generators/sun_sword/templates_frontend/frontend/stylesheets/application.scss
95
92
  - lib/generators/sun_sword/templates_frontend/helpers/application_helper.rb
96
- - lib/generators/sun_sword/templates_frontend/models/models/account.rb
97
- - lib/generators/sun_sword/templates_frontend/models/models/auth.rb
98
- - lib/generators/sun_sword/templates_frontend/models/models/user.rb
99
93
  - lib/generators/sun_sword/templates_frontend/package.json
100
94
  - lib/generators/sun_sword/templates_frontend/postcss.config.js
101
95
  - lib/generators/sun_sword/templates_frontend/rubocop.yml.tt
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class DeviseCreateAuths < ActiveRecord::Migration[7.2]
4
- def change
5
- create_table :auths, id: :uuid do |t|
6
- ## Database authenticatable
7
- t.string :email, null: false, default: ''
8
- t.string :encrypted_password, null: false, default: ''
9
- t.uuid :account_id, null: false
10
- t.uuid :user_id, null: false
11
-
12
- ## Recoverable
13
- t.string :reset_password_token
14
- t.datetime :reset_password_sent_at
15
-
16
- ## Rememberable
17
- t.datetime :remember_created_at
18
-
19
- ## Trackable
20
- # t.integer :sign_in_count, default: 0, null: false
21
- # t.datetime :current_sign_in_at
22
- # t.datetime :last_sign_in_at
23
- # t.string :current_sign_in_ip
24
- # t.string :last_sign_in_ip
25
-
26
- ## Confirmable
27
- # t.string :confirmation_token
28
- # t.datetime :confirmed_at
29
- # t.datetime :confirmation_sent_at
30
- # t.string :unconfirmed_email # Only if using reconfirmable
31
-
32
- ## Lockable
33
- # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
34
- # t.string :unlock_token # Only if unlock strategy is :email or :both
35
- # t.datetime :locked_at
36
-
37
- t.timestamps null: false
38
- end
39
-
40
- add_index :auths, :email, unique: true
41
- add_index :auths, :user_id, unique: true
42
- add_index :auths, :reset_password_token, unique: true
43
- add_index :auths, :account_id
44
- add_index :auths, :created_at
45
- add_index :auths, :updated_at
46
- end
47
- end
@@ -1,11 +0,0 @@
1
- class CreateModelsAccounts < ActiveRecord::Migration[7.2]
2
- def change
3
- create_table :accounts, id: :uuid do |t|
4
- t.string :name, null: false
5
-
6
- t.timestamps
7
- end
8
- add_index :accounts, :created_at
9
- add_index :accounts, :updated_at
10
- end
11
- end
@@ -1,16 +0,0 @@
1
- class CreateModelsUsers < ActiveRecord::Migration[7.2]
2
- def change
3
- create_table :users, id: :uuid do |t|
4
- t.uuid :account_id, null: false
5
- t.string :full_name, null: false
6
- t.string :role, null: false
7
-
8
- t.timestamps
9
- end
10
- add_index :users, :full_name
11
- add_index :users, :role
12
- add_index :users, :account_id
13
- add_index :users, :created_at
14
- add_index :users, :updated_at
15
- end
16
- end
@@ -1,4 +0,0 @@
1
- class Models::Account < ApplicationRecord
2
- has_many :auths, foreign_key: 'account_id', class_name: 'Models::Auth'
3
- has_many :users, foreign_key: 'account_id', class_name: 'Models::User'
4
- end
@@ -1,8 +0,0 @@
1
- class Models::Auth < ApplicationRecord
2
- # Include default devise modules. Others available are:
3
- # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
4
- devise :database_authenticatable, :registerable,
5
- :recoverable, :rememberable, :validatable
6
- belongs_to :account, class_name: 'Models::Account', foreign_key: 'account_id'
7
- belongs_to :user, class_name: 'Models::User', foreign_key: 'user_id'
8
- end
@@ -1,4 +0,0 @@
1
- class Models::User < ApplicationRecord
2
- belongs_to :account, class_name: 'Models::Account', foreign_key: 'account_id'
3
- enum :role, { owner: 'owner', contact: 'contact' }
4
- end