Sha256: 533a7075814cfaa4dd0ee44f43fbb2e53ffb9c866e8aab21922d7c94a62a9eb7

Contents?: true

Size: 1.35 KB

Versions: 3

Compression:

Stored size: 1.35 KB

Contents

require 'ovaltine/storyboard'
require 'ovaltine/objc/storyboard_formatter'
require 'ovaltine/objc/storyboard_templates'
require 'ovaltine/version'

module Ovaltine

  def self.create_constant_files(path, options)
    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[:output_directory])
    end
    generated_paths = formatters.map(&:output_paths).flatten
    if path = generated_paths.detect {|p| File.exist?(p)} and !options[:auto_replace]
      if prompt("Some generated files already exist. Overwrite? (Y/n)", 'y')
        write_files(formatters)
      end
    else
      write_files(formatters)
    end
  end

  private

  def self.write_files formatters
    files = []
    formatters.each do |formatter|
      formatter.write
      files += formatter.output_paths
    end
    files.each do |path|
      puts "  * #{File.basename(path)}"
    end
    puts "\n#{files.size} files generated"
  end

  def self.prompt title, default_answer
    puts title
    answer = STDIN.gets.chomp
    if answer.length == 0
      default_answer == 'y'
    elsif !['y','n'].include?(answer.downcase)
      false
    else
      answer.downcase == 'y'
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ovaltine-1.0.2 lib/ovaltine.rb
ovaltine-1.0.1 lib/ovaltine.rb
ovaltine-1.0.0 lib/ovaltine.rb