zendesk_apps_tools 1.21.5 → 1.22.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
  SHA1:
3
- metadata.gz: 88b1992e05f655b308a59facadceedf4ac16cf9a
4
- data.tar.gz: d5760f39c9ba3cff092f8be54514369a0d7d3f26
3
+ metadata.gz: 7c4b0d2fb599d972c189ddc0c0ef1347d114f15b
4
+ data.tar.gz: 7dab335e1774322983a84a3e7bbc5548447192ac
5
5
  SHA512:
6
- metadata.gz: d5e8839a508c8a19a759048c25f52ebdf9e72bc193d26622efd7ae5969f3102c619c2628debaeba13725be9577b654df0ad77cca81b70384cf2c355645fc1291
7
- data.tar.gz: e5b7eac30376f3cf1b1c28fde92df7e21b556327403f25c89c25ae75985f042e422b16b184b6c3c68cda76651e133414c5890f9140df7c25542b9b23acfa8616
6
+ metadata.gz: e63f36f388534ad226701a34013a0ef8bed4631d36ea7b621f984abb4bd6cf83705dfa085e297d0a1882b8c106ab0930d6cf9c478a024d7ddb8c5a3df50d257f
7
+ data.tar.gz: 397c702a8ddf7e22b504b97fda42bcc5037e5983d59fdf62dda69fb1e06ac74fb8969a6c20a172f64aeed29368b2764b0dad6af3110bf038e1337c07f7a2cedf
@@ -0,0 +1,29 @@
1
+ require 'thor'
2
+ require 'json'
3
+
4
+ require 'zendesk_apps_tools/manifest_handler'
5
+
6
+ module ZendeskAppsTools
7
+ class Bump < Thor
8
+ include Thor::Actions
9
+ prepend ManifestHandler
10
+
11
+ desc 'major', 'Bump major version'
12
+ def major
13
+ semver[:major] += 1
14
+ semver[:minor] = 0
15
+ semver[:patch] = 0
16
+ end
17
+
18
+ desc 'minor', 'Bump minor version'
19
+ def minor
20
+ semver[:minor] += 1
21
+ semver[:patch] = 0
22
+ end
23
+
24
+ desc 'patch', 'Bump patch version'
25
+ def patch
26
+ semver[:patch] += 1
27
+ end
28
+ end
29
+ end
@@ -5,27 +5,29 @@ require 'net/http'
5
5
  require 'json'
6
6
  require 'faraday'
7
7
  require 'io/console'
8
+ require 'zendesk_apps_support'
8
9
 
9
10
  require 'zendesk_apps_tools/command_helpers'
10
11
 
11
12
  module ZendeskAppsTools
12
- require 'zendesk_apps_support'
13
-
14
13
  class Command < Thor
14
+ include Thor::Actions
15
+ include ZendeskAppsSupport
16
+ include ZendeskAppsTools::CommandHelpers
17
+
15
18
  SHARED_OPTIONS = {
16
19
  ['path', '-p'] => './',
17
20
  clean: false
18
21
  }
19
22
 
20
- include Thor::Actions
21
- include ZendeskAppsSupport
22
- include ZendeskAppsTools::CommandHelpers
23
-
24
23
  source_root File.expand_path(File.join(File.dirname(__FILE__), '../..'))
25
24
 
26
25
  desc 'translate SUBCOMMAND', 'Manage translation files', hide: true
27
26
  subcommand 'translate', Translate
28
27
 
28
+ desc 'bump SUBCOMMAND', 'Bump version for app', hide: true
29
+ subcommand 'bump', Bump
30
+
29
31
  desc 'new', 'Generate a new app'
30
32
  def new
31
33
  @author_name = get_value_from_stdin("Enter this app author's name:\n", error_msg: 'Invalid name, try again:')
@@ -6,6 +6,7 @@ require 'zendesk_apps_tools/directory'
6
6
  require 'zendesk_apps_tools/package_helper'
7
7
  require 'zendesk_apps_tools/settings'
8
8
  require 'zendesk_apps_tools/translate'
