mvcgen 0.1.14 → 0.1.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mvcgen/filemanager.rb +1 -1
  3. data/lib/mvcgen/generator.rb +36 -33
  4. data/lib/mvcgen/version.rb +1 -1
  5. data/lib/templates/default/mvcspec.yml +1 -1
  6. data/lib/templates/default/podfile/Podfile +73 -0
  7. data/lib/templates/default/swift/AppDelegate.swift +181 -0
  8. data/lib/templates/default/swift/Assets.xcassets/AppIcon.appiconset/Contents.json +133 -0
  9. data/lib/templates/default/swift/Assets.xcassets/Back.imageset/Contents.json +21 -0
  10. data/lib/templates/default/swift/Assets.xcassets/Back.imageset/icons8-back-filled-100-2.png +0 -0
  11. data/lib/templates/default/swift/Assets.xcassets/Contents.json +6 -0
  12. data/lib/templates/default/swift/Assets.xcassets/Down.imageset/Contents.json +21 -0
  13. data/lib/templates/default/swift/Assets.xcassets/Down.imageset/icons8-expand-arrow-filled-100.png +0 -0
  14. data/lib/templates/default/swift/Assets.xcassets/Forward.imageset/Contents.json +21 -0
  15. data/lib/templates/default/swift/Assets.xcassets/Forward.imageset/icons8-forward-filled-100.png +0 -0
  16. data/lib/templates/default/swift/Assets.xcassets/Key.imageset/Contents.json +1 -0
  17. data/lib/templates/default/swift/Assets.xcassets/Key.imageset/universal_Key.pdf +0 -0
  18. data/lib/templates/default/swift/Assets.xcassets/Shopping-cart.imageset/Contents.json +1 -0
  19. data/lib/templates/default/swift/Assets.xcassets/Shopping-cart.imageset/universal_Shopping-cart.pdf +0 -0
  20. data/lib/templates/default/swift/Assets.xcassets/Tick.imageset/Contents.json +21 -0
  21. data/lib/templates/default/swift/Assets.xcassets/Tick.imageset/icons8-Checkmark-96 (1).png +0 -0
  22. data/lib/templates/default/swift/Assets.xcassets/Up.imageset/Contents.json +22 -0
  23. data/lib/templates/default/swift/Assets.xcassets/Up.imageset/icons8-collapse-arrow-100.png +0 -0
  24. data/lib/templates/default/swift/Assets.xcassets/Up.imageset/icons8-collapse-arrow-50.png +0 -0
  25. data/lib/templates/default/swift/Assets.xcassets/Uruguay.imageset/Contents.json +21 -0
  26. data/lib/templates/default/swift/Assets.xcassets/Uruguay.imageset/icons8-uruguay-40.png +0 -0
  27. data/lib/templates/default/swift/Assets.xcassets/Wallet.imageset/Contents.json +1 -0
  28. data/lib/templates/default/swift/Assets.xcassets/Wallet.imageset/universal_Wallet.pdf +0 -0
  29. data/lib/templates/default/swift/Assets.xcassets/Welcome_001.imageset/Contents.json +12 -0
  30. data/lib/templates/default/swift/Assets.xcassets/Welcome_001.imageset/Icons_NotATour_Welcome_001.pdf +0 -0
  31. data/lib/templates/default/swift/Assets.xcassets/Welcome_002.imageset/Contents.json +12 -0
  32. data/lib/templates/default/swift/Assets.xcassets/Welcome_002.imageset/Icons_NotATour_Welcome_002.pdf +0 -0
  33. data/lib/templates/default/swift/Assets.xcassets/Welcome_003.imageset/Contents.json +12 -0
  34. data/lib/templates/default/swift/Assets.xcassets/Welcome_003.imageset/Icons_NotATour_Welcome_003.pdf +0 -0
  35. data/lib/templates/default/swift/Assets.xcassets/Welcome_004.imageset/Contents.json +12 -0
  36. data/lib/templates/default/swift/Assets.xcassets/Welcome_004.imageset/Icons_NotATour_Welcome_004.pdf +0 -0
  37. data/lib/templates/default/swift/Assets.xcassets/alert_beach.imageset/Contents.json +21 -0
  38. data/lib/templates/default/swift/Assets.xcassets/alert_beach.imageset/icons8-beach-64.png +0 -0
  39. data/lib/templates/default/swift/Assets.xcassets/alert_nobaggage.imageset/Contents.json +21 -0
  40. data/lib/templates/default/swift/Assets.xcassets/alert_nobaggage.imageset/icons8-no-baggage-100.png +0 -0
  41. data/lib/templates/default/swift/Assets.xcassets/alert_signpost.imageset/Contents.json +21 -0
  42. data/lib/templates/default/swift/Assets.xcassets/alert_signpost.imageset/icons8-signpost-64.png +0 -0
  43. data/lib/templates/default/swift/Assets.xcassets/alert_sunbed.imageset/Contents.json +21 -0
  44. data/lib/templates/default/swift/Assets.xcassets/alert_sunbed.imageset/sunbed.png +0 -0
  45. data/lib/templates/default/swift/Assets.xcassets/arrow.imageset/Contents.json +21 -0
  46. data/lib/templates/default/swift/Assets.xcassets/arrow.imageset/arrow.pdf +0 -0
  47. data/lib/templates/default/swift/Assets.xcassets/baggage.imageset/Contents.json +22 -0
  48. data/lib/templates/default/swift/Assets.xcassets/baggage.imageset/baggage.png +0 -0
  49. data/lib/templates/default/swift/Assets.xcassets/baggage.imageset/baggage@2x.png +0 -0
  50. data/lib/templates/default/swift/Assets.xcassets/burger.imageset/Contents.json +21 -0
  51. data/lib/templates/default/swift/Assets.xcassets/burger.imageset/burger.pdf +0 -0
  52. data/lib/templates/default/swift/Assets.xcassets/calendar-white.imageset/Contents.json +12 -0
  53. data/lib/templates/default/swift/Assets.xcassets/calendar-white.imageset/icons8-calendar.pdf +70 -0
  54. data/lib/templates/default/swift/Assets.xcassets/calendar.imageset/Contents.json +12 -0
  55. data/lib/templates/default/swift/Assets.xcassets/calendar.imageset/calendar.pdf +0 -0
  56. data/lib/templates/default/swift/Assets.xcassets/dots.imageset/Contents.json +24 -0
  57. data/lib/templates/default/swift/Assets.xcassets/dots.imageset/dots.pdf +0 -0
  58. data/lib/templates/default/swift/Assets.xcassets/edit.imageset/Contents.json +12 -0
  59. data/lib/templates/default/swift/Assets.xcassets/edit.imageset/edit.pdf +0 -0
  60. data/lib/templates/default/swift/Assets.xcassets/emptylogin.imageset/Contents.json +12 -0
  61. data/lib/templates/default/swift/Assets.xcassets/emptylogin.imageset/empty state loging.pdf +0 -0
  62. data/lib/templates/default/swift/Assets.xcassets/envelope.imageset/Contents.json +12 -0
  63. data/lib/templates/default/swift/Assets.xcassets/envelope.imageset/icons8-envelope.pdf +70 -0
  64. data/lib/templates/default/swift/Assets.xcassets/expandSection.imageset/Contents.json +22 -0
  65. data/lib/templates/default/swift/Assets.xcassets/expandSection.imageset/icons8-expand-arrow-100.png +0 -0
  66. data/lib/templates/default/swift/Assets.xcassets/expandSection.imageset/icons8-expand-arrow-50.png +0 -0
  67. data/lib/templates/default/swift/Assets.xcassets/facebook.imageset/Contents.json +24 -0
  68. data/lib/templates/default/swift/Assets.xcassets/facebook.imageset/icons8-facebook-f.pdf +68 -0
  69. data/lib/templates/default/swift/Assets.xcassets/filter-white.imageset/Contents.json +12 -0
  70. data/lib/templates/default/swift/Assets.xcassets/filter-white.imageset/icons8-adjust (3).pdf +0 -0
  71. data/lib/templates/default/swift/Assets.xcassets/filter.imageset/Contents.json +15 -0
  72. data/lib/templates/default/swift/Assets.xcassets/filter.imageset/filter.pdf +0 -0
  73. data/lib/templates/default/swift/Assets.xcassets/food.imageset/Contents.json +21 -0
  74. data/lib/templates/default/swift/Assets.xcassets/food.imageset/food.png +0 -0
  75. data/lib/templates/default/swift/Assets.xcassets/forgot-password.imageset/Contents.json +23 -0
  76. data/lib/templates/default/swift/Assets.xcassets/forgot-password.imageset/page-1.png +0 -0
  77. data/lib/templates/default/swift/Assets.xcassets/forgot-password.imageset/page-1@2x.png +0 -0
  78. data/lib/templates/default/swift/Assets.xcassets/forgot-password.imageset/page-1@3x.png +0 -0
  79. data/lib/templates/default/swift/Assets.xcassets/heart-active.imageset/Contents.json +12 -0
  80. data/lib/templates/default/swift/Assets.xcassets/heart-active.imageset/favortio activo.pdf +0 -0
  81. data/lib/templates/default/swift/Assets.xcassets/heart.imageset/Contents.json +12 -0
  82. data/lib/templates/default/swift/Assets.xcassets/heart.imageset/favorito inactivo.pdf +0 -0
  83. data/lib/templates/default/swift/Assets.xcassets/icons8-delete.imageset/Contents.json +12 -0
  84. data/lib/templates/default/swift/Assets.xcassets/icons8-delete.imageset/icons8-delete (3).pdf +69 -0
  85. data/lib/templates/default/swift/Assets.xcassets/lock.imageset/Contents.json +12 -0
  86. data/lib/templates/default/swift/Assets.xcassets/lock.imageset/icons8-lock.pdf +69 -0
  87. data/lib/templates/default/swift/Assets.xcassets/man-avatar.imageset/Contents.json +12 -0
  88. data/lib/templates/default/swift/Assets.xcassets/man-avatar.imageset/man-avatar.pdf +1149 -1
  89. data/lib/templates/default/swift/Assets.xcassets/new-notification.imageset/Contents.json +21 -0
  90. data/lib/templates/default/swift/Assets.xcassets/new-notification.imageset/icons8-filled-circle-filled-100.png +0 -0
  91. data/lib/templates/default/swift/Assets.xcassets/no-fav.imageset/Contents.json +21 -0
  92. data/lib/templates/default/swift/Assets.xcassets/no-fav.imageset/page-1@2x.png +0 -0
  93. data/lib/templates/default/swift/Assets.xcassets/notificaciones.imageset/Contents.json +12 -0
  94. data/lib/templates/default/swift/Assets.xcassets/notificaciones.imageset/notificaciones.pdf +0 -0
  95. data/lib/templates/default/swift/Assets.xcassets/notification.imageset/Contents.json +21 -0
  96. data/lib/templates/default/swift/Assets.xcassets/notification.imageset/icons8-notification-100.png +0 -0
  97. data/lib/templates/default/swift/Assets.xcassets/other.imageset/Contents.json +21 -0
  98. data/lib/templates/default/swift/Assets.xcassets/other.imageset/other.png +0 -0
  99. data/lib/templates/default/swift/Assets.xcassets/page-1.imageset/Contents.json +21 -0
  100. data/lib/templates/default/swift/Assets.xcassets/page-1.imageset/page-1@2x.png +0 -0
  101. data/lib/templates/default/swift/Assets.xcassets/page-3.imageset/Contents.json +21 -0
  102. data/lib/templates/default/swift/Assets.xcassets/page-3.imageset/page-1@2x.png +0 -0
  103. data/lib/templates/default/swift/Assets.xcassets/photo.imageset/Contents.json +24 -0
  104. data/lib/templates/default/swift/Assets.xcassets/photo.imageset/photo.pdf +0 -0
  105. data/lib/templates/default/swift/Assets.xcassets/plus-white.imageset/Contents.json +21 -0
  106. data/lib/templates/default/swift/Assets.xcassets/plus-white.imageset/icons8-plus-math-26.png +0 -0
  107. data/lib/templates/default/swift/Assets.xcassets/plus.imageset/+.pdf +0 -0
  108. data/lib/templates/default/swift/Assets.xcassets/plus.imageset/Contents.json +12 -0
  109. data/lib/templates/default/swift/Assets.xcassets/register.imageset/Contents.json +12 -0
  110. data/lib/templates/default/swift/Assets.xcassets/register.imageset/registro.pdf +0 -0
  111. data/lib/templates/default/swift/Assets.xcassets/search.imageset/Contents.json +15 -0
  112. data/lib/templates/default/swift/Assets.xcassets/search.imageset/search.pdf +0 -0
  113. data/lib/templates/default/swift/Assets.xcassets/settings.imageset/Contents.json +23 -0
  114. data/lib/templates/default/swift/Assets.xcassets/settings.imageset/icons8-settings-100.png +0 -0
  115. data/lib/templates/default/swift/Assets.xcassets/settings.imageset/icons8-settings-50.png +0 -0
  116. data/lib/templates/default/swift/Assets.xcassets/settings.imageset/icons8-settings-500.png +0 -0
  117. data/lib/templates/default/swift/Assets.xcassets/shape.imageset/Contents.json +23 -0
  118. data/lib/templates/default/swift/Assets.xcassets/shape.imageset/shape.png +0 -0
  119. data/lib/templates/default/swift/Assets.xcassets/shape.imageset/shape@2x.png +0 -0
  120. data/lib/templates/default/swift/Assets.xcassets/shape.imageset/shape@3x.png +0 -0
  121. data/lib/templates/default/swift/Assets.xcassets/signpost.imageset/Contents.json +21 -0
  122. data/lib/templates/default/swift/Assets.xcassets/signpost.imageset/icons8-signpost-50.png +0 -0
  123. data/lib/templates/default/swift/Assets.xcassets/stars.imageset/Contents.json +24 -0
  124. data/lib/templates/default/swift/Assets.xcassets/stars.imageset/stars.pdf +0 -0
  125. data/lib/templates/default/swift/Assets.xcassets/terms.imageset/Contents.json +12 -0
  126. data/lib/templates/default/swift/Assets.xcassets/terms.imageset/terminos y condiciones.pdf +0 -0
  127. data/lib/templates/default/swift/Assets.xcassets/tickets.imageset/Contents.json +12 -0
  128. data/lib/templates/default/swift/Assets.xcassets/tickets.imageset/tickets.pdf +0 -0
  129. data/lib/templates/default/swift/Assets.xcassets/user.imageset/Contents.json +22 -0
  130. data/lib/templates/default/swift/Assets.xcassets/user.imageset/icons8-account-100.png +0 -0
  131. data/lib/templates/default/swift/Assets.xcassets/user.imageset/icons8-account-50.png +0 -0
  132. data/lib/templates/default/swift/Assets.xcassets/visa.imageset/Contents.json +21 -0
  133. data/lib/templates/default/swift/Assets.xcassets/visa.imageset/visa.png +0 -0
  134. data/lib/templates/default/swift/Config/Config.swift +1 -1
  135. data/lib/templates/default/swift/Controllers/Login/ForgetPasswordVC.swift +125 -0
  136. data/lib/templates/default/swift/Controllers/Login/LoginVC.swift +244 -0
  137. data/lib/templates/default/swift/Controllers/Login/RegisterVC.swift +213 -0
  138. data/lib/templates/default/swift/Controllers/Notifications/Cells/NotificationCell.swift +51 -0
  139. data/lib/templates/default/swift/Controllers/Notifications/NotificationsVC.swift +164 -0
  140. data/lib/templates/default/swift/Controllers/OtherLogin/ForgetPasswordTVC.swift +98 -0
  141. data/lib/templates/default/swift/Controllers/OtherLogin/LoginTVC.swift +245 -0
  142. data/lib/templates/default/swift/Controllers/OtherLogin/OtherRegisterVC.swift +299 -0
  143. data/lib/templates/default/swift/Controllers/OtherLogin/SelectLanguageCell.swift +17 -0
  144. data/lib/templates/default/swift/Controllers/OtherLogin/SelectLanguageVC.swift +116 -0
  145. data/lib/templates/default/swift/Controllers/OtherLogin/TermsAndConditionsVC.swift +76 -0
  146. data/lib/templates/default/swift/Controllers/Profile/AboutUsVC.swift +93 -0
  147. data/lib/templates/default/swift/Controllers/Profile/Cells/AboutUsImageCell.swift +66 -0
  148. data/lib/templates/default/swift/Controllers/Profile/Cells/DescriptionCell.swift +16 -0
  149. data/lib/templates/default/swift/Controllers/Profile/Cells/DestinationCell.swift +35 -0
  150. data/lib/templates/default/swift/Controllers/Profile/Cells/DestinationCellView.xib +84 -0
  151. data/lib/templates/default/swift/Controllers/Profile/Cells/FavoriteCollectionCell.swift +24 -0
  152. data/lib/templates/default/swift/Controllers/Profile/Cells/ImagesCollectionViewCell.swift +15 -0
  153. data/lib/templates/default/swift/Controllers/Profile/ProfileContainerVC.swift +72 -0
  154. data/lib/templates/default/swift/Controllers/Profile/ProfileTVC.swift +581 -0
  155. data/lib/templates/default/swift/Controllers/Tutorial/TutorialVC.swift +121 -0
  156. data/lib/templates/default/swift/Extensions/ArrayDuplicates.swift +35 -0
  157. data/lib/templates/default/swift/Extensions/Buttons.swift +1 -1
  158. data/lib/templates/default/swift/Extensions/CustomCamera.swift +65 -0
  159. data/lib/templates/default/swift/Extensions/GradientView.swift +121 -0
  160. data/lib/templates/default/swift/Extensions/HideKeyboard.swift +22 -0
  161. data/lib/templates/default/swift/Extensions/Images.swift +82 -0
  162. data/lib/templates/default/swift/Extensions/InnerShadowExtension.swift +83 -0
  163. data/lib/templates/default/swift/Extensions/TableViewEmptyView.swift +30 -0
  164. data/lib/templates/default/swift/Extensions/TapEffectExtension.swift +48 -0
  165. data/lib/templates/default/swift/Extensions/{ColorHex.swift → UIColorExtensions.swift} +2 -2
  166. data/lib/templates/default/swift/Extensions/UnderlinedTextView.swift +61 -0
  167. data/lib/templates/default/swift/Extensions/UnderlinedWithIconTextField.swift +55 -0
  168. data/lib/templates/default/swift/Helper/APIHelper.swift +4 -4
  169. data/lib/templates/default/swift/Helper/APIManager.swift +81 -14
  170. data/lib/templates/default/swift/Helper/APIRequestBody.swift +1 -1
  171. data/lib/templates/default/swift/Helper/AWSManager.swift +1 -1
  172. data/lib/templates/default/swift/Helper/FilesManager.swift +1 -1
  173. data/lib/templates/default/swift/Helper/S3Manager.swift +1 -1
  174. data/lib/templates/default/swift/Helper/Utils.swift +3 -1
  175. data/lib/templates/default/swift/Info.plist +53 -0
  176. data/lib/templates/default/swift/Models/Country.swift +28 -0
  177. data/lib/templates/default/swift/Models/Managers/UserManager.swift +1 -1
  178. data/lib/templates/default/swift/Models/Notif.swift +71 -0
  179. data/lib/templates/default/swift/Models/Responses/BaseResponse.swift +1 -1
  180. data/lib/templates/default/swift/Models/Responses/NotificationResponse.swift +24 -0
  181. data/lib/templates/default/swift/Models/Responses/UserResponse.swift +1 -1
  182. data/lib/templates/default/swift/Models/Responses/UserSingupResponse.swift +1 -1
  183. data/lib/templates/default/swift/Models/User.swift +2 -2
  184. data/lib/templates/default/swift/UI/Storyboards/Home.storyboard +2113 -0
  185. data/lib/templates/default/swift/UI/Storyboards/Login.storyboard +814 -0
  186. data/lib/templates/default/swift/UI/Storyboards/OtherLogin.storyboard +1031 -0
  187. data/lib/templates/default/swift/UI/Views/EmptyTableView/EmptyTableLabelView.swift +18 -0
  188. data/lib/templates/default/swift/UI/Views/EmptyTableView/NoNotificationView.swift +16 -0
  189. data/lib/templates/default/swift/UI/Views/EmptyTableView/Xibs/EmptyTableLabelView.xib +72 -0
  190. data/lib/templates/default/swift/UI/Views/EmptyTableView/Xibs/NoNotificationsView.xib +61 -0
  191. metadata +176 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 751e9be161142a542aa1b6476c958c9e9992fe35
