fastlane-plugin-pod_spec_generator 0.1.1 → 0.1.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c8915eaf10d3bcd91de913542f42f246681f84553656797da5f67e9c2e4b57c9
4
- data.tar.gz: 96442ee5fd4428f701066e87af37f3a948d0026e30363b486034ec8c642c3c65
3
+ metadata.gz: 990680109f16f7fcadda9de2c11f5aa258b4630b2494c69ba586cb59d4607a81
4
+ data.tar.gz: 48c10a9a71c29d8036459f1fb6b35ba5e8b7abafd83770c497b725fa9b375171
5
5
  SHA512:
6
- metadata.gz: 2b452a337dde23046e100b3e4cd091c6a02f5782c3d595c0221fb4ab0d5709b2ec77cabc5dae8994dad6fb8dd0a14f08cf54a57440f5937b3688f884ea58b946
7
- data.tar.gz: 81e66c10f5b5fb7c053610afabba27d0963479805263e99964b983941a5e4ecd100c5c4e76160a531381858995295f0e9f0154b72c427bc88c1a58de03def980
6
+ metadata.gz: 73709bffdb3691df658d6caf9234a2490d16388f6ce9bf552ebbc49306dfeea45ce6bcb0f453a6c68c51d1572c9bb5060ecce2bb851477e82cb1815f6c4bb205
7
+ data.tar.gz: bb1151ad542fe883b67cc6005138ec0a0cf5f853f7b3ceb4799b38092cdd48dd283ee3e549ccfbad2b08a25a6f79dc30baf9f3678c10ee431048e14d5bd6accc
@@ -42,13 +42,13 @@ module Fastlane
42
42
  FastlaneCore::ConfigItem.new(key: :use_frameworks,
43
43
  env_name: "POD_FILE_GENERATOR_VERSION",
44
44
  description: "Version String",
45
- type: TrueClass,
45
+ is_string: false,
46
46
  default_value: true,
47
47
  optional: true),
48
48
  FastlaneCore::ConfigItem.new(key: :apply_local_spm_fix,
49
49
  env_name: "POD_LOCAL_SPM",
50
50
  description: "Use local spm",
51
- type: TrueClass,
51
+ is_string: false,
52
52
  default_value: false,
53
53
  optional: true),
54
54
  FastlaneCore::ConfigItem.new(key: :targets,
@@ -25,6 +25,11 @@ module Fastlane
25
25
  builder.platform = params[:platform].reduce([]) do |content, pair|
26
26
  content += pair
27
27
  end
28
+ (params[:subspecs]).each do |dep|
29
+ puts(dep)
30
+ builder.add_subspec(dep[:name], dep[:local_files], dep[:dependencies])
31
+ end
32
+ builder.static_framework = params[:static_framework]
28
33
 
29
34
  output = builder.build_pod_spec_string
30
35
  File.write("#{params[:folder]}/#{params[:name]}.podspec", output)
@@ -118,7 +123,17 @@ module Fastlane
118
123
  description: "Local spm dependencies",
119
124
  default_value: [],
120
125
  optional: true,
121
- type: Array)
126
+ type: Array),
127
+ FastlaneCore::ConfigItem.new(key: :subspecs,
128
+ description: "Additional subspecs",
129
+ default_value: [],
130
+ optional: true,
131
+ type: Array),
132
+ FastlaneCore::ConfigItem.new(key: :static_framework,
133
+ description: "Static Framework",
134
+ default_value: false,
135
+ optional: true,
136
+ is_string: false)
122
137
 
123
138
  ]
124
139
  end
@@ -14,7 +14,8 @@ class PodSpecBuilder
14
14
  :source_files,
15
15
  :source,
16
16
  :dependencies,
17
- :spm_local_dependencies
17
+ :spm_local_dependencies,
18
+ :static_framework
18
19
 
19
20
 
20
21
  def initialize
@@ -32,15 +33,18 @@ class PodSpecBuilder
32
33
  @source_files = nil
33
34
  @source = nil
34
35
  @spm_local_dependencies = []
36
+ @static_framework = false
35
37
  end
36
38
 
37
39
  def build_pod_spec_string
38
40
  [start_of_spec,
39
41
  podspec_content_setting_string,
42
+ static_framework_string,
40
43
  generate_dependencies(@dependencies),
44
+ subscpecs_string,
41
45
  generate_local_spm_dependencies(@spm_local_dependencies),
42
46
  end_of_spec
43
- ].reject { |s| s.empty? }.join("\n")
47
+ ].compact.reject { |s| s.empty? }.join("\n")
44
48
  end
45
49
 
46
50
  def add_dependency(name, version = nil)
@@ -72,13 +76,15 @@ class PodSpecBuilder
72
76
  hash = {}
73
77
  instance_variables.reject { |var| exclude(var) }
74
78
  .each { |var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
75
-
76
79
  hash.compact.reject { |_k, v| v.empty? }
77
80
  end
78
81
 
79
-
82
+ def static_framework_string
83
+ return "\ts.static_framework = true" if @static_framework
84
+ nil
85
+ end
80
86
  def exclude(variable)
81
- %w[@subspecs @dependencies @spm_local_dependencies].include? variable.to_s
87
+ %w[@subscpecs @dependencies @spm_local_dependencies @static_framework].include? variable.to_s
82
88
  end
83
89
  def content(items)
84
90
  items.reject(&:empty?).reduce(String.new) do |content, item|
@@ -86,8 +92,6 @@ class PodSpecBuilder
86
92
  end
87
93
  end
88
94
 
89
-
90
-
91
95
  def subscpecs_string
92
96
  @subscpecs.reduce(String.new) do |content, subscpec|
93
97
  content += "#{subspec_string(subscpec)}\n"
@@ -95,16 +99,14 @@ class PodSpecBuilder
95
99
  end
96
100
 
97
101
  def subspec_string(sub)
98
- "
99
- s.subspec '#{sub[:name]}' do |s|
100
- #{generate_dependencies(sub[:dependencies])}
101
- end
102
- "
102
+ "\n\ts.subspec '#{sub[:name]}' do |s|"\
103
+ "\n\t\ts.source_files = #{sub[:local_files]}#{generate_dependencies(sub[:dependencies],"\t")}" \
104
+ "\n\tend"
103
105
  end
104
106
 
105
- def generate_dependencies(dependencies)
107
+ def generate_dependencies(dependencies, allignment = "")
106
108
  dependencies.reduce(String.new) do |content, dep|
107
- dependency = "\n\ts.dependency '#{dep[:name]}'"
109
+ dependency = "\n#{allignment}\ts.dependency '#{dep[:name]}'"
108
110
  vers = dep[:version] ? "'#{dep[:version]}'" : nil
109
111
  out = [dependency, vers].compact.join(", ~>")
110
112
  content += "#{out}"
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module PodSpecGenerator
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-pod_spec_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Crowe