gonative-cli 0.4.3 → 0.5.2

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: d90f88288b08ceebc3697467d14f2f795c894ac3c2d119a55c33f11585ccf62f
4
- data.tar.gz: 6535d61f19c52c1c4e6c3467015caf2acc2d2ab595540ff8c4837e04ee29b528
3
+ metadata.gz: b7f014a29a265e0718e44dca943691b7f3dae9b342ab512c0e1e7201fb298501
4
+ data.tar.gz: 90ad03cbdc87c2aaedf571d213a1ddce73fd3308d76e0588f0431e71650ba5d3
5
5
  SHA512:
6
- metadata.gz: 8365af89cbe8ca5543b0badad76e2cb905fe0e8c6ecb24bd95831a577aced6f92f3a03430f1d7b2240024e1c26747aabbe0f0ba93e764a43bee66e301a446d78
7
- data.tar.gz: 73449adaedf999be05a081e8e35a0431cc3f3cf4812c3330bf6ad4c939240a1d029021ebbcd94083ff6cd7b2aa9923e2d3977c0314a07923eca1494819d981a6
6
+ metadata.gz: 9a5bb74b4107fe12f04cddaff523dc83f83944a94a9865088cfb292689852c193f520c84ecffe28ad6b292e66bd2add6ee81e04a81080c92321e547f6ece57ac
7
+ data.tar.gz: b6890ee87cd88145fe1d76f9ad46be36f85d48993266c0e3e8e77cd695b1c05c19d4a05f11acf6282f1b802b11c6fcd9eaedf00a18f8b13b6b416023245576c6
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gonative-cli (0.4.3)
4
+ gonative-cli (0.5.1)
5
+ activesupport (~> 6.0)
5
6
  cocoapods (~> 1.10)
6
- colorize
7
+ colorize (~> 0.8.0)
7
8
  dry-cli (~> 0.7)
8
9
  xcodeproj (~> 1.20)
9
10
  zeitwerk (~> 2.4)
@@ -12,11 +13,12 @@ GEM
12
13
  remote: https://rubygems.org/
13
14
  specs:
14
15
  CFPropertyList (3.0.3)
15
- activesupport (5.2.6)
16
+ activesupport (6.1.3)
16
17
  concurrent-ruby (~> 1.0, >= 1.0.2)
17
- i18n (>= 0.7, < 2)
18
- minitest (~> 5.1)
19
- tzinfo (~> 1.1)
18
+ i18n (>= 1.6, < 2)
19
+ minitest (>= 5.1)
20
+ tzinfo (~> 2.0)
21
+ zeitwerk (~> 2.3)
20
22
  addressable (2.8.0)
21
23
  public_suffix (>= 2.0.2, < 5.0)
22
24
  algoliasearch (1.27.5)
@@ -26,10 +28,10 @@ GEM
26
28
  atomos (0.1.3)
27
29
  byebug (11.1.3)
28
30
  claide (1.0.3)
29
- cocoapods (1.10.2)
30
- addressable (~> 2.6)
31
+ cocoapods (1.11.2)
32
+ addressable (~> 2.8)
31
33
  claide (>= 1.0.2, < 2.0)
32
- cocoapods-core (= 1.10.2)
34
+ cocoapods-core (= 1.11.2)
33
35
  cocoapods-deintegrate (>= 1.0.3, < 2.0)
34
36
  cocoapods-downloader (>= 1.4.0, < 2.0)
35
37
  cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -40,19 +42,19 @@ GEM
40
42
  escape (~> 0.0.4)
41
43
  fourflusher (>= 2.3.0, < 3.0)
42
44
  gh_inspector (~> 1.0)
43
- molinillo (~> 0.6.6)
45
+ molinillo (~> 0.8.0)
44
46
  nap (~> 1.0)
45
- ruby-macho (~> 1.4)
46
- xcodeproj (>= 1.19.0, < 2.0)
47
- cocoapods-core (1.10.2)
48
- activesupport (> 5.0, < 6)
49
- addressable (~> 2.6)
47
+ ruby-macho (>= 1.0, < 3.0)
48
+ xcodeproj (>= 1.21.0, < 2.0)
49
+ cocoapods-core (1.11.2)
50
+ activesupport (>= 5.0, < 7)
51
+ addressable (~> 2.8)
50
52
  algoliasearch (~> 1.0)
51
53
  concurrent-ruby (~> 1.1)
52
54
  fuzzy_match (~> 2.0.4)
53
55
  nap (~> 1.0)
54
56
  netrc (~> 0.11)
55
- public_suffix
57
+ public_suffix (~> 4.0)
56
58
  typhoeus (~> 1.0)
57
59
  cocoapods-deintegrate (1.0.4)
