gonative-cli 0.4.4 → 0.5.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: 50a3f67b63e9189478cf5bd99333dabcab2270becfa5c2b2c050f5438bb578ec
4
- data.tar.gz: 5ab36119c477700139465acf59921e7e02dcd76d666519cdf0cd497a6bc6d986
3
+ metadata.gz: 7f1cb523502d716e94d5a46c77f57002c83b651b87ee0d39f168191bdbc41fe5
4
+ data.tar.gz: 4e49cfe3cfbd9c30cc3fc700057bf0f7d12e85891b09347aabfef63027b85904
5
5
  SHA512:
6
- metadata.gz: 5a47ee13b9b0a57f794ad4d173b7807b8122b203d4e69acc032ec88d3167fb37736b7f3f5a37b6610c1e71f0cdd9553d86a3a24b8af0ceff0956a2f2647f091f
7
- data.tar.gz: 8dd92365b9d69285846ab9ecb28bbbb14b7c2a37c3ef8e2ca9c36db10314994d4a0183dc00f75bcc56be2025d18dce41c2df27b505f23e0facb58ade50430364
6
+ metadata.gz: 8f79605c523e021d6c74731e6a9166d8a31d0c1466c7eeb3c1af469cc3ed62e05cf98443eb768f8615d2f673fba86b5458cdd7fa7c8c28b52f550a5cd1546e19
7
+ data.tar.gz: 88f13c2cfcf1799177a9f768bd87a46c7fb104966e3c30effd9b054d4409569dcc54c34bd3bd70a6761dea55c93e92ce1056b7c729133effa0dae555f899ae4c
data/Gemfile.lock CHANGED
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gonative-cli (0.4.3)
4
+ gonative-cli (0.5.2)
5
+ activesupport (~> 6.0)
5
6
  cocoapods (~> 1.10)
6
7
  colorize (~> 0.8.0)
7
8
  dry-cli (~> 0.7)
@@ -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
@@ -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,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'cocoapods'
3
+ require 'xcodeproj'
4
4
 
5
5
  module GoNative
6
6
  module Plugins
7
7
  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
-
8
+ class Release
9
+ extend DSL::Serviceable
10
+
11
+ GONATIVE_SOURCE_NAME = 'gonative-specs'.freeze
12
+
13
+ def call
14
+ Utils::UI.info 'Linting and releasing pod'
15
+ assert_spec_exists!
16
+ sources_manager.update(GONATIVE_SOURCE_NAME)
17
+ assert_not_pushed!
18
+ create_and_push_tag!
19
+ push_to_pod_repo!
20
+ end
21
+
22
+ private
23
+
23
24
  def assert_spec_exists!
24
25
  return if spec_name
25
26
 
@@ -62,7 +63,6 @@ module GoNative
62
63
  def sources_manager
63
64
  Pod::Config.instance.sources_manager
64
65
  end
65
- end
66
66
  end
67
67
  end
68
68
  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.4"
4
+ VERSION = "0.5.3"
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,json}' }
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,json}' }
24
26
  end
25
27
 
26
28
  s.default_subspec = 'Source'
@@ -1,8 +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'
5
-
4
+ source 'git@github.com:gonativeio/gonative-specs.git'
6
5
 
7
6
  target '{{PLUGIN_NAME}}Framework' do
8
7
  use_frameworks!
@@ -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.4
4
+ version: 0.5.3
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-09-14 00:00:00.000000000 Z
11
+ date: 2021-10-12 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
@@ -181,20 +195,23 @@ files:
181
195
  - lib/gonative/dsl/serviceable.rb
182
196
  - lib/gonative/plugins.rb
183
197
  - lib/gonative/plugins/ios/create.rb
184
- - lib/gonative/plugins/ios/publish.rb
185
- - lib/gonative/plugins/ios/publish/release.rb
198
+ - lib/gonative/plugins/ios/release.rb
199
+ - lib/gonative/plugins/ios/verify.rb
186
200
  - lib/gonative/utils/template_inflator.rb
187
201
  - lib/gonative/utils/ui.rb
188
202
  - 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
197
- - templates/plugins/ios/js/polyfill.js.tpl
203
+ - templates/plugins/ios/common/.gitignore
204
+ - templates/plugins/ios/common/LICENSE
205
+ - templates/plugins/ios/common/PLUGIN_NAME.podspec.tpl
206
+ - templates/plugins/ios/common/PLUGIN_NAME/Info.plist
207
+ - templates/plugins/ios/common/Podfile.tpl
208
+ - templates/plugins/ios/common/create-framework.sh.tpl
209
+ - templates/plugins/ios/common/js/info.plist.json.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
198
215
  homepage: https://www.github.com/gonativeio/gonative-cli
199
216
  licenses:
200
217
  - MIT