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| "@interface \#{info[:class][0][0]} : \#{info[:class][0][1]}\n\n\#{info[:outlets].map {|name, type| \"@property IBOutlet \#{generate_type(type)} \#{name};\" }.join(\"\\n\")}\n\n\#{info[:outlet_collections].map {|name, type| \"@property IBOutletCollection(\#{type}) NSArray * \#{name};\" }.join(\"\\n\")}\n\n\#{info[:actions].map {|action| \"-(IBAction) \#{generate_action(action)};\" }.join(\"\\n\")}\n\n@end\n" 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| "@implementation \#{info[:class][0][0]}\n\n@end\n" 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 "// Generated by IB v\#{IB::VERSION} gem. Do not edit it manually\n// Run `rake design` to refresh\n\n#import <Foundation/Foundation.h>\n#import <CoreData/CoreData.h>\n#import <UIKit/UIKit.h>\n\n\#{generate_objc(files)}\n" end File.open("#{dest}/Stubs.m", 'w') do |f| f.write "// Generated by IB v\#{IB::VERSION} gem. Do not edit it manually\n// Run `rake design` to refresh\n\n#import \"Stubs.h\"\n\n\#{generate_objc_impl(files)}\n" end end |