4
- data.tar.gz: 8e113bc4776a6c07e6c181d30871bcfc476f220e
3
+ metadata.gz: 527aae911488c059b370377b568eb048100bef88
4
+ data.tar.gz: 20d4c574b8e76bbabd3bb910f3fc87de6b2022f0
5
5
  SHA512:
6
- metadata.gz: 54df0effd6c136733b1fbcf8756d0213dd76162840ee6eb04088a14a4258ff78b5d483a95c20a23e7a1825a93e0573c87cf6cb30a5dcfdb1385e41fb0a322773
7
- data.tar.gz: a10b148bb0567ddcc2e66a0857b5b7841455561518245fefbd006e052f0e25921ab0998f2c00ecb50302840f723a1264252c85c0f6ec8fd41dac4c5d595278e1
6
+ metadata.gz: 1e39f86088333a7f5293c923c330f3dfc12fce17677cabb026d832ee1d6b3098988d5d43b3b2c0fcc60af4f356c18a250b828ccefc717e88c2aadd2ea9dbb441
7
+ data.tar.gz: e5678b20e1f644360626037b64c0a18168f35953bb92e9a7fc1dfb6f5a6b76328e8357c705cc6e15679baf6a3f1a1aa6de52d53630fa92ad3a7e1b6a3ce1da0e
@@ -39,7 +39,7 @@ module MVCgen
39
39
  to_expand_path = File.expand_path(to)
