Class: Mortar::Command::Generate

Inherits:
Base
  • Object
show all
Defined in:
lib/mortar/command/generate.rb

Overview

generate mortar code (project, pigscript, python_udf, macro)

Instance Attribute Summary

Attributes inherited from Base

#args, #options

Instance Method Summary collapse

Methods inherited from Base

#api, #ask_public, #config_parameters, #get_error_message_context, #git, #initialize, #initialize_embedded_project, namespace, #pig_parameters, #project, #register_api_call, #register_do, #register_project, #validate_project_name, #validate_project_structure

Methods included from Helpers

#action, #ask, #confirm, #copy_if_not_present_at_dest, #default_host, #deprecate, #display, #display_header, #display_object, #display_row, #display_table, #display_with_indent, #download_to_file, #ensure_dir_exists, #error, error_with_failure, error_with_failure=, extended, extended_into, #format_bytes, #format_date, #format_with_bang, #get_terminal_environment, #home_directory, #host, #hprint, #hputs, included, included_into, #installed_with_omnibus?, #json_decode, #json_encode, #line_formatter, #longest, #output_with_bang, #quantify, #redisplay, #retry_on_exception, #running_on_a_mac?, #running_on_windows?, #set_buffer, #shell, #spinner, #status, #string_distance, #styled_array, #styled_error, #styled_hash, #styled_header, #suggestion, #test_name, #ticking, #time_ago, #truncate, #warning, #with_tty, #write_to_file

Constructor Details

This class inherits a constructor from Mortar::Command::Base

Instance Method Details

#_projectObject

generate:project PROJECTNAME

Generate the files and directory structure necessary for a Mortar project.



32
33
34
35
36
37
38
39
40
# File 'lib/mortar/command/generate.rb', line 32

def _project
  project_name = shift_argument
  unless project_name
    error("Usage: mortar generate:project PROJECTNAME\nMust specify PROJECTNAME.")
  end
  pigscript_name = project_name
  app_generator = Mortar::Generators::ProjectGenerator.new
  app_generator.generate_project(project_name, options)
end

#controlscriptObject

generate:controlscript SCRIPTNAME

Generate new control script.



60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/mortar/command/generate.rb', line 60

def controlscript
  script_name = shift_argument
  unless script_name
    error("Usage: mortar generate:controlscript SCRIPTNAME\nMust specify SCRIPTNAME.")
  end

  # Validates the we're in a mortar project
  project

  script_generator = Mortar::Generators::ControlscriptGenerator.new
  script_generator.generate_controlscript(script_name, options)
end

#macroObject

generate:macro MACRONAME

Generate a new pig macro.



94
95
96
97
98
99
100
101
102
# File 'lib/mortar/command/generate.rb', line 94

def macro
  macro_name = shift_argument
  unless macro_name
    error("Usage: mortar generate:macro MACRONAME\nMust specify MACRONAME.")
  end
  
  macro_generator = Mortar::Generators::MacroGenerator.new
  macro_generator.generate_macro(macro_name, project, options)
end

#pigscriptObject

generate:pigscript SCRIPTNAME

Generate new pig script.

–skip-udf # Create the pig script without a partnered python udf



79
80
81
82
83
84
85
86
87
88
# File 'lib/mortar/command/generate.rb', line 79

def pigscript
  script_name = shift_argument
  unless script_name
    error("Usage: mortar generate:pigscript SCRIPTNAME\nMust specify SCRIPTNAME.")
  end
  options[:skip_udf] ||= false
  
  script_generator = Mortar::Generators::PigscriptGenerator.new
  script_generator.generate_pigscript(script_name, project, options)
end

#python_udfObject

generate:python_udf UDFNAME

Generate a new python user defined function



47
48
49
50
51
52
53
54
# File 'lib/mortar/command/generate.rb', line 47

def python_udf
  udf_name = shift_argument
  unless udf_name
    error("Usage: mortar generate:python_udf UDFNAME\nMust specify UDFNAME.")
  end
  udf_generator = Mortar::Generators::UDFGenerator.new
  udf_generator.generate_python_udf(udf_name, project, options)
end