Class: FWToolkit::Frank
- Includes:
- ThorUtils, Thor::Actions
- Defined in:
- lib/fwtoolkit/cli/frank.rb
Instance Method Summary collapse
Methods included from ThorUtils
Methods included from Thor::Actions
#run, #run!, #run_base, #template_directory
Instance Method Details
#model(project_dir) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/fwtoolkit/cli/frank.rb', line 69 def model(project_dir) say 'Creating model files out of core data entities' destination_root = project_dir Projectfile.load!(project_dir) if [:modelfile].nil? mom_files = Dir.glob(File.join(project_dir, '**/*.xcdatamodel')) if mom_files.size > 1 mom_file = ask('I\'ve found more than one core data model, which one would you like to use?', mom_files) elsif mom_files.size == 1 mom_file = mom_files[0] else raise Thor::Error, "Can't locate a valid core data model for #{mom_file}" end end template_conf = Projectfile.config model = CoreData::DataModel.new File.join(mom_file, 'contents') model.entities.each do |entity| seed_conf = template_conf.clone seed_conf[:class_name] = remove_prefix(template_conf[:class_prefix], entity.name).ruby_format seed_conf[:model] = entity directory 'templates/default_project/frank_seed_core_data', destination_root, seed_conf end template_conf[:models] = model.entities directory 'templates/default_project/frank_seed_support', destination_root, template_conf end |
#setup(project_dir) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/fwtoolkit/cli/frank.rb', line 43 def setup(project_dir) destination_root = project_dir Projectfile.load!(project_dir) if ![:force] && frank_alredy_set_up?(project_dir) say_status :skip, 'Frank is already set up for the project' return end say 'Setting up Frank' template_conf = Projectfile.config Projectfile.config[:target_name] ||= [:target] if [:target] inside(File.join(destination_root, template_conf[:project_name])) { run! "frank setup --target #{Projectfile.target_name}" } #remove files we're going to overwrite FileUtils.rm File.join(destination_root, template_conf[:project_name], 'Frank', 'features', 'step_definitions', 'launch_steps.rb') FileUtils.rm File.join(destination_root, template_conf[:project_name], 'Frank', 'features', 'support', 'env.rb') template_directory 'templates/default_project/frank', destination_root, template_conf end |