arkana 1.0.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/arkana/encoder.rb +1 -0
- data/lib/arkana/helpers/enumerable.rb +16 -0
- data/lib/arkana/helpers/swift_template_helper.rb +8 -0
- data/lib/arkana/templates/arkana.podspec.erb +4 -1
- data/lib/arkana/templates/arkana.swift.erb +8 -2
- data/lib/arkana/templates/arkana_protocol.swift.erb +5 -2
- data/lib/arkana/templates/arkana_tests.swift.erb +3 -0
- data/lib/arkana/templates/interfaces.podspec.erb +2 -1
- data/lib/arkana/templates/interfaces_package.swift.erb +2 -1
- data/lib/arkana/templates/package.swift.erb +4 -3
- data/lib/arkana/version.rb +1 -1
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea330bc2a7e6d65bb0e28e3053447c512d3145e5b7fe9d5661eede4493deba69
|
4
|
+
data.tar.gz: a3cf5a8223ebbfd219a95c97e65f8ed0a81a6628ebd7b61032ba67f41d0a2826
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b63c03ce224ee7d0519447625406ccadd19e20f7fff8933ce51017a5f767459b131d5894dbcceba40d60b0c383ca5494be566a6114bdb7a3e1a059836daf0f64
|
7
|
+
data.tar.gz: 4117a49c4df94c33007045198e7b30209a89433e13efb730b21c674c5f722bebc55212bf5eea6f0442db7e19e8b079b1cac320666db58b34a6eb72b06db81ec3
|
data/lib/arkana/encoder.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Enumerable extensions and utilities.
|
4
|
+
module Enumerable
|
5
|
+
# NOTE: This is a backport of Ruby 2.7 filter_map. This method can be deleted when the minimum target Ruby version is 2.7
|
6
|
+
# We're not gating against redefining the method (e.g. via `unless Enumerable.method_defined? :filter_map`) because this
|
7
|
+
# would reduce the code coverage when analysing code coverage on Ruby versions >= 2.7
|
8
|
+
def filter_map
|
9
|
+
return to_enum(:filter_map) unless block_given?
|
10
|
+
|
11
|
+
each_with_object([]) do |item, res|
|
12
|
+
processed = yield(item)
|
13
|
+
res << processed if processed
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -9,4 +9,12 @@ module SwiftTemplateHelper
|
|
9
9
|
else raise "Unknown variable type '#{type}' received.'"
|
10
10
|
end
|
11
11
|
end
|
12
|
+
|
13
|
+
def self.protocol_getter(declaration_strategy)
|
14
|
+
case declaration_strategy
|
15
|
+
when "lazy var" then "mutating get"
|
16
|
+
when "var", "let" then "get"
|
17
|
+
else raise "Unknown declaration strategy '#{declaration_strategy}' received.'"
|
18
|
+
end
|
19
|
+
end
|
12
20
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
#
|
3
|
+
# DO NOT MODIFY
|
4
|
+
# Automatically generated by Arkana (https://github.com/rogerluan/arkana)
|
4
5
|
|
5
6
|
Pod::Spec.new do |spec|
|
6
7
|
spec.name = '<%= @pod_name %>'
|
@@ -12,4 +13,6 @@ Pod::Spec.new do |spec|
|
|
12
13
|
spec.source_files = 'Sources/**/*.swift'
|
13
14
|
spec.ios.deployment_target = '11.0'
|
14
15
|
spec.swift_version = '5.0'
|
16
|
+
|
17
|
+
spec.dependency '<%= @pod_name %>Interfaces', '~> 1.0.0'
|
15
18
|
end
|
@@ -1,10 +1,14 @@
|
|
1
1
|
<% require 'arkana/helpers/string' %>
|
2
2
|
<% require 'arkana/helpers/swift_template_helper' %>
|
3
3
|
<% # TODO: Sort these import statements alphabetically %>
|
4
|
+
// DO NOT MODIFY
|
5
|
+
// Automatically generated by Arkana (https://github.com/rogerluan/arkana)
|
6
|
+
|
4
7
|
import Foundation
|
5
8
|
import <%= @import_name %>Interfaces
|
6
9
|
|
7
10
|
public enum <%= @namespace %> {
|
11
|
+
@inline(__always)
|
8
12
|
fileprivate static let salt: [UInt8] = [
|
9
13
|
<%= @salt.formatted %>
|
10
14
|
|
@@ -18,10 +22,11 @@ public enum <%= @namespace %> {
|
|
18
22
|
}
|
19
23
|
|
20
24
|
public extension <%= @namespace %> {
|
21
|
-
struct Global: <%= @
|
25
|
+
struct Global: <%= @namespace %>GlobalProtocol {
|
22
26
|
public init() {}
|
23
27
|
<% for secret in @global_secrets %>
|
24
28
|
|
29
|
+
@inline(__always)
|
25
30
|
public <%= @swift_declaration_strategy %> <%= secret.key.camel_case %>: <%= SwiftTemplateHelper.swift_type(secret.type) %> = {
|
26
31
|
let encoded: [UInt8] = [
|
27
32
|
<%= secret.encoded_value %>
|
@@ -35,10 +40,11 @@ public extension <%= @namespace %> {
|
|
35
40
|
|
36
41
|
<% for environment in @environments %>
|
37
42
|
public extension <%= @namespace %> {
|
38
|
-
struct <%= environment %>: <%= @
|
43
|
+
struct <%= environment %>: <%= @namespace %>EnvironmentProtocol {
|
39
44
|
public init() {}
|
40
45
|
<% for secret in environment_protocol_secrets(environment) %>
|
41
46
|
|
47
|
+
@inline(__always)
|
42
48
|
public <%= @swift_declaration_strategy %> <%= secret.protocol_key.camel_case %>: <%= SwiftTemplateHelper.swift_type(secret.type) %> = {
|
43
49
|
let encoded: [UInt8] = [
|
44
50
|
<%= secret.encoded_value %>
|
@@ -1,15 +1,18 @@
|
|
1
1
|
<% require 'arkana/helpers/string' %>
|
2
2
|
<% require 'arkana/helpers/swift_template_helper' %>
|
3
|
+
// DO NOT MODIFY
|
4
|
+
// Automatically generated by Arkana (https://github.com/rogerluan/arkana)
|
5
|
+
|
3
6
|
import Foundation
|
4
7
|
|
5
8
|
public protocol <%= @namespace %>GlobalProtocol {
|
6
9
|
<% for secret in @global_secrets %>
|
7
|
-
var <%= secret.protocol_key.camel_case %>: <%= SwiftTemplateHelper.swift_type(secret.type) %> {
|
10
|
+
var <%= secret.protocol_key.camel_case %>: <%= SwiftTemplateHelper.swift_type(secret.type) %> { <%= SwiftTemplateHelper.protocol_getter(@swift_declaration_strategy) %> }
|
8
11
|
<% end %>
|
9
12
|
}
|
10
13
|
|
11
14
|
public protocol <%= @namespace %>EnvironmentProtocol {
|
12
15
|
<% for secret in @environment_secrets.uniq(&:protocol_key) %>
|
13
|
-
var <%= secret.protocol_key.camel_case %>: <%= SwiftTemplateHelper.swift_type(secret.type) %> {
|
16
|
+
var <%= secret.protocol_key.camel_case %>: <%= SwiftTemplateHelper.swift_type(secret.type) %> { <%= SwiftTemplateHelper.protocol_getter(@swift_declaration_strategy) %> }
|
14
17
|
<% end %>
|
15
18
|
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
#
|
3
|
+
# DO NOT MODIFY
|
4
|
+
# Automatically generated by Arkana (https://github.com/rogerluan/arkana)
|
4
5
|
|
5
6
|
Pod::Spec.new do |spec|
|
6
7
|
spec.name = '<%= @pod_name %>Interfaces'
|
@@ -1,6 +1,7 @@
|
|
1
1
|
// swift-tools-version: 5.6
|
2
2
|
|
3
|
-
//
|
3
|
+
// DO NOT MODIFY
|
4
|
+
// Automatically generated by Arkana (https://github.com/rogerluan/arkana)
|
4
5
|
|
5
6
|
import PackageDescription
|
6
7
|
|
@@ -25,12 +26,12 @@ let package = Package(
|
|
25
26
|
dependencies: ["<%= @import_name %>Interfaces"],
|
26
27
|
path: "Sources"
|
27
28
|
),
|
28
|
-
|
29
|
+
<% if @should_generate_unit_tests %>
|
29
30
|
.testTarget(
|
30
31
|
name: "<%= @import_name %>Tests",
|
31
32
|
dependencies: ["<%= @import_name %>"],
|
32
33
|
path: "Tests"
|
33
34
|
),
|
34
|
-
|
35
|
+
<% end %>
|
35
36
|
]
|
36
37
|
)
|
data/lib/arkana/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arkana
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roger Oba
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.2'
|
55
|
-
description:
|
55
|
+
description:
|
56
56
|
email:
|
57
57
|
- rogerluan.oba@gmail.com
|
58
58
|
executables:
|
@@ -67,6 +67,7 @@ files:
|
|
67
67
|
- lib/arkana/config_parser.rb
|
68
68
|
- lib/arkana/encoder.rb
|
69
69
|
- lib/arkana/helpers/dotenv_helper.rb
|
70
|
+
- lib/arkana/helpers/enumerable.rb
|
70
71
|
- lib/arkana/helpers/string.rb
|
71
72
|
- lib/arkana/helpers/swift_template_helper.rb
|
72
73
|
- lib/arkana/helpers/ui.rb
|
@@ -96,7 +97,7 @@ metadata:
|
|
96
97
|
source_code_uri: https://github.com/rogerluan/arkana
|
97
98
|
changelog_uri: https://github.com/rogerluan/arkana/blob/main/CHANGELOG.md
|
98
99
|
rubygems_mfa_required: 'true'
|
99
|
-
post_install_message:
|
100
|
+
post_install_message:
|
100
101
|
rdoc_options: []
|
101
102
|
require_paths:
|
102
103
|
- lib
|
@@ -104,15 +105,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
104
105
|
requirements:
|
105
106
|
- - ">="
|
106
107
|
- !ruby/object:Gem::Version
|
107
|
-
version: 2.
|
108
|
+
version: 2.6.9
|
108
109
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
110
|
requirements:
|
110
111
|
- - ">="
|
111
112
|
- !ruby/object:Gem::Version
|
112
113
|
version: '0'
|
113
114
|
requirements: []
|
114
|
-
rubygems_version: 3.
|
115
|
-
signing_key:
|
115
|
+
rubygems_version: 3.3.7
|
116
|
+
signing_key:
|
116
117
|
specification_version: 4
|
117
118
|
summary: Store your keys and secrets away from your source code. Designed for Android
|
118
119
|
and iOS projects.
|