Module: Ovaltine

Defined in:
lib/ovaltine.rb,
lib/ovaltine/version.rb,
lib/ovaltine/storyboard.rb,
lib/ovaltine/xcode_project.rb,
lib/ovaltine/xcode_project/pbxgroup.rb,
lib/ovaltine/xcode_project/pbxobject.rb,
lib/ovaltine/objc/storyboard_formatter.rb,
lib/ovaltine/objc/storyboard_templates.rb,
lib/ovaltine/xcode_project/pbxfilereference.rb

Defined Under Namespace

Classes: Storyboard, StoryboardFormatter, StoryboardTemplates, XcodeProject

Constant Summary collapse

VERSION =
"1.1.1"

Class Method Summary collapse

Class Method Details

.create_constant_files(path, options) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/ovaltine.rb', line 12

def self.create_constant_files(path, options)
  require_formatter(options[:language])
  files = Dir.glob("#{path}/**/*.storyboard")
  groups = files.group_by {|f| File.basename(f).sub('.storyboard','')}
  formatters = groups.map do |name, paths|
    storyboard = Storyboard.new(name, paths)
    StoryboardFormatter.new(storyboard, options[:prefix], options[:copy], (options[:output_directory] || path))
  end
  generated_paths = formatters.map(&:output_paths).flatten
  if existing_path = generated_paths.detect {|p| File.exist?(p)} and !options[:auto_replace]
    return unless prompt("Some generated files already exist. Overwrite? (Y/n)", 'y')
  end

  paths = write_files(formatters)

  if project_filepath = options[:project] || Dir.glob("#{File.dirname(path)}/**/*.xcodeproj").first
    return unless options[:auto_add] or prompt("Add files to project? (y/N)", 'n')
    project = XcodeProject.new(project_filepath)
    if paths.sort.map {|p| project.add_file_ref(p)}.compact.size > 0
      project.save
      puts "#{File.basename(project_filepath)} updated"
    else
      puts "All files already added"
    end
  end
end