40
40
  from_expand_path = File.expand_path(from)
41
41
  FileUtils.mkdir_p (to_expand_path)
42
- FileUtils.copy_entry(from_expand_path, to_expand_path)
42
+ FileUtils.copy_entry(from_expand_path, to_expand_path, remove_destination = true)
43
43
  end
44
44
 
45
45
  # Move a system item to another place
@@ -5,30 +5,23 @@ module MVCgen
5
5
  # Cosntants
6
6
  class Generator
7
7
  # Constants
8
- LANGUAGES = ["swift"]
9
- REPLACEMENT_KEY = "MVC"
8
+ LANGUAGES = ["swift", "podfile"]
9
+ REPLACEMENT_KEY = "MVCGEN"
10
10
 
11
- def self.create_xcode_project(template, language, name, path)
12
- puts "Create Xcode Project"
13
- puts "Template: #{template}"
14
- puts "Language: #{language}"
15
- puts "Name: #{name}"
16
- puts "Path: #{path}"
17
- proj = Xcodeproj::Project.new("#{path}/#{name}.xcodeproj")
18
- app_target = proj.new_target(:application, "#{name} - Development", :ios, '10.0')
19
- # header_ref = proj.main_group.new_file('./Class.h')
20
- # implm_ref = proj.main_group.new_file('./Class.m')
21
- basefiles_path = "#{Gem.dir}/gems/#{MVCgen::NAME}-#{MVCgen::VERSION}/lib/basexcodetemplate"
22
- to_path = "#{path}/#{name}"
23
- MVCgen::FileManager.copy(basefiles_path, to_path)
24
- files = MVCgen::FileManager.files_in_path(to_path)
25
- self.addxcodefiles(to_path,proj.main_group,app_target)
26
- # app_target.add_file_references([files])
27
- proj.save
28
- # podfile_path = "#{Gem.dir}/gems/#{MVCgen::NAME}-#{MVCgen::VERSION}/lib/podfile/Podfile"
29
- # to_path = "#{path}/#{name}"
11
+ def self.add_to_xcode(path, name, filespath)
12
+ puts "Adding files to xcode project..."
13
+ # proj = Xcodeproj::Project.new("#{path}/#{name}.xcodeproj")
14
+ # app_target_dev = proj.new_target(:application, "#{name} - Development", :ios, '10.0')
15
+ # header_ref = proj.main_group.new_file('./Class.swift')
16
+
17
+ project_file = "#{path}/#{name}.xcodeproj"
18
+ proj = Xcodeproj::Project.open(project_file)
30
19
 
