cocoapods-icemobile-plugin 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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: