Sha256: 99aba2108f2947c925de225f0551e547282d1319c1e15747d6fcf1dfe651471b
Contents?: true
Size: 1.65 KB
Versions: 2
Compression:
Stored size: 1.65 KB
Contents
class IB::Generator def write files, dest files = IB::Parser.new.find_all(files) FileUtils.mkpath dest File.open("#{dest}/Stubs.h", 'w') do |f| f.write <<-OBJC // Generated by IB v#{IB::VERSION} gem. Do not edit it manually // Run `rake ib:open` to refresh #import <Foundation/Foundation.h> #import <CoreData/CoreData.h> #import <UIKit/UIKit.h> #{generate_objc(files)} OBJC end File.open("#{dest}/Stubs.m", 'w') do |f| f.write <<-OBJC // Generated by IB v#{IB::VERSION} gem. Do not edit it manually // Run `rake ib:open` to refresh #import "Stubs.h" #{generate_objc_impl(files)} OBJC end end def generate_objc files output = "" files.map do |path, infos| infos.each do |info| output << <<-OBJC @interface #{info[:class][0][0]}#{info[:class][0][1] ? ": #{info[:class][0][1]}" : ""} #{info[:outlets].map {|name, type| "@property IBOutlet #{generate_type(type)} #{name};" }.join("\n")} #{info[:outlet_collections].map {|name, type| "@property IBOutletCollection(#{type}) NSArray * #{name};" }.join("\n")} #{info[:actions].map {|action| "-(IBAction) #{generate_action(action)};" }.join("\n")} @end OBJC output << "\n\n" end end output end def generate_objc_impl files output = "" files.map do |path, infos| infos.each do |info| output << <<-OBJC @implementation #{info[:class][0][0]} @end OBJC output << "\n\n" end end output end def generate_type type type == "id" ? type : "#{type} *" end def generate_action action action[1] ? "#{action[0]}:(#{action[2] ? "#{action[2]}*" : 'id'}) #{action[1]}" : "#{action[0]}" end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ib-0.2.10 | lib/ib/generator.rb |
ib-0.2.9 | lib/ib/generator.rb |