58
60
  cocoapods-downloader (1.4.0)
@@ -82,7 +84,7 @@ GEM
82
84
  json (2.5.1)
83
85
  method_source (1.0.0)
84
86
  minitest (5.14.4)
85
- molinillo (0.6.6)
87
+ molinillo (0.8.0)
86
88
  nanaimo (0.3.0)
87
89
  nap (1.1.0)
88
90
  netrc (0.11.0)
@@ -129,13 +131,12 @@ GEM
129
131
  rubocop-ast (>= 0.4.0)
130
132
  ruby-macho (1.4.0)
131
133
  ruby-progressbar (1.11.0)
132
- thread_safe (0.3.6)
133
134
  typhoeus (1.4.0)
134
135
  ethon (>= 0.9.0)
135
- tzinfo (1.2.9)
136
- thread_safe (~> 0.1)
136
+ tzinfo (2.0.4)
137
+ concurrent-ruby (~> 1.0)
137
138
  unicode-display_width (2.0.0)
138
- xcodeproj (1.20.0)
139
+ xcodeproj (1.21.0)
139
140
  CFPropertyList (>= 2.3.3, < 4.0)
140
141
  atomos (~> 0.1.3)
141
142
  claide (>= 1.0.2, < 2.0)
data/gonative-cli.gemspec CHANGED
@@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.add_dependency 'cocoapods', '~> 1.10'
33
33
  spec.add_dependency 'xcodeproj', '~> 1.20'
34
34
  spec.add_dependency 'colorize', '~> 0.8.0'
35
+ spec.add_dependency 'activesupport', '~> 6.0'
35
36
 
36
37
  spec.add_development_dependency 'rspec', '~> 3.10'
37
38
  spec.add_development_dependency 'pry-byebug', '~> 3.9'
@@ -7,9 +7,10 @@ module GoNative
7
7
  desc 'Create a new plugin'
8
8
 
9
9
  argument :name, required: true, desc: 'Name of the plugin'
10
+ option :language, default: "objc", values: Plugins::IOS::Create::LANGUAGES, desc: "Plugin's language"
10
11
 
11
- def call(name:, **)
12
- Plugins::IOS::Create.call(name)
12
+ def call(name:, language:, **)
13
+ Plugins::IOS::Create.call(name, language)
13
14
  end
14
15
  end
15
16
  end
@@ -4,10 +4,12 @@ module GoNative
4
4
  module Commands
5
5
  module IOS
6
6
  class Publish < Base
7
- desc 'Publish a new version'
7
+ desc 'Verify, build and release a new version'
8
+ option :skip_build, type: :boolean, default: false
8
9
 
9
- def call
10
- Plugins::IOS::Publish.call
10
+ def call(skip_build:, **)
11
+ Plugins::IOS::Verify.call unless skip_build
12
+ Plugins::IOS::Release.call
11
13
  end
12
14
  end
13
15
  end
File without changes
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'xcodeproj'
4
+ require 'active_support/core_ext/string/inflections'
4
5
 
5
6
  module GoNative
6
7
  module Plugins
@@ -11,11 +12,15 @@ module GoNative
11
12
  extend DSL::Serviceable
12
13
 
13
14
  TEMPLATE_DIRECTORY_PATH = File.expand_path(File.join(__dir__, '../../../..', 'templates', 'plugins', 'ios'))
15
+ COMMON_TEMPLATES_PATH = File.join(TEMPLATE_DIRECTORY_PATH, 'common')
14
16
 
15
- attr_reader :plugin_name
17
+ LANGUAGES = %w[objc swift].freeze
16
18
 
17
- def initialize(plugin_name)
19
+ attr_reader :plugin_name, :language
20
+
21
+ def initialize(plugin_name, language)
18
22
  @plugin_name = plugin_name
23
+ @language = language
19
24
  end
20
25
 
21
26
  def call
@@ -40,7 +45,8 @@ module GoNative
40
45
  end
41
46
 
42
47
  def cp_template_files!
43
- FileUtils.cp_r("#{TEMPLATE_DIRECTORY_PATH}/.", '.')
48
+ FileUtils.cp_r("#{COMMON_TEMPLATES_PATH}/.", '.')
49
+ system('ditto', File.join(TEMPLATE_DIRECTORY_PATH, 'language-specific', language), '.')
44
50
  end
45
51
 
46
52
  def inflate_templates!
@@ -89,7 +95,11 @@ module GoNative
89
95
  end
90
96
 
91
97
  def contents(file)
92
- Utils::TemplateInflator.new(File.read(file)).call(PLUGIN_NAME: plugin_name)
98
+ Utils::TemplateInflator.new(File.read(file)).call(PLUGIN_NAME: plugin_name, REPO_NAME: repo_name)
99
+ end
100
+
101
+ def repo_name
102
+ plugin_name.underscore.dasherize.prepend 'ios-'
93
103
  end
