sun-sword 0.0.2 → 0.0.3

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: cb494f2a53c1b516860199cb7c8c692f77c8a064d8ed79454a4baa2720781fdf
4
- data.tar.gz: 159150643bb604b46e20ebe2c7673955a3506590f108dea95785cbfaf1ae583a
3
+ metadata.gz: e4c9ef673af8d51240f8c706d4c18ca8286721cf860d3effca58aafcb3042a38
4
+ data.tar.gz: 57afc60235b6dd6a2bdd15906d039ad865cee125447290786af3385ceed0551e
5
5
  SHA512:
6
- metadata.gz: 8fc13564eb994ffd6c09caf9d1e585c333244be340e31eb4cef1abeeee26a079a6889f5854b510e3412bf5e804c5c1809b4eac44096b57e9869ce052a75a7a28
7
- data.tar.gz: 84d65e98117489c21b4490957a36d6f54f62abbfcf0400cdd5c3410e5c949f1c90934fc1f4910d69c525dcdc90a7597592aff7873a0efc100fbc84974f33787c
6
+ metadata.gz: ce22f06920d4dec14553da3a111e2d51040d4c8ac7a0c00a0faca90b2b80b03ef0926d5b74af43cca035eb955e74a390daf9cdfc5411870363161308828513d7
7
+ data.tar.gz: 7d026ad20c3fcf0e9b8c4d16ed226a2487efa837d0df7a52fe496b061b5094a3babcf79578dd5c1e288efb8019fb099f5c4751a2bd33a171d09ff49885ccf4ab
@@ -68,15 +68,16 @@ module SunSword
68
68
  timestamp: :datetime_select,
69
69
  time: :time_select,
70
70
  enum: :select,
71
- file: :file_field
71
+ file: :file_field,
72
+ files: :file_fields
72
73
  }
73
74
  end
74
75
 
75
76
  def generate_form_fields_html
76
77
  form_fields_html = ''
77
78
  @form_fields.each do |field|
78
- field_name = field[:name]
79
- field_type = field[:type]
79
+ field_name = field[:name].to_sym
80
+ field_type = field[:type].to_sym
80
81
  form_helper = @mapping_fields[field_type] || :text_field
81
82
  input_id = "#{@variable_subject}_#{field_name}"
82
83
  label_input_id = case form_helper
@@ -84,7 +85,6 @@ module SunSword
84
85
  when :time_select then "#{input_id}_4i" # Hour
85
86
  else input_id
86
87
  end
87
-
88
88
  field_html = <<-HTML
89
89
 
90
90
  <div class="sm:grid sm:grid-cols-3 sm:items-start sm:gap-4 sm:py-6">
@@ -120,6 +120,25 @@ module SunSword
120
120
  field_html += <<-HTML
121
121
  <%= form.#{form_helper} :#{field_name}, { discard_second: true, id_prefix: '#{input_id}' }, { class: "text-gray-700 shadow-sm focus:ring-2 focus:ring-gray-300 focus:border-gray-300 sm:text-sm" } %>
122
122
  HTML
123
+ when :file_fields
124
+ field_html += <<-HTML
125
+ <div class="flex max-w-2xl justify-center rounded-lg border border-dashed border-gray-300 px-6 py-10">
126
+ <div class="text-center">
127
+ <!-- SVG Icon -->
128
+ <svg class="mx-auto size-12 text-gray-300" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon">
129
+ <path fill-rule="evenodd" d="M1.5 6a2.25 2.25 0 0 1 2.25-2.25h16.5A2.25 2.25 0 0 1 22.5 6v12a2.25 2.25 0 0 1-2.25 2.25H3.75A2.25 2.25 0 0 1 1.5 18V6ZM3 16.06V18c0 .414.336.75.75.75h16.5A.75.75 0 0 0 21 18v-1.94l-2.69-2.689a1.5 1.5 0 0 0-2.12 0l-.88.879.97.97a.75.75 0 1 1-1.06 1.06l-5.16-5.159a1.5 1.5 0 0 0-2.12 0L3 16.061Zm10.125-7.81a1.125 1.125 0 1 1 2.25 0 1.125 1.125 0 0 1-2.25 0Z" clip-rule="evenodd" />
130
+ </svg>
131
+ <div class="mt-4 flex text-sm text-gray-600">
132
+ <label for="<%= '#{input_id}' %>" class="relative cursor-pointer rounded-md bg-white font-semibold text-gray-600 hover:text-gray-500">
133
+ <span>Upload a file</span>
134
+ <%= form.file_field :#{field_name}, id: '#{input_id}', class: "sr-only", multiple: true %>
135
+ </label>
136
+ <p class="pl-1">or drag and drop</p>
137
+ </div>
138
+ <p class="text-xs text-gray-600">PNG, JPG, GIF, DOC etc.</p>
139
+ </div>
140
+ </div>
141
+ HTML
123
142
  when :file_field
124
143
  field_html += <<-HTML
125
144
  <div class="flex max-w-2xl justify-center rounded-lg border border-dashed border-gray-300 px-6 py-10">
@@ -216,7 +235,13 @@ module SunSword
216
235
 
217
236
  def strong_params
218
237
  results = ''
219
- @controllers.form_fields.map { |tc| results << ":#{tc.name}, " }
238
+ @controllers.form_fields.each do |field|
239
+ if field.type.to_s.eql?('files')
240
+ results << "{ #{field.name}: [] }, "
241
+ else
242
+ results << ":#{field.name}, "
243
+ end
244
+ end
220
245
  results[0..-2]
221
246
  end
222
247
  end
@@ -1,6 +1,6 @@
1
1
  # Template for the controller (controllers/controller.rb.tt)
2
2
  class <%= [@route_scope_class, @scope_class].reject { |c| c.empty? }.join("::") %>Controller < ApplicationController
3
- before_action :set_<%= @variable_subject %>, only: %i[show edit update destroy]
3
+ before_action :set_<%= @variable_subject %>, only: %i[edit update]
4
4
  layout :set_layouts
5
5
 
6
6
  # GET /<%= [@route_scope_path, @scope_path].reject { |c| c.empty? }.join("/") %>
@@ -8,7 +8,7 @@ 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
- @<%= @scope_path %> = Dry::Matcher::ResultMatcher.call(result) do |matcher|
11
+ @<%= @variable_subject %> = Dry::Matcher::ResultMatcher.call(result) do |matcher|
12
12
  matcher.success { |response| response }
13
13
  matcher.failure { |errors| errors }
14
14
  end
@@ -17,6 +17,13 @@ class <%= [@route_scope_class, @scope_class].reject { |c| c.empty? }.join("::")
17
17
 
18
18
  # GET /<%= [@route_scope_path, @scope_path, ":uuid"].reject { |c| c.empty? }.join("/") %>
19
19
  def show
20
+ use_case = Core::UseCases::<%= [@route_scope_class, @scope_class, build_usecase_filename('fetch', '_by_id')].reject { |c| c.empty? }.join("::") %>
21
+ contract = use_case.contract!(build_contract({ id: params[:id] }))
22
+ 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 }
26
+ end
20
27
  end
21
28
 
22
29
  # GET /<%= [@route_scope_path, @scope_path, "new"].reject { |c| c.empty? }.join("/") %>
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SunSword
4
- VERSION = '0.0.2'
4
+ VERSION = '0.0.3'
5
5
  public_constant :VERSION
6
6
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sun-sword
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - kotarominami
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-11-21 00:00:00.000000000 Z
11
+ date: 2024-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rider-kick
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.0.5
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.0.5
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement