ive 0.1.0 → 1.0.0

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
  SHA1:
3
- metadata.gz: 5ee418327677d638308f90ce37eceb61c6483a42
4
- data.tar.gz: 1f3afa891ff04bef5421439dc7c5d19d2894f75b
3
+ metadata.gz: 015d8fb59ae4758db9508bae233722c8c5238c89
4
+ data.tar.gz: d6042d5742f343f72be768608e4dd911fff2a4d1
5
5
  SHA512:
6
- metadata.gz: 74b6314623b578fc7f3282946b78fc1ab7aa530078eecee2f1ac1850ff95b2a3df4bd3b1c757512f89db759ec23610f007aed769991e8fb4b04204095906f0ae
7
- data.tar.gz: 91b40eccac67a67da55cd986f12ff4f4fa33b45b3c7b2de76e3608ddf805fbc88f451cf58947eae41759ebf2ecfb368e09ff14e871cf8497e9b9304d300bd364
6
+ metadata.gz: 6803bc25f0215b93856bf3720906498ef534a3ef24a84e8cb4aaa5e298bba90ae0a7c5f4b24822e44a978b17018206ed573b72ab3578952a23944245b958c28f
7
+ data.tar.gz: 333ed3d51bd9b654f2fede17eef82cce1c1cff54762b621fb5de7a40c63e4764f36b165f26f7a70b28b59accbd77c9d8cf76af9ee11e3d0a43adeee64aa1788d
data/README.md CHANGED
@@ -6,7 +6,7 @@ The current bumps are supported by Ive:
6
6
  - **Major** _Go from 1.0.0 to 2.0.0_
7
7
  - **Minor** _Go from 1.0.0 to 1.1.0_
8
8
  - **Patch** _Go from 1.0.0 to 1.0.1_
9
- - **Build** _Go from 1.0.0-100000 to 1.0.0-100001_
9
+ - **Build** _Go from 1.0.0-0001 to 1.0.0-0002_
10
10
 
11
11
  And you can even automatically tag the current commit with this lastest version bump.
12
12
 
@@ -28,17 +28,34 @@ Or install it yourself as:
28
28
 
29
29
  It's really simple to use. Just run anh of the following commands in the Terminal from the project root in order to bump.
30
30
 
31
- ivo bump:major
32
- ivo bump:minor
33
- ivo bump:patch
34
- ivo bump:build
31
+ ive major
32
+ ive minor
33
+ ive patch
34
+ ive build
35
35
 
36
36
  To tag the commit add the _--git_ parameter.
37
37
 
38
- ivo bump:major --git
39
- ivo bump:minor --git
40
- ivo bump:patch --git
41
- ivo bump:build --git
38
+ ive major --git
39
+ ive minor --git
40
+ ive patch --git
41
+ ive build --git
42
+
43
+ You can also supply the path of the project root if needed. Just pass the _-p_ (or _--path_) parameter.
44
+
45
+ ive major -p ~/Project
46
+ ive major --path ~/Project
47
+
48
+ You can also specify the target/configuration you want to bump the version by adding an extra _.ive_ file in the project root. This file should contain a valid target and configuration in order to be used.
49
+
50
+ Here is an example of the configuration file.
51
+
52
+ target: "TheProject"
53
+ configuration: "Debug"
54
+
55
+ It's also possible to check out the current version.
56
+
57
+ ive version
58
+ ive version -p ~/Project
42
59
 
43
60
  ## Contributing
44
61
 
data/bin/ive CHANGED
@@ -8,20 +8,23 @@ class IveRunner < Thor
8
8
 
9
9
  desc "list", "Show all the possible version bumps."
10
10
  def list
11
- Ive::Base.list
11
+ Ive::Base.new.list
12
12
  end
13
13
 
14
14
  %i(major minor patch build).each do |type|
15
15
  desc type, "Perform a #{type} version bump."
16
16
  method_option :path, :aliases => "-p", :desc => "Supply the path where the project is located"
17
17
  define_method type do
