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(src, dest) ⇒ Object
Instance Method Details
#generate_action(action) ⇒ Object
63 64 65 |
# File 'lib/ib/generator.rb', line 63 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 |
# File 'lib/ib/generator.rb', line 33 def generate_objc files src = files.map do |path, info| <<-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 end.join("\n" * 2) end |
#generate_objc_impl(files) ⇒ Object
49 50 51 52 53 54 55 56 57 |
# File 'lib/ib/generator.rb', line 49 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
59 60 61 |
# File 'lib/ib/generator.rb', line 59 def generate_type type type == "id" ? type : "#{type} *" end |
#write(src, 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 src, dest files = IB::Parser.new.find_all(src) 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 design` 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 design` to refresh #import "Stubs.h" #{generate_objc_impl(files)} OBJC end end |