gonative-cli 0.4.4 → 0.5.3

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: 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