gonative-cli 0.4.3 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
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