18
- Ive::Base.bump type, options[:path], git?
18
+ ENV["IVE_PATH"] = options[:path]
19
+ Ive::Base.new.bump type, git?
19
20
  end
20
21
  end
21
22
 
22
23
  desc "version", "Show the current project version."
23
- def version(path)
24
- Ive::Base.version path
24
+ method_option :path, :aliases => "-p", :desc => "Supply the path where the project is located"
25
+ def version
26
+ ENV["IVE_PATH"] = options[:path]
27
+ Ive::Base.new.version
25
28
  end
26
29
 
27
30
  private
data/lib/ive.rb CHANGED
@@ -2,6 +2,17 @@ require "ive/version"
2
2
  require "ive/base"
3
3
  require "ive/bump"
4
4
  require "ive/git"
5
+ require "ive/configuration"
6
+ require "ive/xcode"
5
7
 
6
8
  module Ive
9
+ class << self
10
+ def config
11
+ @config ||= Configuration.new
12
+ end
13
+
14
+ def path
15
+ ENV["IVE_PATH"] || Dir.pwd
16
+ end
17
+ end
7
18
  end
@@ -1,9 +1,7 @@
1
1
  require "xcoder"
2
- require "yaml"
3
2
 
4
3
  module Ive
5
4
  class Base
6
- class << self
7
5
  def list
8
6
  puts "-- Ive supports the following version bumps:"
9
7
  puts "- major"
@@ -12,72 +10,30 @@ module Ive
12
10
  puts "- build"
13
11
  end
14
12
 
15
- def bump(type, path, with_git=false)
16
- path = Dir.pwd unless path
17
- puts "-- Using the current project: #{path}"
18
-
19
- if project = xcode_project(path)
20
- config = config project, path
21
- return if config.nil?
22
-
23
- puts "-- Tagging and commiting enabled: #{with_git ? "yes" : "no"}"
24
- if with_git
25
- if Git.changes?(path)
13
+ def bump(type, git=false)
14
+ if config = Ive::Xcode.new.config
15
+ if git
16
+ if Git.changes?
26
17
  puts "-- This repository has uncommited changes please commit these changes before performing a version bump."
27
- return
28
18
  else
29
- Git.commit path, Ive::Bump.public_send(type, config, with_git)
19
+ version = Bump.public_send(type, config)
20
+ Git.commit version
30
21
  end
31
22
  else
32
- Ive::Bump.public_send type, config, with_git
23
+ Bump.public_send(type, config)
33
24
  end
34
25
  else
35
26
  puts "-- No project file found"
36
27
  end
37
28
  end
38
29
 
39
- def version path
40
- puts "-- Using the current project: #{path}"
41
- if project = xcode_project(path)
42
- config = config project, path
30
+ def version
31
+ if config = Ive::Xcode.new.config
43
32
  puts "-- Version #{config.info_plist.marketing_version}"
44
33
  puts "-- Build version #{config.info_plist.version}"
45
34
  else
46
35
  puts "-- No project file found"
47
36
  end
48
37
  end
49
-
50
- private
51
-
52
- def xcode_project path
53
- project_path = Dir.glob("#{path}/*.xcodeproj").first
54
- Xcode.project project_path
55
- end
56
-
57
- def config project, path
58
- if config_file?(path) && valid_config?(path)
59
- config = config_file path
60
- project.target(config["target"]).config(config["configuration"])
61
- else
62
- project.targets.first.config(:Debug)
63
- end
64
- rescue Exception => e
65
- puts "-- #{e}"
66
- nil
67
- end
68
-
69
- def config_file? path
70
- File.exists?(File.join(path,'.ive'))
71
- end
72
-
73
- def config_file path
74
- YAML::load(File.open(File.join(path,'.ive')))
75
- end
76
-
77
- def valid_config? path
78
- config = config_file path
79
- config["target"] && config["configuration"]
80
- end
81
38
  end
82
- end
83
39
  end
@@ -3,23 +3,19 @@ require "versionomy"
3
3
  module Ive
4
4
  class Bump
5
5
  class << self
6
- def major(config, with_git=false)
7
- puts "-- Bumping version"
6
+ def major(config)
8
7
  bumped_version config, :major
