class ExtractingId::Core

Public Class Methods

new() click to toggle source
# File lib/extracting_id.rb, line 6
def initialize
end

Public Instance Methods

define(arrType) click to toggle source
# File lib/extracting_id.rb, line 44
def define(arrType)
  arrType.map{|s| s.impDefine}.inject(""){|s, i| s + i}
end
exchange(arrStr) click to toggle source
# File lib/extracting_id.rb, line 22
def exchange(arrStr)
  arrStr.map{|s| to_class(s) }.flatten.inject([]){|a, s|
    if a.index(s) == nil then
      a.push(s)
    end
    a
  }
end
fileRead(fileName) click to toggle source
# File lib/extracting_id.rb, line 16
def fileRead(fileName)
  File.open(fileName,  :mode => "rb", :encoding => "UTF-8").read
end
fileWrite(output_dir) click to toggle source
# File lib/extracting_id.rb, line 47
def fileWrite(output_dir)
  head = "#{output_dir}#{fileName}.h"
  FileUtils.mkdir_p(output_dir) unless FileTest.exist?(output_dir)
  File.open(head, "w:UTF-8"){|f|
    f.write header
  }
end
header(arrType, fileName) click to toggle source
# File lib/extracting_id.rb, line 41
def header(arrType, fileName)
  self.define(arrType)
end
main(storyboardFile, output_dir, fileName = "ExtactedID") click to toggle source
# File lib/extracting_id.rb, line 8
def main(storyboardFile, output_dir, fileName = "ExtactedID")
  readFile = self.fileRead(storyboardFile)
  arrayString = scan(readFile)
  arrType = self.exchange(arrayString)
  header = self.header(arrType, fileName)
  fileWrite(output_dir)
end
scan(readFile) click to toggle source
# File lib/extracting_id.rb, line 19
def scan(readFile)
  readFile.scan(/(.*)\n/).flatten
end
to_class(s) click to toggle source
# File lib/extracting_id.rb, line 30
def to_class(s)
  if / identifier="(\w+)" / =~ s then
    [Segue.new($1)]
  elsif / restorationIdentifier="(\w+)" / =~ s then
    [Restore.new($1)]
  elsif /storyboardIdentifier="(\w+)"/ =~ s then
    [Storyboard.new($1)]
  else
    []
  end
end