9
+ require 'zendesk_apps_tools/bump'
9
10
 
10
11
  module ZendeskAppsTools
11
12
  module CommandHelpers
@@ -0,0 +1,69 @@
1
+ module ZendeskAppsTools
2
+ module ManifestHandler
3
+ VERSION_PARTS = %i(major minor patch)
4
+
5
+ attr_reader :semver
6
+
7
+ VERSION_PARTS.each do |m|
8
+ define_method m do
9
+ load_manifest
10
+ read_version
11
+ normalize_version
12
+ super()
13
+ update_version
14
+ write_manifest
15
+ end
16
+ end
17
+
18
+ private
19
+
20
+ def manifest_json_path
21
+ 'manifest.json'
22
+ end
23
+
24
+ def load_manifest
25
+ manifest_json = File.read(manifest_json_path)
26
+ @manifest = JSON.load(manifest_json)
27
+ rescue => e
28
+ say(e.message, :red) and exit 1
29
+ end
30
+
31
+ def read_version
32
+ version = @manifest.fetch('version', '0.0.0')
33
+ sem_parts = sub_semver(version)
34
+ @semver = sem_parts.names.map(&:to_sym).zip(sem_parts.to_a.drop(1)).to_h
35
+ end
36
+
37
+ def normalize_version
38
+ VERSION_PARTS.each do |part|
39
+ semver[part] = (semver[part] || '0').to_i
40
+ end
41
+ end
42
+
43
+ def update_version
44
+ @manifest['version'] = version
45
+ end
46
+
47
+ def write_manifest
48
+ File.open(manifest_json_path, 'w') do |f|
49
+ f.write(JSON.pretty_generate(@manifest))
50
+ f.write("\n")
51
+ end
52
+ end
53
+
54
+ def sub_semver(v)
55
+ v.match(/\A(?<v>v)?(?<major>\d+)(?:\.(?<minor>\d+)(?:\.(?<patch>\d+))?)?\Z/)
56
+ end
57
+
58
+ def version
59
+ [
60
+ semver[:v],
61
+ [
62
+ semver[:major],
63
+ semver[:minor],
64
+ semver[:patch]
65
+ ].compact.map(&:to_s).join('.')
66
+ ].compact.join
67
+ end
68
+ end
69
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk_apps_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.21.5
4
+ version: 1.22.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James A. Rosen
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-02-12 00:00:00.000000000 Z
14
+ date: 2015-02-28 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: thor
@@ -183,6 +183,7 @@ files:
183
183
  - features/validate.feature
184
184
  - lib/zendesk_apps_tools.rb
185
185
  - lib/zendesk_apps_tools/api_connection.rb
186
+ - lib/zendesk_apps_tools/bump.rb
186
187
  - lib/zendesk_apps_tools/cache.rb
187
188
  - lib/zendesk_apps_tools/command.rb
188
189
  - lib/zendesk_apps_tools/command_helpers.rb
@@ -190,6 +191,7 @@ files:
190
191
  - lib/zendesk_apps_tools/deploy.rb
191
192
  - lib/zendesk_apps_tools/directory.rb
192
193
  - lib/zendesk_apps_tools/locale_identifier.rb
194
+ - lib/zendesk_apps_tools/manifest_handler.rb
193
195
  - lib/zendesk_apps_tools/package_helper.rb
194
196
  - lib/zendesk_apps_tools/server.rb
195
197
  - lib/zendesk_apps_tools/settings.rb
@@ -207,7 +209,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
207
209
  requirements:
208
210
  - - ">="
209
211
  - !ruby/object:Gem::Version
210
- version: '0'
212
+ version: '2.0'
211
213
  required_rubygems_version: !ruby/object:Gem::Requirement
212
214
  requirements:
213
215
  - - ">="
@@ -215,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
215
217
  version: 1.3.6
216
218
  requirements: []
217
219
  rubyforge_project:
218
- rubygems_version: 2.2.2
220
+ rubygems_version: 2.4.6
219
221
  signing_key:
220
222
  specification_version: 4
221
223
  summary: Tools to help you develop Zendesk Apps.