94
104
  end
95
105
  end
@@ -1,25 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'cocoapods'
4
-
5
3
  module GoNative
6
4
  module Plugins
7
5
  module IOS
8
- class Publish
9
- module Release
10
- GONATIVE_SOURCE_NAME = 'gonative-specs'.freeze
11
-
12
- def release_pod!
13
- Utils::UI.info 'Linting and releasing pod'
14
- assert_spec_exists!
15
- sources_manager.update(GONATIVE_SOURCE_NAME)
16
- assert_not_pushed!
17
- create_and_push_tag!
18
- push_to_pod_repo!
19
- end
20
-
21
- private
22
-
6
+ class Release
7
+ extend DSL::Serviceable
8
+
9
+ GONATIVE_SOURCE_NAME = 'gonative-specs'.freeze
10
+
11
+ def call
12
+ Utils::UI.info 'Linting and releasing pod'
13
+ assert_spec_exists!
14
+ sources_manager.update(GONATIVE_SOURCE_NAME)
15
+ assert_not_pushed!
16
+ create_and_push_tag!
17
+ push_to_pod_repo!
18
+ end
19
+
20
+ private
21
+
23
22
  def assert_spec_exists!
24
23
  return if spec_name
25
24
 
@@ -30,9 +29,9 @@ module GoNative
30
29
  version = spec.version
31
30
  name = spec.name
32
31
 
33
- pushed_versions = source.versions(name).collect(&:to_s)
32
+ pushed_versions = source.versions(name)&.collect(&:to_s)
34
33
 
35
- raise Error, "#{name} (#{version}) has already been pushed to #{source.name}" if pushed_versions.include? version.to_s
34
+ raise Error, "#{name} (#{version}) has already been pushed to #{source.name}" if pushed_versions&.include? version.to_s
36
35
  end
37
36
 
38
37
  def create_and_push_tag!
@@ -62,7 +61,6 @@ module GoNative
62
61
  def sources_manager
63
62
  Pod::Config.instance.sources_manager
64
63
  end
65
- end
66
64
  end
67
65
  end
68
66
  end
@@ -3,15 +3,13 @@
3
3
  module GoNative
4
4
  module Plugins
5
5
  module IOS
6
- class Publish
6
+ class Verify
7
7
  extend DSL::Serviceable
8
- include Release
9
8
 
10
9
  def call
11
10
  assert_valid_plugin!
12
11
  assert_staging_clear!
13
12
  build_framework!
14
- release_pod!
15
13
  end
16
14
 
17
15
  def assert_valid_plugin!
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GoNative
4
- VERSION = "0.4.3"
4
+ VERSION = "0.5.2"
5
5
  end
File without changes
@@ -10,17 +10,19 @@ TODO: Add long description of the pod here.
10
10
  s.homepage = 'https://github.com/gonativeio/{{PLUGIN_NAME}}'
11
11
  s.license = { :type => 'MIT', :file => 'LICENSE' }
12
12
  s.author = { 'hhunaid' => 'hhunaid@gmail.com' }
13
- s.source = { :git => 'git@github.com:gonativeio/{{PLUGIN_NAME}}.git', :tag => s.version.to_s }
13
+ s.source = { :git => 'git@github.com:gonativeio/{{REPO_NAME}}.git', :tag => s.version.to_s }
14
14
 
15
15
  s.ios.deployment_target = '10.0'
16
16
  s.swift_versions = '5.0'
17
17
 
18
18
  s.subspec 'Source' do |cs|
19
- cs.source_files = '{{PLUGIN_NAME}}/Classes/**/*'
19
+ cs.source_files = '{{PLUGIN_NAME}}/Classes/**/*.{h,m,swift}'
20
+ cs.resource_bundle = { 'JS' => 'js/*.{js}' }
20
21
  end
21
22
 
22
23
  s.subspec 'Binary' do |cs|
23
24
  cs.ios.vendored_frameworks = 'XCFramework/{{PLUGIN_NAME}}.xcframework'
25
+ cs.resource_bundle = { 'JS' => 'js/*.{js}' }
24
26
  end
25
27
 
26
28
  s.default_subspec = 'Source'
@@ -1,7 +1,7 @@
1
1
  platform :ios, '10.0'
2
2
 
3
3
  source 'https://cdn.cocoapods.org/'
4
- source 'https://github.com/gonativeio/gonative-specs'
4
+ source 'git@github.com:gonativeio/gonative-specs.git'
5
5
 
6
6
 
7
7
  target '{{PLUGIN_NAME}}Framework' do