9
8
  end
10
9
 
11
- def minor(config, with_git=false)
12
- puts "-- Bumping version"
10
+ def minor(config)
13
11
  bumped_version config, :minor
14
12
  end
15
13
 
16
- def patch(config, with_git=false)
17
- puts "-- Bumping version"
14
+ def patch(config)
18
15
  bumped_version config, :tiny
19
16
  end
20
17
 
21
- def build(config, with_git=false)
22
- puts "-- Bumping build version"
18
+ def build(config)
23
19
  bumped_build_version config
24
20
  end
25
21
 
@@ -34,8 +30,6 @@ module Ive
34
30
  end
35
31
 
36
32
  new_version = "v#{config.info_plist.marketing_version}"
37
- puts "-- New version: #{config.info_plist.marketing_version}"
38
- puts "-- New build version: #{config.info_plist.version}"
39
33
  new_version
40
34
  end
41
35
 
@@ -46,8 +40,6 @@ module Ive
46
40
  info.version = build_version_from info.marketing_version, new_build_version + 1
47
41
  info.save
48
42
  end
49
-
50
- puts "-- New build version: #{config.info_plist.version}"
51
43
  end
52
44
 
53
45
  def build_version_from version, count
@@ -0,0 +1,38 @@
1
+ require "ostruct"
2
+ require "yaml"
3
+
4
+ module Ive
5
+ class Configuration
6
+ attr :target
7
+ attr :configuration
8
+
9
+ def initialize
10
+ if self.exists?
11
+ self.read_config
12
+ unless self.valid?
13
+ puts "-- Invalid .ive config file."
14
+ end
15
+ else
16
+ puts "-- No .ive config file found."
17
+ end
18
+ end
19
+
20
+ def read_config
21
+ params = YAML::load File.open(self.config_path)
22
+ @target = params["target"]
23
+ @configuration = params["configuration"]
24
+ end
25
+
26
+ def valid?
27
+ @target && @configuration
28
+ end
29
+
30
+ def exists?
31
+ File.exists?(self.config_path)
32
+ end
33
+
34
+ def config_path
35
+ @config_path ||= File.join(Ive.path,'.ive')
36
+ end
37
+ end
38
+ end
@@ -3,13 +3,13 @@ require "git"
3
3
  module Ive
4
4
  class Git
5
5
  class << self
6
- def changes? path
7
- git = ::Git.open path
6
+ def changes?
7
+ git = ::Git.open Ive.path
8
8
  git.status.changed.count > 0
9
9
  end
10
10
 
11
- def commit path, version
12
- git = ::Git.open path
11
+ def commit version
12
+ git = ::Git.open Ive.path
13
13
  git.add all: true
14
14
  git.commit "Version bump"
15
15
  git.add_tag version
@@ -1,3 +1,3 @@
1
1
  module Ive
2
- VERSION = "0.1.0"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -0,0 +1,21 @@
1
+ require "xcoder"
2
+
3
+ module Ive
4
+ class Xcode
5
+ def config
6
+ return nil unless Ive.config.valid?
7
+
8
+ project.target(Ive.config.target).config(Ive.config.configuration)
9
+ #rescue Exception => e
10
+ #nil
11
+ end
12
+
13
+ def project
14
+ @project ||= ::Xcode.project self.project_path
15
+ end
16
+
17
+ def project_path
18
+ @project_path ||= Dir.glob("#{Ive.path}/*.xcodeproj").first
19
+ end
20
+ end
21
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ive
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jelle Vandebeeck
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-28 00:00:00.000000000 Z
11
+ date: 2014-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -113,8 +113,10 @@ files:
113
113
  - lib/ive.rb
114
114
  - lib/ive/base.rb
115
115
  - lib/ive/bump.rb
116
+ - lib/ive/configuration.rb
116
117
  - lib/ive/git.rb
117
118
  - lib/ive/version.rb
119
+ - lib/ive/xcode.rb
118
120
  homepage: https://github.com/fousa/ive
119
121
  licenses:
120
122
  - MIT