31
- # MVCgen::FileManager.copy(podfile_path, to_path)
20
+ # TODO: view this to improve path files: allowable_project_paths
21
+ self.addxcodefiles(filespath,proj.main_group,proj.targets.first)
22
+
23
+ proj.save
24
+ puts "Finish adding files"
32
25
  end
33
26
 
34
27
  def self.addxcodefiles(direc, current_group, main_target)
@@ -38,9 +31,9 @@ module MVCgen
38
31
  new_folder = File.basename(item)
39
32
  created_group = current_group.new_group(new_folder)
40
33
  self.addxcodefiles("#{item}/*", created_group, main_target)
41
- # elsif item.include? ".xcassets"
42
- # i = current_group.new_reference(item)
43
- # main_target.add_file_references([item])
34
+ elsif item == "Assets.xcassets"
35
+ main_target.add_frameworks_bundles([item])
36
+ break
44
37
  else
45
38
  i = current_group.new_file(item)
46
39
  main_target.add_file_references([i])
@@ -51,17 +44,26 @@ module MVCgen
51
44
  # Main method that generate the MVC files structure
52
45
  def self.generate_mvc(template, language, name, path)
53
46
 
54
- self.create_xcode_project(template, language, name, path)
55
47
  puts "Generating MVC-Module"