File without changes
@@ -2,7 +2,7 @@
2
2
  // GN{{PLUGIN_NAME}}.h
3
3
  // {{PLUGIN_NAME}}
4
4
  //
5
- // Created by Hunaid Hassan on 20.07.21.
5
+ // Created by Hunaid Hassan.
6
6
  //
7
7
 
8
8
  #import <Foundation/Foundation.h>
@@ -2,7 +2,7 @@
2
2
  // GN{{PLUGIN_NAME}}.m
3
3
  // {{PLUGIN_NAME}}
4
4
  //
5
- // Created by Hunaid Hassan on 20.07.21.
5
+ // Created by Hunaid Hassan.
6
6
  //
7
7
 
8
8
  #import "GN{{PLUGIN_NAME}}.h"
@@ -0,0 +1,12 @@
1
+ //
2
+ // GN{{PLUGIN_NAME}}.m
3
+ // {{PLUGIN_NAME}}
4
+ //
5
+ // Created by Hunaid Hassan.
6
+ //
7
+
8
+ #import <GoNativeCore/GNEventEmitter.h>
9
+
10
+ @interface GN_EXTERN_MODULE(GN{{PLUGIN_NAME}}, GNEventEmitter)
11
+
12
+ @end
@@ -0,0 +1,14 @@
1
+ //
2
+ // GN{{PLUGIN_NAME}}.swift
3
+ // {{PLUGIN_NAME}}
4
+ //
5
+ // Created by Hunaid Hassan on.
6
+ //
7
+
8
+ import Foundation
9
+ import GoNativeCore
10
+
11
+ @objc(GN{{PLUGIN_NAME}})
12
+ public class GN{{PLUGIN_NAME}}: GNEventEmitter {
13
+
14
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gonative-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hunaid Hassan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-17 00:00:00.000000000 Z
11
+ date: 2021-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-cli
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.8.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: activesupport
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '6.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '6.0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rspec
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -176,24 +190,28 @@ files:
176
190
  - lib/gonative/commands/base.rb
177
191
  - lib/gonative/commands/ios/create.rb
178
192
  - lib/gonative/commands/ios/publish.rb
193
+ - lib/gonative/commands/ios/release.rb
179
194
  - lib/gonative/commands/version.rb
180
195
  - lib/gonative/dsl/error_catchable.rb
181
196
  - lib/gonative/dsl/serviceable.rb
182
197
  - lib/gonative/plugins.rb
183
198
  - lib/gonative/plugins/ios/create.rb
184
- - lib/gonative/plugins/ios/publish.rb
185
- - lib/gonative/plugins/ios/publish/release.rb
199
+ - lib/gonative/plugins/ios/release.rb
200
+ - lib/gonative/plugins/ios/verify.rb
186
201
  - lib/gonative/utils/template_inflator.rb
187
202
  - lib/gonative/utils/ui.rb
188
203
  - lib/gonative/version.rb
189
- - templates/plugins/ios/.gitignore
190
- - templates/plugins/ios/LICENSE
191
- - templates/plugins/ios/PLUGIN_NAME.podspec.tpl
192
- - templates/plugins/ios/PLUGIN_NAME/Classes/GNPLUGIN_NAME.h.tpl
193
- - templates/plugins/ios/PLUGIN_NAME/Classes/GNPLUGIN_NAME.m.tpl
194
- - templates/plugins/ios/PLUGIN_NAME/Info.plist
195
- - templates/plugins/ios/Podfile.tpl
196
- - templates/plugins/ios/create-framework.sh.tpl
204
+ - templates/plugins/ios/common/.gitignore
205
+ - templates/plugins/ios/common/LICENSE
206
+ - templates/plugins/ios/common/PLUGIN_NAME.podspec.tpl
207
+ - templates/plugins/ios/common/PLUGIN_NAME/Info.plist
208
+ - templates/plugins/ios/common/Podfile.tpl
209
+ - templates/plugins/ios/common/create-framework.sh.tpl
210
+ - templates/plugins/ios/common/js/polyfill.js.tpl
211
+ - templates/plugins/ios/language-specific/objc/PLUGIN_NAME/Classes/GNPLUGIN_NAME.h.tpl
212
+ - templates/plugins/ios/language-specific/objc/PLUGIN_NAME/Classes/GNPLUGIN_NAME.m.tpl
213
+ - templates/plugins/ios/language-specific/swift/PLUGIN_NAME/Classes/GNSwiftModule.m.tpl
214
+ - templates/plugins/ios/language-specific/swift/PLUGIN_NAME/Classes/GNSwiftModule.swift.tpl
197
215
  homepage: https://www.github.com/gonativeio/gonative-cli
198
216
  licenses:
199
217
  - MIT