sun-sword 0.0.5 → 0.0.6

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.
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