Skip to content

Commit 4718e92

Browse files
committed
complete the setting type generator
1 parent a7ef19b commit 4718e92

File tree

4 files changed

+20
-36
lines changed

4 files changed

+20
-36
lines changed

app/models/maglev/setting_type_registry.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def types
2020
end
2121

2222
def register(id:, klass: nil)
23-
klass ||= "Maglev::SettingTypes::#{id.camelize}".constantize
23+
klass ||= "Maglev::SettingTypes::#{id.to_s.camelize}".constantize
2424
@setting_types[id.to_sym] = klass.new
2525
end
2626

lib/generators/maglev/setting_type_generator.rb

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ class SettingTypeGenerator < Rails::Generators::NamedBase
88

99
def plugin_name
1010
(@plugin_name ||= options[:plugin]).tap do
11-
raise 'Missing plugin option' if @plugin_name.blank?
11+
if @plugin_name.blank?
12+
puts '🚨 You need to pass the id of a Maglev plugin'
13+
exit 0
14+
end
1215
end
1316
end
1417

@@ -21,17 +24,29 @@ def generate
2124
end
2225

2326
def register_setting_type_in_ruby
24-
inject_into_file "packages/#{options[:plugin]}/lib/#{options[:plugin]}/engine.rb", before: / end\n^end/ do
27+
inject_into_file "packages/#{plugin_name}/lib/#{plugin_name}/engine.rb", before: / end\n^end/ do
2528
<<-RUBY
2629
config.to_prepare do
2730
Maglev.register_setting_type(id: :#{table_name})
2831
end
32+
2933
RUBY
3034
end
3135
end
3236

3337
def register_setting_type_in_javascript
34-
raise 'TODO'
38+
prepend_to_file "packages/#{plugin_name}/index.js" do
39+
<<-JAVASCRIPT
40+
import { registerInput } from '@/misc/dynamic-inputs'
41+
import UIKit#{class_name}Input from './app/frontend/editor/components/kit/#{table_name}-input.vue'
42+
JAVASCRIPT
43+
end
44+
45+
inject_into_file "packages/#{plugin_name}/index.js", before: /^}/ do
46+
<<-JAVASCRIPT
47+
registerInput('#{table_name}', UIKit#{class_name}Input, (props, _options) => props)
48+
JAVASCRIPT
49+
end
3550
end
3651

3752
private

lib/generators/maglev/templates/setting_type/packages/%plugin_name%/app/frontend/editor/components/kit/%component_name%.vue.tt

Lines changed: 0 additions & 31 deletions
This file was deleted.

lib/generators/maglev/templates/setting_type/packages/%plugin_name%/app/models/maglev/setting_types/%table_name%.rb.tt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22

33
# rubocop:disable Style/ClassAndModuleChildren
4-
class Maglev:SettingTypes::<%= class_name %> < Maglev::SettingTypes::Base
4+
class Maglev::SettingTypes::<%= class_name %> < Maglev::SettingTypes::Base
55
# def cast_value(value)
66
# value
77
# end

0 commit comments

Comments
 (0)