Class: IB::Generator
- Inherits:
-
Object
- Object
- IB::Generator
- Defined in:
- lib/ib/generator.rb
Instance Method Summary collapse
- #generate_action(action) ⇒ Object
- #generate_objc(files) ⇒ Object
- #generate_objc_impl(files) ⇒ Object
- #generate_type(type) ⇒ Object
- #write(files, dest) ⇒ Object
Instance Method Details
#generate_action(action) ⇒ Object
68 69 70 |
# File 'lib/ib/generator.rb', line 68 def generate_action action action[1] ? "#{action[0]}:(id) #{action[1]}" : "#{action[0]}" end |
#generate_objc(files) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/ib/generator.rb', line 33 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[: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 |
#generate_objc_impl(files) ⇒ Object
54 55 56 57 58 59 60 61 62 |
# File 'lib/ib/generator.rb', line 54 def generate_objc_impl files src = files.map do |path, info| <<-OBJC @implementation #{info[:class][0][0]} @end OBJC end.join("\n" * 2) end |
#generate_type(type) ⇒ Object
64 65 66 |
# File 'lib/ib/generator.rb', line 64 def generate_type type type == "id" ? type : "#{type} *" end |
#write(files, dest) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/ib/generator.rb', line 2 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 |