56
- # puts "Template: #{template}"
57
- # puts "Language: #{language}"
58
- # puts "Name: #{name}"
59
- # puts "Path: #{path}"
48
+ puts "Template: #{template}"
49
+ puts "Language: #{language}"
50
+ puts "Name: #{name}"
51
+ puts "Path: #{path}"
52
+
53
+ # Copy language files to project folder
60
54
  path_from = MVCgen::FileManager.path_from(template, language)
61
55
  path_to = MVCgen::FileManager.destination_mvc_path(path, name)
62
56
  MVCgen::FileManager.copy(path_from, path_to)
63
- files = MVCgen::FileManager.files_in_path(path_to)
57
+
58
+ # Copy podfile to project folder
59
+ podfile_path = MVCgen::FileManager.path_from(template, "podfile")
60
+ expand_path = File.expand_path(path)
61
+ MVCgen::FileManager.copy(podfile_path, expand_path)
62
+
63
+ # TODO: later if needed
64
+ files = MVCgen::FileManager.files_in_path(expand_path)
64
65
  rename_files(files,name)
66
+ self.add_to_xcode(path, name, path_to)
65
67
  end
66
68
 
67
69
  # Rename all the files in the files array
@@ -69,8 +71,9 @@ module MVCgen
69
71
  # - It renames the content of the file
