cocoapods-icemobile-plugin 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1b0945d305a0d944e393ffefda4761a2757a93c5
4
+ data.tar.gz: 707f50f12a707bfa0662b239eb2ab78bc5e92595
5
+ SHA512:
6
+ metadata.gz: c44172d72d2c36a8f887c174653084cf7eaf005cb37eca590871410051602b7fdfed4a7eeb2a34cf14c71db366f1b49383a28820a4edcce1df991299db757597
7
+ data.tar.gz: 3ce00016f88609d7091a1d4d04731ab9820617cf1b5f875ec463165a9e69b34ae45ab6609b8f494de7688b977d8c78dbc2fb4505566ff4c18868ec873feafbc1
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ Sample/
@@ -0,0 +1,2 @@
1
+ --markup-provider=redcarpet
2
+ --markup=markdown
@@ -0,0 +1,3 @@
1
+ ## Cocoapods::IceMobilePlugin Changelog
2
+
3
+ ## Master
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :development do
6
+ gem 'cocoapods'
7
+ gem 'bacon'
8
+ gem 'mocha-on-bacon'
9
+ gem 'mocha', '~> 0.11.4'
10
+ gem 'prettybacon', :git => 'https://github.com/irrationalfab/PrettyBacon.git', :branch => 'master'
11
+ gem "fakefs", :require => "fakefs/safe"
12
+ end
@@ -0,0 +1,6 @@
1
+ # CocoaPods IceMobile Plugin
2
+
3
+ ## Usage
4
+
5
+ $ pod ice-generate IceMobileSample
6
+
@@ -0,0 +1,18 @@
1
+ def gem_version
2
+ require File.expand_path('../lib/cocoapods-icemobile-plugin/version.rb', __FILE__)
3
+ CocoapodsIcemobilePlugin::VERSION
4
+ end
5
+
6
+ def gem_filename
7
+ "cocoapods-icemobile-plugin-#{gem_version}.gem"
8
+ end
9
+
10
+ desc "Build a gem for the current version"
11
+ task :build do
12
+ sh "gem build cocoapods-icemobile-plugin.gemspec"
13
+ end
14
+
15
+ desc "Install a gem version of the current code"
16
+ task :install => :build do
17
+ sh "gem install #{gem_filename}"
18
+ end
@@ -0,0 +1,21 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'cocoapods-icemobile-plugin/version.rb'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "cocoapods-icemobile-plugin"
8
+ spec.version = CocoapodsIcemobilePlugin::VERSION
9
+ spec.authors = ["Sumeru Chatterjee"]
10
+ spec.summary = %q{CocoaPods plugin for internal icemobile projects.}
11
+ spec.homepage = "http://www.icemobile.com"
12
+ spec.email = "sumeru@icemobile.com"
13
+ spec.description = "IceMobile Plugin for CocoaPods (Used within IceMobile for internal projects."
14
+
15
+ spec.files = `git ls-files`.split($/)
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ["lib"]
19
+
20
+ spec.add_runtime_dependency 'cocoapods','~> 0.29'
21
+ end
@@ -0,0 +1,27 @@
1
+ # OS X
2
+ .DS_Store
3
+ .Trashes
4
+ *.swp
5
+ *.lock
6
+ *~.nib
7
+ DerivedData/
8
+ build/
9
+ *.pbxuser
10
+ *.mode1v3
11
+ *.mode2v3
12
+ *.perspectivev3
13
+ !default.pbxuser
14
+ !default.mode1v3
15
+ !default.mode2v3
16
+ !default.perspectivev3
17
+ xcuserdata
18
+
19
+ #git
20
+ *.moved-aside
21
+ *.orig
22
+
23
+ # CocoaPods
24
+ Pods
25
+
26
+ #Revision
27
+ <%= @project_name %>/Revision
@@ -0,0 +1,18 @@
1
+ //
2
+ // <%= @project_prefix %>BootstrapDelegate.h
3
+ // <%= @project_name %>
4
+ //
5
+ // Created by cocoapods-icemobile-plugin
6
+ // Copyright (c) <%= @project_year %> IceMobile. All rights reserved.
7
+ //
8
+
9
+ #import <CoreProductModules/BFCoreApplicationDelegate.h>
10
+
11
+ @interface <%= @project_prefix %>BootstrapDelegate : BFCoreApplicationDelegate
12
+
13
+ @property (nonatomic, strong) BFStringSettingsItem <BFStaticSetting> *revision;
14
+ @property (nonatomic, strong) BFActionSettingsItem *resetSettingsItem;
15
+ @property (nonatomic, strong) BFDynamicContentSettingsItem *termsAndConditionsSetting;
16
+ @property (nonatomic, strong) BFDynamicContentSettingsItem *privacyPolicySetting;
17
+
18
+ @end
@@ -0,0 +1,266 @@
1
+ //
2
+ // <%= @project_prefix %>BootstrapDelegate.m
3
+ // <%= @project_name %>
4
+ //
5
+ // Created by cocoapods-icemobile-plugin
6
+ // Copyright (c) <%= @project_year %> IceMobile. All rights reserved.
7
+ //
8
+
9
+ #import "revision.h"
10
+ #import "<%= @project_prefix %>BootstrapDelegate.h"
11
+ #import <ParisHilton/BFDebugService.h>
12
+
13
+ @implementation <%= @project_prefix %>BootstrapDelegate
14
+
15
+ #pragma mark - BFBootstrapDelegate
16
+
17
+ - (BFModuleConfiguration *)moduleConfigurationForBootstrap:(BFBootstrap *)bootstrap {
18
+
19
+ BFModuleConfiguration *config = [super moduleConfigurationForBootstrap:bootstrap];
20
+
21
+ // ShoppingList
22
+ {
23
+ BFSettingsSection *section = [BFSettingsSection sectionWithTitle:@"Shopping List" order:1];
24
+
25
+ [config addImplementation:[BFShoppingListService class] forProtocol:@protocol(BFShoppingListService) configureBlock:^(BFShoppingListService *service) {
26
+ service.updateWithTimeInterval.groupItem = self.debugSettingsGroup;
27
+ service.updateWithTimeInterval.visible = YES;
28
+ service.updateWithTimeInterval.section = section;
29
+ service.updateWithTimeInterval.title = @"List Update Interval";
30
+
31
+ service.maximumNumberOfShoppingListItems.groupItem = self.debugSettingsGroup;
32
+ service.maximumNumberOfShoppingListItems.visible = YES;
33
+ service.maximumNumberOfShoppingListItems.section = section;
34
+ service.maximumNumberOfShoppingListItems.title = @"Max List Item";
35
+
36
+ service.testThousandShoppingListItems.groupItem = self.debugSettingsGroup;
37
+ service.testThousandShoppingListItems.visible = YES;
38
+ service.testThousandShoppingListItems.section = section;
39
+ service.testThousandShoppingListItems.title = @"Set 1000 Items";
40
+ }];
41
+ [config addImplementation:[BFShoppingListUIProvider class] forProtocol:@protocol(BFShoppingListUIProvider) configureBlock:^(BFShoppingListUIProvider *provider) {
42
+
43
+ provider.menuItem.section = [BFMenuSection sectionWithTitle:provider.menuItem.section.title order:0];
44
+
45
+ provider.shoppingListOverlayButtonEnabled.groupItem = self.debugSettingsGroup;
46
+ provider.shoppingListOverlayButtonEnabled.visible = YES;
47
+ provider.shoppingListOverlayButtonEnabled.section = section;
48
+ provider.shoppingListOverlayButtonEnabled.title = @"Shopping List Button";
49
+ }];
50
+
51
+ [config addImplementation:[BFAutocompleteService class] forProtocol:@protocol(BFAutocompleteService) configureBlock:NULL];
52
+ }
53
+ [config addDynamicModule:@"Shopping List" order:0 enabledByDefault:YES forProtocols:@[@protocol(BFShoppingListService), @protocol(BFShoppingListUIProvider), @protocol(BFAutocompleteService)]];
54
+
55
+
56
+ // Stamps
57
+ {
58
+ BFSettingsSection *section = [BFSettingsSection sectionWithTitle:@"Stamps" order:1];
59
+
60
+ [config addImplementation:[BFJoinProgramService class] forProtocol:@protocol(BFJoinProgramService) configureBlock:^(BFJoinProgramService *service) {
61
+ service.identitySettingsItem.section = [BFSettingsSection sectionWithTitle:BFLocalizedString(@"stampsCard_label_settingsHeaderTitle") order:0];
62
+ }];
63
+ [config addImplementation:[BFJoinProgramUIProvider class] forProtocol:@protocol(BFJoinProgramUIProvider) configureBlock:NULL];
64
+
65
+ [config addImplementation:[BFStampsService class] forProtocol:@protocol(BFStampsService) configureBlock:NULL];
66
+ [config addImplementation:[BFStampsUIProvider class] forProtocol:@protocol(BFStampsUIProvider) withId:@"stamps" configureBlock:^(BFStampsUIProvider *provider) {
67
+
68
+ BFMenuSection *stampsSection = [BFMenuSection sectionWithTitle:provider.menuItem.section.title order:1];
69
+ provider.menuItem.section = stampsSection;
70
+ provider.menuItem.order = 0;
71
+
72
+ provider.rewardsMenuItem.section = stampsSection;
73
+ provider.rewardsMenuItem.order = 1;
74
+
75
+ provider.myCollectionMenuItem.section = stampsSection;
76
+ provider.myCollectionMenuItem.order = 2;
77
+
78
+ provider.programInfoMenuItem.section = stampsSection;
79
+ provider.programInfoMenuItem.order = 3;
80
+
81
+ provider.topMenuEnabledSetting.groupItem = self.debugSettingsGroup;
82
+ provider.topMenuEnabledSetting.visible = YES;
83
+ provider.topMenuEnabledSetting.section = section;
84
+ provider.topMenuEnabledSetting.title = @"Top Menu Enabled";
85
+
86
+ provider.rewardsDisplayTypeSetting.groupItem = self.debugSettingsGroup;
87
+ provider.rewardsDisplayTypeSetting.visible = YES;
88
+ provider.rewardsDisplayTypeSetting.section = section;
89
+ provider.rewardsDisplayTypeSetting.title = @"Rewards Display Type";
90
+
91
+ provider.myCollectionDisplayTypeSetting.groupItem = self.debugSettingsGroup;
92
+ provider.myCollectionDisplayTypeSetting.visible = YES;
93
+ provider.myCollectionDisplayTypeSetting.section = section;
94
+ provider.myCollectionDisplayTypeSetting.title = @"My Collection Display Type";
95
+ }];
96
+ }
97
+ [config addDynamicModule:@"Stamps" order:1 enabledByDefault:YES forProtocols:@[@protocol(BFJoinProgramService), @protocol(BFJoinProgramUIProvider), @protocol(BFStampsService), @protocol(BFStampsUIProvider)]];
98
+
99
+
100
+ // ProductAnnouncements
101
+ {
102
+ BFSettingsSection *section = [BFSettingsSection sectionWithTitle:@"Product Announcements" order:1];
103
+
104
+ [config addImplementation:[BFProductAnnouncementsService class] forProtocol:@protocol(BFProductAnnouncementsService) configureBlock:^(BFProductAnnouncementsService *service) {
105
+
106
+ BFGroupSettingsItem *promotionsBannerGroupItem = [[BFGroupSettingsItem alloc] init];
107
+ promotionsBannerGroupItem.section = section;
108
+ promotionsBannerGroupItem.title = @"Promotions Banner Settings";
109
+ promotionsBannerGroupItem.groupItem = self.debugSettingsGroup;
110
+
111
+ BFSettingsSection *bannerSection = [BFSettingsSection sectionWithTitle:@"Promotions Banner" order:0];
112
+
113
+ service.productBannerViewTimeInterval.groupItem = promotionsBannerGroupItem;
114
+ service.productBannerViewTimeInterval.visible = YES;
115
+ service.productBannerViewTimeInterval.section = bannerSection;
116
+ service.productBannerViewTimeInterval.order = 0;
117
+ service.productBannerViewTimeInterval.title = @"Banner time interval";
118
+
119
+ service.productBannerViewShouldTurnPageDirection.groupItem = promotionsBannerGroupItem;
120
+ service.productBannerViewShouldTurnPageDirection.visible = YES;
121
+ service.productBannerViewShouldTurnPageDirection.section = bannerSection;
122
+ service.productBannerViewShouldTurnPageDirection.order = 1;
123
+ service.productBannerViewShouldTurnPageDirection.title = @"Turn banner direction";
124
+
125
+ service.maxNumberProductBannerItems.groupItem = promotionsBannerGroupItem;
126
+ service.maxNumberProductBannerItems.visible = YES;
127
+ service.maxNumberProductBannerItems.section = bannerSection;
128
+ service.maxNumberProductBannerItems.order = 2;
129
+ service.maxNumberProductBannerItems.title = @"Max. numb. banner items";
130
+
131
+ service.productBannerViewShouldAnimatedLastTransition.groupItem = promotionsBannerGroupItem;
132
+ service.productBannerViewShouldAnimatedLastTransition.visible = YES;
133
+ service.productBannerViewShouldAnimatedLastTransition.section = bannerSection;
134
+ service.productBannerViewShouldAnimatedLastTransition.order = 3;
135
+ service.productBannerViewShouldAnimatedLastTransition.title = @"Animate last banner transition";
136
+
137
+ service.detailInShoppingListIFFValidSetting.visible = YES;
138
+ service.detailInShoppingListIFFValidSetting.groupItem = self.debugSettingsGroup;
139
+ service.detailInShoppingListIFFValidSetting.section = section;
140
+ service.detailInShoppingListIFFValidSetting.title = @"Detail in Shopping List IFF valid";
141
+ service.detailInShoppingListIFFValidSetting.defaultValue = @(YES);
142
+ }];
143
+
144
+ [config addImplementation:[BFSpecialOffersUIProvider class] forProtocol:@protocol(BFSpecialOffersUIProvider) configureBlock:^(BFSpecialOffersUIProvider *provider) {
145
+
146
+ provider.menuItem.section = [BFMenuSection sectionWithTitle:provider.menuItem.section.title order:2];
147
+
148
+ provider.displayTypeSetting.visible = YES;
149
+ provider.displayTypeSetting.groupItem = self.debugSettingsGroup;
150
+ provider.displayTypeSetting.section = section;
151
+ provider.displayTypeSetting.title = @"Promotions Display Type";
152
+ }];
153
+
154
+ [config addImplementation:[BFBonusStampOffersUIProvider class] forProtocol:@protocol(BFBonusStampOffersUIProvider) configureBlock:^(BFBonusStampOffersUIProvider *provider) {
155
+
156
+ provider.menuItem.section = [BFMenuSection sectionWithTitle:provider.menuItem.section.title order:3];
157
+
158
+ provider.displayTypeSetting.groupItem = self.debugSettingsGroup;
159
+ provider.displayTypeSetting.visible = YES;
160
+ provider.displayTypeSetting.section = section;
161
+ provider.displayTypeSetting.title = @"Bonus Stamps Display Type";
162
+ }];
163
+
164
+ [config addImplementation:[BFPromoReaderService class] forProtocol:@protocol(BFPromoReaderService) configureBlock:NULL];
165
+ }
166
+ [config addDynamicModule:@"Promotions" order:2 enabledByDefault:YES forProtocols:@[@protocol(BFProductAnnouncementsService), @protocol(BFSpecialOffersUIProvider)]];
167
+ [config addDynamicModule:@"Bonus Stamps" order:3 enabledByDefault:YES forProtocols:@[@protocol(BFProductAnnouncementsService), @protocol(BFBonusStampOffersUIProvider)]];
168
+
169
+ // Recipes
170
+ {
171
+ [config addImplementation:[BFRecipesService class] forProtocol:@protocol(BFRecipesService) configureBlock:NULL];
172
+ [config addImplementation:[BFRecipesUIProvider class] forProtocol:@protocol(BFRecipesUIProvider) configureBlock:^(BFRecipesUIProvider *provider) {
173
+
174
+ provider.menuItem.section = [BFMenuSection sectionWithTitle:provider.menuItem.section.title order:4];
175
+ }];
176
+ }
177
+ [config addDynamicModule:@"Recipes" order:4 enabledByDefault:YES forProtocols:@[@protocol(BFRecipesService), @protocol(BFRecipesUIProvider)]];
178
+
179
+ // StoreFinder
180
+ {
181
+ [config addImplementation:[BFStoreFinderService class] forProtocol:@protocol(BFStoreFinderService) configureBlock:NULL];
182
+ [config addImplementation:[BFStoreFinderUIProvider class] forProtocol:@protocol(BFStoreFinderUIProvider) configureBlock:^(BFStoreFinderUIProvider *provider) {
183
+
184
+ provider.menuItem.section = [BFMenuSection sectionWithTitle:provider.menuItem.section.title order:5];
185
+
186
+ provider.initialMapRegion = MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake(51.932, 5.279), 390008, 436163);
187
+ }];
188
+ }
189
+ [config addDynamicModule:@"Stores" order:5 enabledByDefault:YES forProtocols:@[@protocol(BFStoreFinderService), @protocol(BFStoreFinderUIProvider)]];
190
+
191
+ // Contact / Help
192
+ {
193
+ [config addImplementation:[BFFeedbackService class] forProtocol:@protocol(BFFeedbackService) configureBlock:NULL];
194
+ [config addImplementation:[BFContactUIProvider class] forProtocol:@protocol(BFContactUIProvider) configureBlock:^(BFContactUIProvider *provider) {
195
+
196
+ provider.menuItem.section = [BFMenuSection sectionWithTitle:provider.menuItem.section.title order:NSIntegerMax - 1];
197
+ }];
198
+
199
+ [config addImplementation:[BFFAQService class] forProtocol:@protocol(BFFAQService) configureBlock:NULL];
200
+ }
201
+ [config addDynamicModule:@"Contact" order:6 enabledByDefault:YES forProtocols:@[@protocol(BFContactUIProvider), @protocol(BFFeedbackService), @protocol(BFFAQService)]];
202
+
203
+ return config;
204
+ }
205
+
206
+ - (void)bootstrapDidCreateSettingsItems:(BFBootstrap *)bootstrap {
207
+ self.revision.section = [BFSettingsSection sectionWithTitle:BFLocalizedString(@"contact_header_settingsVersion") order:NSIntegerMax];
208
+ self.revision.title = BFLocalizedString(@"contact_label_settingsVersion");
209
+
210
+ BFSettingsSection *legalSection = [BFSettingsSection sectionWithTitle:BFLocalizedString(@"contact_header_settingsLegal") order:0];
211
+
212
+ self.termsAndConditionsSetting.section = legalSection;
213
+ self.termsAndConditionsSetting.order = 0;
214
+ self.termsAndConditionsSetting.title = BFLocalizedString(@"contact_label_settingsTermsConditions");
215
+ self.termsAndConditionsSetting.screenTitle = BFLocalizedString(@"contact_screenTitle_termsConditions");
216
+ self.termsAndConditionsSetting.dynamicContentKey = @"legalinfo";
217
+ self.termsAndConditionsSetting.trackingModule = @"settings";
218
+ self.termsAndConditionsSetting.trackingIdentifier = @"termsAndConditions";
219
+
220
+ self.privacyPolicySetting.section = legalSection;
221
+ self.privacyPolicySetting.order = 1;
222
+ self.privacyPolicySetting.title = BFLocalizedString(@"contact_label_settingsPrivacyPolicy");
223
+ self.privacyPolicySetting.screenTitle = BFLocalizedString(@"contact_screenTitle_privacyPolicy");
224
+ self.privacyPolicySetting.dynamicContentKey = @"privacypolicy";
225
+ self.privacyPolicySetting.trackingModule = @"settings";
226
+ self.privacyPolicySetting.trackingIdentifier = @"privacyPolicy";
227
+
228
+ self.resetSettingsItem.groupItem = self.debugSettingsGroup;
229
+ self.resetSettingsItem.title = @"Reset";
230
+ self.resetSettingsItem.section = bootstrap.dynamicModuleSettingsGroup.section;
231
+ [self.resetSettingsItem setActionBlock:^{
232
+ [[BFSettingsManager sharedManager] resetAllSettings];
233
+ [[BFSettingsManager sharedManager] resetUserDefaults];
234
+ [[BFBootstrap sharedBootstrap] restartBootstrap];
235
+ }];
236
+ }
237
+
238
+ - (BOOL)bootstrap:(BFBootstrap *)bootstrap didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
239
+
240
+ if ([bootstrap.window respondsToSelector:@selector(tintColor)]) {
241
+ bootstrap.window.tintColor = [UIColor colorWithHex:0x96C733];
242
+ }
243
+
244
+ #if DEBUG
245
+ // Revision
246
+ {
247
+ NSString *revision = <%= @project_name %>Revision;
248
+ if ([revision length] > 9) {
249
+ revision = [revision substringToIndex:9];
250
+ }
251
+ [[BFSettingsManager sharedManager] setValue:revision forSettingsItem:self.revision];
252
+ }
253
+ #endif
254
+
255
+ // Statusbar Style
256
+ {
257
+ [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
258
+ }
259
+ return YES;
260
+ }
261
+
262
+ - (NSString *)skinNameForBootstrap:(BFBootstrap *)bootstrap {
263
+ return @"<%= @project_prefix %>";
264
+ }
265
+
266
+ @end
@@ -0,0 +1,50 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>en</string>
7
+ <key>CFBundleDisplayName</key>
8
+ <string>${PRODUCT_NAME}</string>
9
+ <key>CFBundleExecutable</key>
10
+ <string>${EXECUTABLE_NAME}</string>
11
+ <key>CFBundleIdentifier</key>
12
+ <string><%= @project_identifier %></string>
13
+ <key>CFBundleInfoDictionaryVersion</key>
14
+ <string>6.0</string>
15
+ <key>CFBundleName</key>
16
+ <string><%= @project_name %></string>
17
+ <key>CFBundlePackageType</key>
18
+ <string>APPL</string>
19
+ <key>CFBundleShortVersionString</key>
20
+ <string>1.0</string>
21
+ <key>CFBundleSignature</key>
22
+ <string>????</string>
23
+ <key>CFBundleVersion</key>
24
+ <string>1.0</string>
25
+ <key>LSRequiresIPhoneOS</key>
26
+ <true/>
27
+ <key>UIAppFonts</key>
28
+ <array>
29
+ <string>InterFaceCorp-Regular.ttf</string>
30
+ <string>InterFaceCorp-Bold.ttf</string>
31
+ </array>
32
+ <key>UIRequiredDeviceCapabilities</key>
33
+ <array>
34
+ <string>armv7</string>
35
+ </array>
36
+ <key>UISupportedInterfaceOrientations</key>
37
+ <array/>
38
+ <key>UISupportedInterfaceOrientations~ipad</key>
39
+ <array>
40
+ <string>UIInterfaceOrientationPortrait</string>
41
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
42
+ <string>UIInterfaceOrientationLandscapeLeft</string>
43
+ <string>UIInterfaceOrientationLandscapeRight</string>
44
+ </array>
45
+ <key>UISupportedInterfaceOrientations~iphone</key>
46
+ <array>
47
+ <string>UIInterfaceOrientationPortrait</string>
48
+ </array>
49
+ </dict>
50
+ </plist>
@@ -0,0 +1,4 @@
1
+ platform :ios, '7.0'
2
+
3
+ xcodeproj '<%= @project_name %>'
4
+ workspace '<%= @project_name %>'
@@ -0,0 +1,13 @@
1
+ //
2
+ // Prefix header
3
+ //
4
+ // The contents of this file are implicitly included at the beginning of every source file.
5
+ //
6
+
7
+ #ifdef __OBJC__
8
+ #import <Foundation/Foundation.h>
9
+ #import <UIKit/UIKit.h>
10
+ #import <ParisHilton/ParisHilton.h>
11
+ #import <CoreProductModules/CoreProductModules.h>
12
+ #endif
13
+
@@ -0,0 +1 @@
1
+ # Welcome to <%= @project_name %>
@@ -0,0 +1,13 @@
1
+ //
2
+ // BFSidebarContainerViewController<%= @project_prefix %>Skinner.h
3
+ // <%= @project_name %>
4
+ //
5
+ // Created by cocoapods-icemobile-plugin
6
+ // Copyright (c) <%= @project_year %> IceMobile. All rights reserved.
7
+ //
8
+
9
+ #import <ParisHilton/BFSidebarContainerViewControllerSkinner.h>
10
+
11
+ @interface BFSidebarContainerViewController<%= @project_prefix %>Skinner : BFSidebarContainerViewControllerSkinner
12
+ @end
13
+
@@ -0,0 +1,28 @@
1
+ //
2
+ // BFSidebarContainerViewController<%= @project_prefix %>Skinner.h
3
+ // <%= @project_name %>
4
+ //
5
+ // Created by cocoapods-icemobile-plugin
6
+ // Copyright (c) <%= @project_year %> IceMobile. All rights reserved.
7
+ //
8
+
9
+ #import "BFSidebarContainerViewController<%= @project_prefix %>Skinner.h"
10
+
11
+ @implementation BFSidebarContainerViewController<%= @project_prefix %>Skinner
12
+
13
+ - (id)init {
14
+ if ((self = [super init])) {
15
+ self.headerImage = [UIImage imageNamed:@"view_core_brightShopperLogo"];
16
+ self.headerHeight = 78;
17
+ self.headerImageLeftMargin = 38;
18
+ }
19
+ return self;
20
+ }
21
+
22
+ - (void)skinObject:(BFSidebarContainerViewController *)skinnable {
23
+ [super skinObject:skinnable];
24
+
25
+ skinnable.menuTableView.automaticallyUpdateInsetsForShoppingListButton = NO;
26
+ }
27
+
28
+ @end
@@ -0,0 +1,16 @@
1
+ //
2
+ // main.m
3
+ // <%= @project_name %>
4
+ //
5
+ // Created by cocoapods-icemobile-plugin
6
+ // Copyright (c) <%= @project_year %> IceMobile. All rights reserved.
7
+ //
8
+
9
+ #import "<%= @project_prefix %>BootstrapDelegate.h"
10
+
11
+ int main(int argc, char * argv[])
12
+ {
13
+ @autoreleasepool {
14
+ return BFBootstrapMain(argc, argv, nil, NSStringFromClass([<%= @project_prefix %>BootstrapDelegate class]));
15
+ }
16
+ }
@@ -0,0 +1,3 @@
1
+ require 'pod/command/icegenerate'
2
+ require 'pod/helper/template_file'
3
+ require 'pod/helper/project_builder'
@@ -0,0 +1,3 @@
1
+ module CocoapodsIcemobilePlugin
2
+ VERSION = "0.0.8"
3
+ end
@@ -0,0 +1,59 @@
1
+ require 'cocoapods-icemobile-plugin'
2
+ require 'cocoapods'
3
+ require 'xcodeproj'
4
+
5
+ COCOAPODS_WORKSPACE_PATH = nil
6
+ PODS_PROJECT_PATH = "Pods/Pods.xcodeproj"
7
+ BRIGHT_PROJECT_PATHS = [ "ParisHilton/ParisHilton.xcodeproj",
8
+ "CoreProductModules/CoreProductModules.xcodeproj"]
9
+
10
+ Pod::Command.class_eval do
11
+ self.description = 'CocoaPods, the Objective-C library package manager.(Plugged in by cocoapods-icemobile-plugin)'
12
+ end
13
+
14
+ Pod::Installer.class_eval do
15
+ def install!
16
+ resolve_dependencies
17
+ download_dependencies
18
+ generate_pods_project
19
+ integrate_user_project if config.integrate_targets?
20
+ if is_bright_project?
21
+ integrate_bright_projects
22
+ else
23
+ puts "Bright Project Not Detected"
24
+ end
25
+ end
26
+
27
+ def is_bright_project?
28
+ project_paths = BRIGHT_PROJECT_PATHS
29
+ project_paths.each do |project_path|
30
+ return false if !File.exist?(project_path)
31
+ end
32
+ return true
33
+ end
34
+
35
+ def integrate_bright_projects
36
+ puts "Integrating Bright Projects Into Workspace"
37
+ workspace = Xcodeproj::Workspace.new_from_xcworkspace($COCOAPODS_WORKSPACE_PATH)
38
+
39
+ project_paths = BRIGHT_PROJECT_PATHS
40
+ project_paths.each do |project_path|
41
+ workspace.projpaths.push(project_path) unless workspace.projpaths.include?(project_path)
42
+ end
43
+
44
+ pods_project_path = PODS_PROJECT_PATH
45
+ if podfile.target_definitions.values.all?{ |td| td.empty? }
46
+ workspace.projpaths.delete(pods_project_path) if workspace.projpaths.include?(pods_project_path)
47
+ end
48
+
49
+ workspace.save_as($COCOAPODS_WORKSPACE_PATH)
50
+ end
51
+ end
52
+
53
+ Pod::Installer::UserProjectIntegrator.class_eval do
54
+ def integrate!
55
+ create_workspace
56
+ integrate_user_targets
57
+ $COCOAPODS_WORKSPACE_PATH = workspace_path
58
+ end
59
+ end
@@ -0,0 +1,140 @@
1
+ BRIGHT_PROJECT_URL = 'git@gitlab.development.ice.local:bright-ios/bright.git'
2
+ BRIGHT_BRANCH = 'CoreApplicationDelegate'
3
+ BRIGHT_REQUIRED = [ "CoreProductModules","ParisHilton" ]
4
+ BRIGHT_COMMON_RESOURCES = 'WhiteLabel/WhiteLabel/Resources/*'
5
+ BRIGHT_DEFAULT_ASSETCATALOG = 'WhiteLabel/Bright/Resources/Assets.xcassets'
6
+ BRIGHT_REVISION_SCRIPT = 'WhiteLabel/Generate-Revision.sh'
7
+
8
+ module Pod
9
+ class Command
10
+ class IceGenerate < Command
11
+
12
+ self.summary = "Generate a new IceMobile BrightShopper Project"
13
+ self.arguments = 'NAME','PREFIX'
14
+
15
+ def initialize(argv)
16
+ @name = argv.shift_argument
17
+ @prefix = argv.shift_argument
18
+ ENV['CP_PROJECT_NAME'] = @name
19
+ super
20
+ end
21
+
22
+ def validate!
23
+ super
24
+ help! "Usage: ice-generate <PROJECT_NAME> <PROJECT_PREFIX>" unless @name && @prefix
25
+ end
26
+
27
+ def run
28
+ new_project(@name)
29
+ end
30
+
31
+ public
32
+
33
+ def new_project(name)
34
+ if File.directory?("#{name}")
35
+ UI.puts"Fatal: Directory #{name} already exists. Please delete it and run again.".red
36
+ return
37
+ end
38
+
39
+ FileUtils.mkdir_p("#{@name}")
40
+ run_git_command("clone -b #{BRIGHT_BRANCH} #{BRIGHT_PROJECT_URL} ../#{@name}")
41
+
42
+ create_project_files
43
+ create_xcode_project
44
+ copy_resources
45
+ remove_unnecessary_folders
46
+
47
+ run_pod_command('install')
48
+
49
+ run_git_command("add -A")
50
+ run_git_command(%q(commit -m "Autogenerated project with cocoapods-icemobile-plugin"))
51
+ run_git_command("remote rm origin")
52
+ end
53
+
54
+ def remove_unnecessary_folders
55
+ Dir.foreach("./#{@name}") do |item|
56
+ next if item == '.' or item == '..' or item.start_with?".git" or item.start_with?"Pod" or item.start_with?"README.md" or BRIGHT_REQUIRED.include?(item) or item.start_with?"#{@name}"
57
+ UI.puts "Removing #{item}".green
58
+ FileUtils.rm_rf("./#{@name}/#{item}")
59
+ end
60
+ end
61
+
62
+ def create_project_files
63
+ #Create Directories
64
+ FileUtils.mkdir_p("#{@name}/#{@name}")
65
+ dirs = ["Supporting Files", "Skinners", "Resources", "Scripts"]
66
+ dirs.each { |dir| FileUtils.mkdir_p("#{@name}/#{@name}//#{dir}/") }
67
+ FileUtils.mkdir_p("#{@name}/#{@name}/Resources/Common/")
68
+
69
+ #Create Root Files
70
+ Dir.chdir "#{@name}" do
71
+ File.delete(".gitignore") if File.exist?(".gitignore")
72
+ Pod::Helper::Gitignore.new(@name,@prefix).file
73
+ Pod::Helper::Podfile.new(@name,@prefix).file
74
+ Pod::Helper::Readme.new(@name,@prefix).file
75
+ end
76
+
77
+ #Create Bootstrap Delegates
78
+ Dir.chdir "#{@name}/#{@name}" do
79
+ Pod::Helper::BootstrapDelegateH.new(@name,@prefix).file
80
+ Pod::Helper::BootstrapDelegateM.new(@name,@prefix).file
81
+ end
82
+
83
+ #Create Supporting Files
84
+ Dir.chdir "#{@name}/#{@name}/Supporting Files" do
85
+ Pod::Helper::InfoPlist.new(@name,@prefix).file
86
+ Pod::Helper::MainM.new(@name,@prefix).file
87
+ Pod::Helper::PrefixHeader.new(@name,@prefix).file
88
+ end
89
+
90
+ #Create SidebarContainerViewControllerSkinner
91
+ Dir.chdir "#{@name}/#{@name}/Skinners" do
92
+ Pod::Helper::SidebarContainerViewControllerSkinnerH.new(@name,@prefix).file
93
+ Pod::Helper::SidebarContainerViewControllerSkinnerM.new(@name,@prefix).file
94
+ end
95
+
96
+ end
97
+
98
+ def copy_resources
99
+ Dir.chdir(@name) do
100
+ UI.puts "Copying Resources from WhiteLabel".green
101
+ system("cp -r #{BRIGHT_COMMON_RESOURCES} #{@name}/Resources/Common/")
102
+ system("cp -r #{BRIGHT_DEFAULT_ASSETCATALOG} #{@name}/Resources/")
103
+ system("cp #{BRIGHT_REVISION_SCRIPT} #{@name}/Scripts")
104
+ end
105
+ end
106
+
107
+ def create_xcode_project
108
+ UI.puts "Creating #{@name}.xcodeproj"
109
+ builder = Helper::ProjectBuilder.new(@name,@prefix)
110
+ project = builder.build_project
111
+ end
112
+
113
+ def run_git_command(command)
114
+ Dir.chdir(@name) do
115
+ UI.puts "run git #{command}".green
116
+ system("git #{command}")
117
+ end
118
+ end
119
+
120
+ def run_pod_command(command)
121
+ Dir.chdir(@name) do
122
+ UI.puts "run pod #{command}".green
123
+ system("pod #{command}")
124
+ end
125
+ end
126
+
127
+ def run_bundle_command(command)
128
+ Dir.chdir(@name) do
129
+ _bundle_command = Gem.bin_path('bundler', 'bundle')
130
+
131
+ require 'bundler'
132
+ Bundler.with_clean_env do
133
+ UI.puts "run bundle #{command}".green
134
+ `"#{Gem.ruby}" "#{_bundle_command}" #{command}`
135
+ end
136
+ end
137
+ end
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,137 @@
1
+ require 'xcodeproj'
2
+
3
+ module Pod
4
+ module Helper
5
+ class ProjectBuilder
6
+
7
+ def initialize(name,prefix)
8
+ @name = name
9
+ @prefix = prefix
10
+ end
11
+
12
+ def build_project
13
+ create_project
14
+ configure_project
15
+ save_project
16
+ end
17
+
18
+ def create_project
19
+ @project = Xcodeproj::Project.new(@name, false)
20
+ end
21
+
22
+ def save_project
23
+ @project.save("#{@name}/#{@name}.xcodeproj")
24
+ @project
25
+ end
26
+
27
+ def configure_project
28
+ create_groups
29
+ create_target
30
+ add_required_files
31
+ add_default_frameworks
32
+ end
33
+
34
+
35
+ def create_target
36
+ @main_target = @project.new_target(:application, @name, :ios, 7.0)
37
+ @main_target.build_configuration_list.build_configurations.each do |bc|
38
+ bc.build_settings['GCC_PREFIX_HEADER'] = "$(SRCROOT)/#{@name}/Supporting Files/#{@name}-Prefix.pch"
39
+ bc.build_settings['OTHER_LDFLAGS'] = "$(inherited)"
40
+ bc.build_settings['HEADER_SEARCH_PATHS'] = "$(inherited) /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include $(BUILT_PRODUCTS_DIR)/../../Headers"
41
+ bc.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = "6.0"
42
+ bc.build_settings['CODE_SIGN_IDENTITY'] = "iPhone Developer"
43
+ bc.build_settings['INFOPLIST_FILE'] = "$(SRCROOT)/#{@name}/Supporting Files/#{@name}-Info.plist"
44
+ bc.build_settings['ASSETCATALOG_COMPILER_APPICON_NAME'] = "AppIcon"
45
+ bc.build_settings['ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME'] = "LaunchImage"
46
+ bc.build_settings['OTHER_LDFLAGS'] = "$(inherited) -ObjC"
47
+ bc.build_settings['FRAMEWORK_SEARCH_PATHS'] = "$(inherited) $(SRCROOT)/ParisHilton/Frameworks $(SRCROOT)/CoreProductModules/Frameworks"
48
+ bc.build_settings['ARCHS'] = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"
49
+ end
50
+
51
+ #Add Create Revision Build Phase
52
+ phase_name = "Create Revision"
53
+ phase = @main_target.new_shell_script_build_phase(phase_name)
54
+ phase.shell_script = "${SRCROOT}/#{@name}/Scripts/Generate-Revision.sh ${PROJECT_NAME} ${PROJECT_DIR}/#{@name}/Revision"
55
+ phase.show_env_vars_in_log = '1'
56
+ @main_target.build_phases.delete(phase)
57
+ @main_target.build_phases.insert(0,phase) # moving create revision build phase to top
58
+
59
+ #Add Paris Hilton Static Lib
60
+ target_name = "ParisHilton";
61
+ library = @project.frameworks_group.new_product_ref_for_target(target_name, :static_library)
62
+ @main_target.frameworks_build_phase.add_file_reference(library)
63
+
64
+ #Add CoreProductModules Static Lib
65
+ target_name = "CoreProductModules";
66
+ library = @project.frameworks_group.new_product_ref_for_target(target_name, :static_library)
67
+ @main_target.frameworks_build_phase.add_file_reference(library)
68
+
69
+ #Add Google Analytics
70
+ path = "ParisHilton/Frameworks/GoogleAnalytics.framework"
71
+ gref = @project.frameworks_group.new_file(path)
72
+ @main_target.frameworks_build_phase.add_file_reference(gref, true)
73
+
74
+ #Add zbar
75
+ path = "CoreProductModules/Frameworks/zbar.framework"
76
+ zref = @project.frameworks_group.new_file(path)
77
+ @main_target.frameworks_build_phase.add_file_reference(zref, true)
78
+ end
79
+
80
+ def create_groups
81
+ @sources = @project.new_group "#{@name}"
82
+ @skinners = @sources.new_group "Skinners"
83
+ @resources = @sources.new_group "Resources"
84
+ @common_resources = @resources.new_group "Common"
85
+ @common_resources_fonts = @common_resources.new_group "Fonts"
86
+ @revision = @sources.new_group "Revision"
87
+ @supporting_files= @sources.new_group "Supporting Files"
88
+ end
89
+
90
+ def add_required_files
91
+ sources_dir = "#{@name}/"
92
+ resources_dir = "#{sources_dir}Resources/"
93
+ common_resources_dir = "#{resources_dir}Common/"
94
+ common_resources_fonts_dir = "#{common_resources_dir}Fonts/"
95
+ supporting_files_dir = "#{sources_dir}Supporting Files/"
96
+ revision_dir = "#{sources_dir}Revision/"
97
+ skinner_dir = "#{sources_dir}Skinners/"
98
+
99
+ @sources.new_file(sources_dir + BootstrapDelegateH.new(@name,@prefix).name)
100
+ adm_ref = @sources.new_file(sources_dir + BootstrapDelegateM.new(@name,@prefix).name)
101
+
102
+ @supporting_files.new_file(Readme.new(@name,@prefix).name)
103
+ @supporting_files.new_file(supporting_files_dir + InfoPlist.new(@name,@prefix).name)
104
+ @supporting_files.new_file(supporting_files_dir + PrefixHeader.new(@name,@prefix).name)
105
+ mainm_ref = @supporting_files.new_file(supporting_files_dir + MainM.new(@name,@prefix).name)
106
+
107
+ @skinners.new_file(skinner_dir + SidebarContainerViewControllerSkinnerH.new(@name,@prefix).name)
108
+ skm_ref = @skinners.new_file(skinner_dir + SidebarContainerViewControllerSkinnerM.new(@name,@prefix).name)
109
+
110
+ @revision.new_file(revision_dir + "revision.h")
111
+ rev_ref = @revision.new_file(revision_dir + "revision.m")
112
+
113
+ #Add app asset catalog
114
+ ac_ref = @resources.new_file(resources_dir + "Assets.xcassets")
115
+
116
+ #Add common files
117
+ cac_ref = @common_resources.new_file(common_resources_dir + "Assets.xcassets")
118
+ ajson_ref = @common_resources.new_file(common_resources_dir + "AnalyticsStrings.json")
119
+ ljson_ref = @common_resources.new_file(common_resources_dir + "en.lproj/LocalizableStrings.json")
120
+ istrings_ref = @common_resources.new_file(common_resources_dir + "en.lproj/InfoPlist.strings")
121
+ demo_ref = @common_resources.new_reference(common_resources_dir + "en.lproj/Demo")
122
+
123
+ #Add common fonts
124
+ f1_ref = @common_resources_fonts.new_file(common_resources_fonts_dir + "InterFaceCorp-Bold.ttf")
125
+ f2_ref = @common_resources_fonts.new_file(common_resources_fonts_dir + "InterFaceCorp-Regular.ttf")
126
+
127
+ @main_target.add_file_references([adm_ref, mainm_ref, rev_ref, skm_ref])
128
+ @main_target.add_resources([ac_ref,cac_ref,f1_ref,f2_ref,ajson_ref,ljson_ref,istrings_ref,demo_ref])
129
+ end
130
+
131
+ def add_default_frameworks
132
+ @main_target.add_system_libraries [ 'xml2', 'iconv', 'sqlite3.0', 'z' ]
133
+ @main_target.add_system_frameworks [ 'MapKit', 'QuartzCore', 'AdSupport', 'AVFoundation', 'CoreVideo', 'CoreText', 'CoreMedia', 'CoreLocation', 'CoreData', 'Foundation', 'UIKit', 'CoreGraphics', 'SystemConfiguration' ]
134
+ end
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,138 @@
1
+ require 'erb'
2
+
3
+ module Pod
4
+ module Helper
5
+ class TemplateFile
6
+
7
+ def initialize(project_name,project_prefix)
8
+ @project_name = project_name
9
+ @project_prefix = project_prefix
10
+ @project_year = Date.today.strftime('%Y')
11
+ @project_identifier = "com.icemobile.#{project_name.downcase}"
12
+ end
13
+
14
+ def fixture_path
15
+ File.join(File.dirname(File.expand_path(__FILE__)), '../../../fixtures')
16
+ end
17
+
18
+ def write
19
+ output_file = nil
20
+ File.open(name, 'w') do |output_file|
21
+ output_file.puts template.result binding
22
+ end
23
+ output_file
24
+ end
25
+
26
+ def exists?
27
+ File.exists?(name)
28
+ end
29
+
30
+ public
31
+
32
+ def name
33
+ "TemplateFile"
34
+ end
35
+
36
+ def file
37
+ if exists?
38
+ File.read(name)
39
+ else
40
+ write
41
+ end
42
+ end
43
+
44
+ def template
45
+ ERB.new(File.read("#{fixture_path}/#{template_name}.erb"))
46
+ end
47
+
48
+ def template_name
49
+ name
50
+ end
51
+ end
52
+
53
+ class Gitignore < TemplateFile
54
+ def name
55
+ '.gitignore'
56
+ end
57
+ end
58
+
59
+ class BootstrapDelegateH < TemplateFile
60
+ def name
61
+ "#{@project_prefix}BootstrapDelegate.h"
62
+ end
63
+
64
+ def template_name
65
+ 'BootstrapDelegate.h'
66
+ end
67
+ end
68
+
69
+ class BootstrapDelegateM < TemplateFile
70
+ def name
71
+ "#{@project_prefix}BootstrapDelegate.m"
72
+ end
73
+
74
+ def template_name
75
+ 'BootstrapDelegate.m'
76
+ end
77
+ end
78
+
79
+ class InfoPlist < TemplateFile
80
+ def name
81
+ "#{@project_name}-Info.plist"
82
+ end
83
+
84
+ def template_name
85
+ 'Info.plist'
86
+ end
87
+ end
88
+
89
+ class MainM < TemplateFile
90
+ def name
91
+ 'main.m'
92
+ end
93
+ end
94
+
95
+ class Podfile < TemplateFile
96
+ def name
97
+ 'Podfile'
98
+ end
99
+ end
100
+
101
+ class PrefixHeader < TemplateFile
102
+ def name
103
+ "#{@project_name}-Prefix.pch"
104
+ end
105
+
106
+ def template_name
107
+ 'Prefix.pch'
108
+ end
109
+ end
110
+
111
+ class Readme < TemplateFile
112
+ def name
113
+ 'README.md'
114
+ end
115
+ end
116
+
117
+ class SidebarContainerViewControllerSkinnerH < TemplateFile
118
+ def name
119
+ "BFSidebarContainerViewController#{@project_prefix}Skinner.h"
120
+ end
121
+
122
+ def template_name
123
+ 'SidebarContainerViewControllerSkinner.h'
124
+ end
125
+ end
126
+
127
+ class SidebarContainerViewControllerSkinnerM < TemplateFile
128
+ def name
129
+ "BFSidebarContainerViewController#{@project_prefix}Skinner.m"
130
+ end
131
+
132
+ def template_name
133
+ 'SidebarContainerViewControllerSkinner.m'
134
+ end
135
+ end
136
+
137
+ end
138
+ end
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cocoapods-icemobile-plugin
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.8
5
+ platform: ruby
6
+ authors:
7
+ - Sumeru Chatterjee
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: cocoapods
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '0.29'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '0.29'
27
+ description: IceMobile Plugin for CocoaPods (Used within IceMobile for internal projects.
28
+ email: sumeru@icemobile.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - .gitignore
34
+ - .yardopts
35
+ - CHANGELOG.md
36
+ - Gemfile
37
+ - README.md
38
+ - Rakefile
39
+ - cocoapods-icemobile-plugin.gemspec
40
+ - fixtures/.gitignore.erb
41
+ - fixtures/BootstrapDelegate.h.erb
42
+ - fixtures/BootstrapDelegate.m.erb
43
+ - fixtures/Info.plist.erb
44
+ - fixtures/Podfile.erb
45
+ - fixtures/Prefix.pch.erb
46
+ - fixtures/README.md.erb
47
+ - fixtures/SidebarContainerViewControllerSkinner.h.erb
48
+ - fixtures/SidebarContainerViewControllerSkinner.m.erb
49
+ - fixtures/main.m.erb
50
+ - lib/cocoapods-icemobile-plugin.rb
51
+ - lib/cocoapods-icemobile-plugin/version.rb
52
+ - lib/cocoapods_plugin.rb
53
+ - lib/pod/command/icegenerate.rb
54
+ - lib/pod/helper/project_builder.rb
55
+ - lib/pod/helper/template_file.rb
56
+ homepage: http://www.icemobile.com
57
+ licenses: []
58
+ metadata: {}
59
+ post_install_message:
60
+ rdoc_options: []
61
+ require_paths:
62
+ - lib
63
+ required_ruby_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ requirements: []
74
+ rubyforge_project:
75
+ rubygems_version: 2.2.2
76
+ signing_key:
77
+ specification_version: 4
78
+ summary: CocoaPods plugin for internal icemobile projects.
79
+ test_files: []
80
+ has_rdoc: