ib 0.0.5 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -39,6 +39,28 @@ end
39
39
 
40
40
  ## Usage
41
41
 
42
+ ### Manual Way
43
+
44
+ extend your class with IB module
45
+
46
+ ```ruby
47
+ class HelloController < UIViewController
48
+ extend IB
49
+
50
+ attr_accessor :title
51
+
52
+ # define ib outlet
53
+ ib_outlet :title, UILabel
54
+
55
+ def someAction
56
+ end
57
+
58
+ # define ib action
59
+ ib_action :someAction
60
+ end
61
+ ```
62
+
63
+ ### Generators Way
42
64
  Generate controller with folllowing command:
43
65
 
44
66
  ```
data/lib/ib/generator.rb CHANGED
@@ -4,14 +4,27 @@ class IB::Generator
4
4
 
5
5
  FileUtils.mkpath dest
6
6
 
7
- File.open("#{dest}/stubs.h", 'w') do |f|
7
+ File.open("#{dest}/Stubs.h", 'w') do |f|
8
8
  f.write <<-OBJC
9
9
  // Generated by IB v#{IB::VERSION} gem. Do not edit it manually
10
10
  // Run `rake design` to refresh
11
11
 
12
+ #import <Foundation/Foundation.h>
13
+ #import <CoreData/CoreData.h>
12
14
  #import <UIKit/UIKit.h>
13
15
 
14
16
  #{generate_objc(files)}
17
+ OBJC
18
+ end
19
+
20
+ File.open("#{dest}/Stubs.m", 'w') do |f|
21
+ f.write <<-OBJC
22
+ // Generated by IB v#{IB::VERSION} gem. Do not edit it manually
23
+ // Run `rake design` to refresh
24
+
25
+ #import "Stubs.h"
26
+
27
+ #{generate_objc_impl(files)}
15
28
  OBJC
16
29
  end
17
30
 
@@ -26,6 +39,16 @@ OBJC
26
39
 
27
40
  #{info[:actions].map {|action| "-(IBAction) #{action[0]}:(id) sender;" }.join("\n")}
28
41
 
42
+ @end
43
+ OBJC
44
+ end.join("\n" * 2)
45
+ end
46
+
47
+ def generate_objc_impl files
48
+ src = files.map do |path, info|
49
+ <<-OBJC
50
+ @implementation #{info[:class][0][0]}
51
+
29
52
  @end
30
53
  OBJC
31
54
  end.join("\n" * 2)
data/lib/ib/project.rb CHANGED
@@ -4,12 +4,17 @@ class IB::Project
4
4
  target = project.targets.new_static_library(:ios, 'ui')
5
5
 
6
6
  resources = project.groups.new('path' => resources_path, 'name' => 'Resources')
7
- support = project.groups.new('name' => 'Supporting Files')
7
+ support = project.groups.new('name' => 'Supporting Files', 'path' => 'ui.xcodeproj')
8
8
  pods = project.groups.new('name' => 'Pods')
9
9
 
10
- stubs_path = "ui.xcodeproj/stubs.h"
11
10
  IB::Generator.new.write(app_path, "ui.xcodeproj")
12
- support.files.new 'path' => stubs_path
11
+ support.files.new 'path' => 'Stubs.h', 'sourceTree' => '<group>'
12
+
13
+ path = Pathname.new("Stubs.m")
14
+ desc = Xcodeproj::Project::PBXNativeTarget::SourceFileDescription.new(path, nil, nil)
15
+ file = target.add_source_files([desc]).first
16
+ file.source_tree = '<group>'
17
+ support.files << file
13
18
 
14
19
  resource_exts = %W{xcdatamodeld png jpg jpeg storyboard xib lproj}
15
20
  Dir.glob("#{resources_path}/**/*.{#{resource_exts.join(",")}}") do |file|
@@ -37,7 +42,6 @@ class IB::Project
37
42
  target.frameworks_build_phases.first << file
38
43
  end
39
44
 
40
-
41
45
  project.save_as("ui.xcodeproj")
42
46
  end
43
47
  end
data/lib/ib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module IB
2
- VERSION = "0.0.5"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-07-13 00:00:00.000000000 Z
13
+ date: 2012-07-15 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: xcodeproj
@@ -108,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
108
  version: '0'
109
109
  segments:
110
110
  - 0
111
- hash: 2688650702896177142
111
+ hash: 1976209642130019168
112
112
  required_rubygems_version: !ruby/object:Gem::Requirement
113
113
  none: false
114
114
  requirements:
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
117
  version: '0'
118
118
  segments:
119
119
  - 0
120
- hash: 2688650702896177142
120
+ hash: 1976209642130019168
121
121
  requirements: []
122
122
  rubyforge_project:
123
123
  rubygems_version: 1.8.24