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