70
72
  def self.rename_files(files, name)
71
73
  files.each do |file|
72
- raise SyntaxError unless file.include? (MVCgen::Generator::REPLACEMENT_KEY)
73
- rename_file(file, name)
74
+ if file.include? (MVCgen::Generator::REPLACEMENT_KEY)
75
+ rename_file(file, name)
76
+ end
74
77
  end
75
78
  end
76
79
 
@@ -1,4 +1,4 @@
1
1
  module MVCgen
2
2
  NAME = "mvcgen"
3
- VERSION = "0.1.14"
3
+ VERSION = "0.1.18"
4
4
  end
@@ -1,4 +1,4 @@
1
1
  author: daniel
2
2
  author_email: daniel.martinezcg@gmail.com
3
- template_description: Default template with the simplest structure using MVC
3
+ template_description: Default template with the simplest structure to startup a project in xcode, using MVC
4
4
  updated_at: 2018-07-23
@@ -0,0 +1,73 @@
1
+ # Uncomment the next line to define a global platform for your project
2
+ platform :ios, '10.0'
3
+
4
+ def commom_pods
5
+ # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
6
+ use_frameworks!
7
+
8
+ # Pods for NotATour
9
+ pod 'CryptoSwift'
10
+ pod 'SwiftyJSON'
11
+ pod 'TextFieldEffects'
12
+ pod 'NotificationBannerSwift'
13
+ pod 'RAMAnimatedTabBarController'
14
+ pod 'ObjectMapper', '~> 3.1'
15
+ pod 'DKImagePickerController'
16
+ pod 'SwiftDate', '~> 4.5.1'
17
+ pod 'NVActivityIndicatorView'
18
+ pod 'Kingfisher', '~> 4.0'
19
+ pod 'PMAlertController'
20
+ pod 'ActionSheetPicker-3.0', '~> 2.3.0'
21
+ pod 'Kingfisher', '~> 4.0'
22
+ pod 'paper-onboarding', '~> 4.0.2'
23
+ pod 'Pastel'
24
+
25
+ # Alamofire
26
+ pod 'Alamofire', '~> 4.4'
27
+ pod 'AlamofireObjectMapper', '~> 5.0'
28
+
29
+
30
+ # AWS
31
+ pod 'AWSCognito'
32
+ pod 'AWSCognitoIdentityProvider'
33
+ pod 'AWSS3'
34
+
35
+
36
+ # AlamofireNetworkActivityLogger
37
+ pod 'AlamofireNetworkActivityLogger', '~> 2.0'
38
+
39
+ # Facebook
40
+ pod 'FacebookCore'
41
+ pod 'FacebookLogin'
42
+
43
+ # OneSignal
44
+ pod 'OneSignal'
45
+
46
+ # Fabric
47
+ pod 'Fabric'
48
+ pod 'Crashlytics'
49
+
50
+ end
51
+
52
+ target 'MVCGEN' do
53
+ use_frameworks!
54
+ commom_pods
55
+ end
56
+
57
+ # target 'MVCGENTest' do
58
+ # inherit! :search_paths
59
+ # # Pods for testing
60
+ # end
61
+
62
+ # target 'MVCGENUITests' do
63
+ # inherit! :search_paths
64
+ # # Pods for testing
65
+ # end
66
+
67
+ # target 'OneSignalNotificationServiceExtension' do
68
+ # use_frameworks!
69
+ # pod 'OneSignal'
70
+ # end
71
+
72
+
73
+
@@ -0,0 +1,181 @@
1
+ //
2
+ // AppDelegate.swift
3
+ // MVCGEN
4
+ //
5
+ // Created by Daniel Martinez on 23/7/18.
6
+ // Copyright © 2018 Houlak. All rights reserved.
7
+ //
8
+
9
+ import UIKit
10
+ import CoreData
11
+ import FBSDKCoreKit
12
+ import FBSDKLoginKit
13
+ import FacebookCore
14
+ import FBSDKCoreKit
15
+ import FBSDKLoginKit
16
+ import Alamofire
17
+ import OneSignal
18
+ import Fabric
19
+ import Crashlytics
20
+ import FBSDKLoginKit
21
+ import RAMAnimatedTabBarController
22
+
23
+ @UIApplicationMain
24
+ class AppDelegate: UIResponder, UIApplicationDelegate {
25
+
26
+ var window: UIWindow?
27
+ private let homeStoryboard = UIStoryboard(name: "Home", bundle: Bundle.main)
28
+ private let loginStoryboard = UIStoryboard(name: "Login", bundle: Bundle.main)
29
+
30
+ func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
31
+ // Override point for customization after application launch.
32
+
33
+ UIApplication.shared.statusBarStyle = .lightContent
34
+
35
+ // TODO: enable after setting script in build phases and appid
36
+ // self.setupFabric()
37
+
38
+ self.setupOneSignal(launchOptions)
39
+
40
+ // Call the 'activate' method to log an app event for use
41
+ // in analytics and advertising reporting.
42
+ AppEventsLogger.activate(application)
43
+
44
+ self.checkUserLoggedIn()
45
+
46
+ self.setupAWS()
47
+
48
+ return true
49
+ }
50
+
51
+ func setupFabric() {
52
+ Fabric.with([Crashlytics.self])
53
+ }
54
+
55
+ func setupOneSignal(_ launchOptions: [UIApplicationLaunchOptionsKey: Any]?){
56
+ let onesignalInitSettings = [kOSSettingsKeyAutoPrompt: false]
57
+ // Replace 'YOUR_APP_ID' with your OneSignal App ID.
58
+ OneSignal.initWithLaunchOptions(launchOptions,
59
+ appId: Config.sharedInstance.oneSignalAppId(),
60
+ handleNotificationReceived: {
61
+ notification in
62
+
63
+ if let notification = notification {
64
+ self.handleNotification(notification: notification)
65
+ }
66
+
67
+ },
68
+ handleNotificationAction: {
69
+ result in
70
+
71
+ if let notification = result?.notification {
72
+ self.handleNotification(notification: notification)
73
+ }
74
+
75
+ // TODO: Set new notification icon active in profilevc
76
+ if let tabController = self.window!.rootViewController as? RAMAnimatedTabBarController {
77
+ tabController.setSelectIndex(from: tabController.selectedIndex, to: 3)
78
+ }
79
+ },
80
+ settings: onesignalInitSettings)
81
+
82
+ OneSignal.inFocusDisplayType = OSNotificationDisplayType.notification;
83
+
84
+ // TODO
85
+ // Recommend moving the below line to prompt for push after informing the user about
86
+ // how your app will use them.
87
+ OneSignal.promptForPushNotifications(userResponse: { accepted in
88
+ print("User accepted notifications: \(accepted)")
89
+ })
90
+
91
+ // Sync hashed email if you have a login system or collect it.
92
+ // Will be used to reach the user at the most optimal time of day.
93
+ // OneSignal.syncHashedEmail(userEmail)
94
+
95
+ // Print OneSignal Player ID
96
+ let status: OSPermissionSubscriptionState = OneSignal.getPermissionSubscriptionState()
97
+ let userID = status.subscriptionStatus.userId
98
+ print("OneSignal User ID = \(userID ?? "")")
99
+ }
100
+
101
+ func handleNotification(notification: OSNotification){
102
+ // TODO set new notification badge
103
+
104
+ }
105
+
106
+ func checkUserLoggedIn() {
107
+
108
+ if let _ = UserDefaults.standard.value(forKey: UserDefaultsConstants.userAuthTokenKey) as? String, let _ = UserDefaults.standard.value(forKey: UserDefaultsConstants.savedUserKey) as? String {
109
+ // Token stored in NSUserDefaults. Log in user
110
+
111
+ // TODO: need to check if user ha ve accepted terms & conditions
112
+
113
+ let rootController = self.homeStoryboard.instantiateViewController(withIdentifier: "HomeNav")
114
+ self.window?.rootViewController = rootController
115
+
116
+ }
117
+ }
118
+
119
+ // Facebook login
120
+
121
+ // func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
122
+ // return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options)
123
+ // }
124
+
125
+ func logout() {
126
+
127
+ Alamofire.SessionManager.default.session.getTasksWithCompletionHandler {
128
+ dataTasks, uploadTasks, downloadTasks in dataTasks.forEach {
129
+ $0.cancel()
130
+ }
131
+ uploadTasks.forEach {
132
+ $0.cancel()
133
+ }
134
+ downloadTasks.forEach {
135
+ $0.cancel()
136
+ }
137
+ }
138
+
139
+ FilesManager.sharedInstance.removeAllAppLocalFiles()
140
+
141
+ // Facebook logout
142
+ let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
143
+ fbLoginManager.logOut()
144
+
145
+ for view in self.window!.subviews {
146
+ view.removeFromSuperview()
147
+ }
148
+
149
+ let rootController = self.loginStoryboard.instantiateViewController(withIdentifier: "LoginVC")
150
+ self.window?.rootViewController = rootController
151
+ }
152
+
153
+ func applicationWillResignActive(_ application: UIApplication) {
154
+ // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
155
+ // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
156
+ }
157
+
158
+ func applicationDidEnterBackground(_ application: UIApplication) {
159
+ // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
160
+ // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
161
+ }
162
+
163
+ func applicationWillEnterForeground(_ application: UIApplication) {
164
+ // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
165
+ }
166
+
167
+ func applicationDidBecomeActive(_ application: UIApplication) {
168
+ // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
169
+ }
170
+
171
+ func applicationWillTerminate(_ application: UIApplication) {
172
+ // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
173
+
174
+ }
175
+
176
+ func setupAWS() {
177
+ let _ = AWSManager.sharedInstance
178
+ }
179
+
180
+ }
181
+
@@ -0,0 +1,133 @@
1
+ {
2
+ "images" : [
3
+ {
4
+ "idiom" : "iphone",
5
+ "size" : "20x20",
6
+ "scale" : "2x"
7
+ },
8
+ {
9
+ "idiom" : "iphone",
10
+ "size" : "20x20",
11
+ "scale" : "3x"
12
+ },
13
+ {
14
+ "idiom" : "iphone",
15
+ "size" : "29x29",
16
+ "scale" : "1x"
17
+ },
18
+ {
19
+ "idiom" : "iphone",
20
+ "size" : "29x29",
21
+ "scale" : "2x"
22
+ },
23
+ {
24
+ "idiom" : "iphone",
25
+ "size" : "29x29",
26
+ "scale" : "3x"
27
+ },
28
+ {
29
+ "idiom" : "iphone",
30
+ "size" : "40x40",
31
+ "scale" : "2x"
32
+ },
33
+ {
34
+ "idiom" : "iphone",
35
+ "size" : "40x40",
36
+ "scale" : "3x"
37
+ },
38
+ {
39
+ "idiom" : "iphone",
40
+ "size" : "57x57",
41
+ "scale" : "1x"
42
+ },
43
+ {
44
+ "idiom" : "iphone",
45
+ "size" : "57x57",
46
+ "scale" : "2x"
47
+ },
48
+ {
49
+ "idiom" : "iphone",
50
+ "size" : "60x60",
51
+ "scale" : "2x"
52
+ },
53
+ {
54
+ "idiom" : "iphone",
55
+ "size" : "60x60",
56
+ "scale" : "3x"
57
+ },
58
+ {
59
+ "idiom" : "ipad",
60
+ "size" : "20x20",
61
+ "scale" : "1x"
62
+ },
63
+ {
64
+ "idiom" : "ipad",
65
+ "size" : "20x20",
66
+ "scale" : "2x"
67
+ },
68
+ {
69
+ "idiom" : "ipad",
70
+ "size" : "29x29",
71
+ "scale" : "1x"
72
+ },
73
+ {
74
+ "idiom" : "ipad",
75
+ "size" : "29x29",
76
+ "scale" : "2x"
77
+ },
78
+ {
79
+ "idiom" : "ipad",
80
+ "size" : "40x40",
81
+ "scale" : "1x"
82
+ },
83
+ {
84
+ "idiom" : "ipad",
85
+ "size" : "40x40",
86
+ "scale" : "2x"
87
+ },
88
+ {
89
+ "idiom" : "ipad",
90
+ "size" : "50x50",
91
+ "scale" : "1x"
92
+ },
93
+ {
94
+ "idiom" : "ipad",
95
+ "size" : "50x50",
96
+ "scale" : "2x"
97
+ },
98
+ {
99
+ "idiom" : "ipad",
100
+ "size" : "72x72",
101
+ "scale" : "1x"
102
+ },
103
+ {
104
+ "idiom" : "ipad",
105
+ "size" : "72x72",
106
+ "scale" : "2x"
107
+ },
108
+ {
109
+ "idiom" : "ipad",
110
+ "size" : "76x76",
111
+ "scale" : "1x"
112
+ },
113
+ {
114
+ "idiom" : "ipad",
115
+ "size" : "76x76",
116
+ "scale" : "2x"
117
+ },
118
+ {
119
+ "idiom" : "ipad",
120
+ "size" : "83.5x83.5",
121
+ "scale" : "2x"
122
+ },
123
+ {
124
+ "idiom" : "ios-marketing",
125
+ "size" : "1024x1024",
126
+ "scale" : "1x"
127
+ }
128
+ ],
129
+ "info" : {
130
+ "version" : 1,
131
+ "author" : "xcode"
132
+ }
133
+ }