lib/glimmer/rake_task/scaffold.rb in glimmer-dsl-libui-0.9.5 vs lib/glimmer/rake_task/scaffold.rb in glimmer-dsl-libui-0.9.6
- old
+ new
@@ -217,11 +217,11 @@
mkdir_p parent_dir unless File.exist?(parent_dir)
write "#{parent_dir}/#{file_name(custom_shape_name)}.rb", custom_shape_file(custom_shape_name, namespace)
end
def custom_window_gem(custom_window_name, namespace)
- gem_name = "glimmer-cs-#{compact_name(custom_window_name)}"
+ gem_name = "glimmer-libui-cw-#{compact_name(custom_window_name)}"
gem_summary = "#{human_name(custom_window_name)} - Glimmer Custom Window"
begin
custom_window_keyword = dsl_control_name(custom_window_name)
MAIN_OBJECT.method(custom_window_keyword)
return puts("CustomWindow keyword `#{custom_window_keyword}` is unavailable (occupied by a built-in Ruby method)! Please pick a different name.")
@@ -247,10 +247,11 @@
write 'VERSION', '1.0.0'
write 'Gemfile', GEM_GEMFILE
write 'Rakefile', gem_rakefile(custom_window_name, namespace, gem_name)
append "lib/#{gem_name}.rb", gem_main_file(custom_window_name, namespace)
custom_window(custom_window_name, namespace, :gem)
+ app_model(current_dir_name, namespace)
mkdir_p "lib/#{gem_name}"
write "lib/#{gem_name}/launch.rb", gem_launch_file(gem_name, custom_window_name, namespace)
mkdir_p 'bin'
write "bin/#{file_name(custom_window_name)}", app_bin_command_file(gem_name, custom_window_name, namespace)
@@ -289,11 +290,11 @@
puts 'Run `rake build` to build gem.'
puts 'Run `rake release` to release into rubygems.org once ready.'
end
def custom_control_gem(custom_control_name, namespace)
- gem_name = "glimmer-cw-#{compact_name(custom_control_name)}"
+ gem_name = "glimmer-libui-cc-#{compact_name(custom_control_name)}"
gem_summary = "#{human_name(custom_control_name)} - Glimmer Custom Control"
if namespace
gem_name += "-#{compact_name(namespace)}"
gem_summary += " (#{human_name(namespace)})"
else
@@ -328,11 +329,11 @@
puts 'Run `rake build` to build gem.'
puts 'Run `rake release` to release into rubygems.org once ready.'
end
def custom_shape_gem(custom_shape_name, namespace)
- gem_name = "glimmer-cp-#{compact_name(custom_shape_name)}"
+ gem_name = "glimmer-libui-cs-#{compact_name(custom_shape_name)}"
gem_summary = "#{human_name(custom_shape_name)} - Glimmer Custom Shape"
if namespace
gem_name += "-#{compact_name(namespace)}"
gem_summary += " (#{human_name(namespace)})"
else
@@ -366,11 +367,11 @@
puts 'Run `rake` to execute specs.'
puts 'Run `rake build` to build gem.'
puts 'Run `rake release` to release into rubygems.org once ready.'
end
- def app_model(current_dir_name)
+ def app_model(current_dir_name, namespace = nil)
model_name = 'Greeting'
namespace ||= current_dir_name
root_dir = File.exist?('app') ? 'app' : 'lib'
parent_dir = "#{root_dir}/#{file_name(namespace)}/model"
return puts("The file '#{parent_dir}/#{file_name(model_name)}.rb' already exists. Please either remove or pick a different name.") if File.exist?("#{parent_dir}/#{file_name(model_name)}.rb")
@@ -540,11 +541,11 @@
custom_window_file_content = ''
if %i[gem app].include?(window_type)
custom_window_file_content += <<-MULTI_LINE_STRING
-require '#{current_dir_name}/model/greeting'
+require '#{window_type == :app ? current_dir_name : namespace}/model/greeting'
MULTI_LINE_STRING
end
custom_window_file_content += <<-MULTI_LINE_STRING
@@ -577,11 +578,11 @@
## Use before_body block to pre-initialize variables to use in body and
# to setup application menu
#
MULTI_LINE_STRING
- if %i[gem app].include?(window_type)
+ if window_type == :app
custom_window_file_content += <<-MULTI_LINE_STRING
before_body do
@greeting = Model::Greeting.new
menu('File') {
@@ -609,10 +610,16 @@
end
}
}
end
MULTI_LINE_STRING
+ elsif window_type == :gem
+ custom_window_file_content += <<-MULTI_LINE_STRING
+ before_body do
+ @greeting = Model::Greeting.new
+ end
+ MULTI_LINE_STRING
else
custom_window_file_content += <<-MULTI_LINE_STRING
# before_body do
#
# end
@@ -636,15 +643,33 @@
content_size 240, 240
title '#{human_name(namespace)}'
margined true
- label {
- #{%i[gem app].include?(window_type) ? "text <= [@greeting, :text]" : "text '#{human_name(custom_window_name)}'"}
+ vertical_box {
+ MULTI_LINE_STRING
+
+ if window_type == :gem
+ custom_window_file_content += <<-MULTI_LINE_STRING
+
+ button('Preferences...') {
+ stretchy false
+
+ on_clicked do
+ display_preferences_dialog
+ end
+ }
+ MULTI_LINE_STRING
+ end
+
+ custom_window_file_content += <<-MULTI_LINE_STRING
+ label {
+ #{%i[gem app].include?(window_type) ? "text <= [@greeting, :text]" : "text '#{human_name(custom_window_name)}'"}
+ }
}
}
}
- MULTI_LINE_STRING
+ MULTI_LINE_STRING
if %i[gem app].include?(window_type)
custom_window_file_content += <<-MULTI_LINE_STRING
def display_about_dialog