ann-flavor-cocoapods 0.1.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f7a3ef2559f87e67ec19f4b50f5d58a296143420b1eea4d7d9f3bf97fb47e471
4
+ data.tar.gz: 35af4044c4ea188612d4160e5201e749488f6dc9c0d374816fba19ed8dd000b9
5
+ SHA512:
6
+ metadata.gz: 661be291ba7f57852cca1237670b509af46f50c00788d5b95057361fb10e7dc1081ec6c8214d4c948d4b4125a9e9c09952ec3e6db97b98103638be6a96f016db
7
+ data.tar.gz: 76e246b54d7a4ce5ac15807fe7c506a32e49cdf5fbe89832930b9ba61c7a0588da20a78e7f61177f4744e6bfb90f4406cef5e86a5ee79d50251196e53f711c6a
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
@@ -0,0 +1,22 @@
1
+ lib = File.expand_path('lib', __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+
4
+ require 'ann_flavor_cocoapods/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "ann-flavor-cocoapods"
8
+ spec.version = AnnFlavorCocoapods::VERSION
9
+ spec.authors = ["ANN Solutions"]
10
+ spec.email = ["support@annaibrands.com"]
11
+ spec.summary = "CocoaPods helper that reads annspec.yaml and configures iOS flavor settings."
12
+ spec.homepage = "https://github.com/anntech-dev"
13
+ spec.license = "MIT"
14
+
15
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec)/}) }
16
+ spec.require_paths = ["lib"]
17
+
18
+ spec.add_dependency "cocoapods", ">= 1.12"
19
+
20
+ spec.add_development_dependency "rspec", "~> 3.12"
21
+ spec.add_development_dependency "rspec_junit_formatter","~> 0.6"
22
+ end
@@ -0,0 +1,42 @@
1
+ require_relative 'spec_loader'
2
+
3
+ module AnnFlavorCocoapods
4
+ module PodfileHelper
5
+ # Call inside your Podfile to wire per-flavor Firebase GoogleService-Info.plist.
6
+ #
7
+ # Example Podfile usage:
8
+ # require 'ann_flavor_cocoapods'
9
+ # AnnFlavorCocoapods::PodfileHelper.configure_firebase(self)
10
+ #
11
+ def self.configure_firebase(installer_context, project_root: Dir.pwd)
12
+ spec = SpecLoader.load(project_root)
13
+ flavors = SpecLoader.ios_flavors(spec)
14
+ default = SpecLoader.ios_default(spec)
15
+
16
+ flavors.each do |flavor_key, flavor_cfg|
17
+ merged = default.merge(flavor_cfg || {})
18
+
19
+ release_path = merged.dig('firebase', 'release', 'path')
20
+ debug_path = merged.dig('firebase', 'debug', 'path') || release_path
21
+
22
+ next unless release_path
23
+
24
+ puts "ann-flavor-cocoapods: #{flavor_key} firebase release=#{release_path} debug=#{debug_path}"
25
+ end
26
+ end
27
+
28
+ # Returns the bundle ID for a given flavor key, merging defaults.
29
+ def self.bundle_id(flavor_key, project_root: Dir.pwd)
30
+ spec = SpecLoader.load(project_root)
31
+ flavors = SpecLoader.ios_flavors(spec)
32
+ default = SpecLoader.ios_default(spec)
33
+
34
+ flavor_cfg = flavors[flavor_key.to_s] || {}
35
+ merged = default.merge(flavor_cfg)
36
+
37
+ base = merged['id'] || default['id'] || ''
38
+ suffix = flavor_cfg['id_suffix'] || ''
39
+ "#{base}#{suffix}"
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,21 @@
1
+ require 'yaml'
2
+
3
+ module AnnFlavorCocoapods
4
+ class SpecLoader
5
+ SPEC_FILE = 'annspec.yaml'
6
+
7
+ def self.load(project_root = Dir.pwd)
8
+ path = File.join(project_root, SPEC_FILE)
9
+ raise "annspec.yaml not found at #{path}" unless File.exist?(path)
10
+ YAML.safe_load(File.read(path), permitted_classes: [Symbol])
11
+ end
12
+
13
+ def self.ios_flavors(spec)
14
+ spec.dig('annai_app', 'ios', 'flavor') || {}
15
+ end
16
+
17
+ def self.ios_default(spec)
18
+ spec.dig('annai_app', 'ios', 'default') || {}
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,3 @@
1
+ module AnnFlavorCocoapods
2
+ VERSION = "0.1.1"
3
+ end
@@ -0,0 +1,3 @@
1
+ require_relative 'ann_flavor_cocoapods/version'
2
+ require_relative 'ann_flavor_cocoapods/spec_loader'
3
+ require_relative 'ann_flavor_cocoapods/podfile_helper'
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ann-flavor-cocoapods
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - ANN Solutions
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2026-06-15 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: '1.12'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '1.12'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.12'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.12'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec_junit_formatter
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.6'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.6'
55
+ description:
56
+ email:
57
+ - support@annaibrands.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - Gemfile
63
+ - Rakefile
64
+ - ann-flavor-cocoapods.gemspec
65
+ - lib/ann_flavor_cocoapods.rb
66
+ - lib/ann_flavor_cocoapods/podfile_helper.rb
67
+ - lib/ann_flavor_cocoapods/spec_loader.rb
68
+ - lib/ann_flavor_cocoapods/version.rb
69
+ homepage: https://github.com/anntech-dev
70
+ licenses:
71
+ - MIT
72
+ metadata: {}
73
+ post_install_message:
74
+ rdoc_options: []
75
+ require_paths:
76
+ - lib
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ requirements: []
88
+ rubygems_version: 3.4.19
89
+ signing_key:
90
+ specification_version: 4
91
+ summary: CocoaPods helper that reads annspec.yaml and configures iOS flavor settings.
92
+ test_files: []