xcvm 0.1.0 → 0.1.1

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: e6f0da376bac781ea67f746e126d03990baa27fc
4
- data.tar.gz: 517d730f2ae8be859726978ada60a61af4226d60
3
+ metadata.gz: e6ee7da56fecc0450a027b696b7247e0633670ab
4
+ data.tar.gz: da127e3f5c2f0f524e1257f451d62986093ae04e
5
5
  SHA512:
6
- metadata.gz: aacdda444c6728ee512e49223f4c8653f9febe76fb03f1f66e78faf7392a95ebcc2d65a5e2870bb71b3cc5f6ffb44c7871190de10d8c01ac2f10744a385af436
7
- data.tar.gz: 125d8f516349baa97f4d92ab7c28085d0367b0c20724bf9c9e3a894583215d6802d1c331ffb1085c1a10474df058d73bc07ee919505299d0e4b639cf139d7755
6
+ metadata.gz: 0debb64a46417ad31b5ec2271adc7d3d1b242b100aed0f11bdd7bc65af1aabd59fcca761e2d65279eeda637a8f2ce853426760751dac6d8d18d810813f8ae4d4
7
+ data.tar.gz: ca15ebb0ba98fb14cc9a5d1bbd402923b863dcddcda7e80b8fe208bf1e212418763a84503a924190b6f7aa51c9289adb0d39f02ed9b56fc527e867d46c0c042c
data/bin/xcvm CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  require 'xcvm'
4
4
 
5
- puts "Hey"
5
+ Xcvm::VersionManager.run(ARGV[0], ARGV[1], ARGV[2], ARGV[3])
@@ -1,5 +1,31 @@
1
- require "xcvm/version"
1
+ require_relative 'xcvm/version'
2
+ require_relative 'xcvm/project'
3
+ require_relative 'xcvm/semantic_version.rb'
2
4
 
3
5
  module Xcvm
4
- # Your code goes here...
6
+ class VersionManager
7
+ def self.run(action, attribute, segment = nil, value = nil)
8
+ if action == "print" then
9
+ if attribute != nil then
10
+ print(attribute)
11
+ else
12
+ raise "Invalid attribute '#{attribute}'"
13
+ end
14
+ elsif action == "set" then
15
+ elsif action == "bump" then
16
+ elsif action == "increment" then
17
+ elsif action == "decrement" then
18
+ else
19
+ end
20
+ end
21
+
22
+ def self.print(attribute)
23
+ project = Xcvm::Project.new('Info.plist')
24
+ if attribute == "version" then
25
+ puts project.version
26
+ elsif attribute == "build" then
27
+ puts project.build
28
+ end
29
+ end
30
+ end
5
31
  end
@@ -0,0 +1,29 @@
1
+ module Xcvm
2
+ class Build
3
+ attr_accessor :build
4
+
5
+ def initialize(build)
6
+ @build = build
7
+ end
8
+
9
+ def increment!
10
+ self.build += 1
11
+ end
12
+
13
+ def decrement!
14
+ self.build -= 1
15
+ end
16
+
17
+ def to_i
18
+ return self.build
19
+ end
20
+
21
+ def to_s
22
+ return self.build.to_s
23
+ end
24
+
25
+ def inspect
26
+ self.to_i
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,42 @@
1
+ require 'plist'
2
+
3
+ require_relative 'version'
4
+ require_relative 'build'
5
+
6
+ module Xcvm
7
+ class Project
8
+ attr_reader :file
9
+
10
+ def initialize(file)
11
+ @file = file
12
+ end
13
+
14
+ def version
15
+ if @version == nil then
16
+ @version = Xcvm::SemanticVersion.new(info['CFBundleShortVersionString'])
17
+ end
18
+ return @version
19
+ end
20
+
21
+ def build
22
+ if @build == nil then
23
+ @build = Xcvm::Build.new(info['CFBundleVersion'].to_i)
24
+ end
25
+ return @build
26
+ end
27
+
28
+ def save
29
+ info['CFBundleShortVersionString'] = version.to_s
30
+ info['CFBundleVersion'] = build.to_s
31
+ File.open(@file, 'w') { |file| file.write(info.to_plist) }
32
+ end
33
+
34
+ private
35
+ def info
36
+ if @info == nil then
37
+ @info = Plist::parse_xml(@file)
38
+ end
39
+ return @info
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,75 @@
1
+ module Xcvm
2
+ class SemanticVersion
3
+ attr_accessor :major
4
+ attr_accessor :minor
5
+ attr_accessor :revision
6
+
7
+ def initialize(version)
8
+ ver = version.split('.')
9
+ @major = ver[0].to_i
10
+ @minor = ver[1].to_i
11
+ if ver[2] != nil then
12
+ @revision = ver[2].to_i
13
+ end
14
+ end
15
+
16
+ def increment!(segment)
17
+ if segment == :major then
18
+ self.major += 1
19
+ return true
20
+ elsif segment == :minor then
21
+ self.minor += 1
22
+ return true
23
+ elsif segment == :revision then
24
+ if self.revision != nil then
25
+ self.revision += 1
26
+ else
27
+ self.revision = 1
28
+ end
29
+ return true
30
+ else
31
+ return false
32
+ end
33
+ end
34
+
35
+ def decrement!(segment)
36
+ if segment == :major then
37
+ self.major -= 1
38
+ if self.major < 0 then
39
+ self.major = 0
40
+ end
41
+ return true
42
+ elsif segment == :minor then
43
+ self.minor -= 1
44
+ if self.minor < 0 then
45
+ self.minor = 0
46
+ end
47
+ return true
48
+ elsif segment == :revision then
49
+ if self.revision != nil then
50
+ self.revision -= 1
51
+ if self.revision < 0 then
52
+ self.revision = 0
53
+ end
54
+ else
55
+ self.revision = 0
56
+ end
57
+ return true
58
+ else
59
+ return false
60
+ end
61
+ end
62
+
63
+ def to_s
64
+ if @revision != nil then
65
+ return "#{self.major}.#{self.minor}.#{self.revision}"
66
+ else
67
+ return "#{self.major}.#{self.minor}"
68
+ end
69
+ end
70
+
71
+ def inspect
72
+ self.to_s
73
+ end
74
+ end
75
+ end
@@ -1,3 +1,3 @@
1
1
  module Xcvm
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcvm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - jaderfeijo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-09 00:00:00.000000000 Z
11
+ date: 2016-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.11'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.11'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: plist
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: 3.2.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 3.2.0
69
69
  description: A version manager for Xcode projects
@@ -74,19 +74,12 @@ executables:
74
74
  extensions: []
75
75
  extra_rdoc_files: []
76
76
  files:
77
- - .gitignore
78
- - .rspec
79
- - .travis.yml
80
- - Gemfile
81
- - README.md
82
- - Rakefile
83
- - bin/.xcvm.swp
84
- - bin/console
85
- - bin/setup
86
77
  - bin/xcvm
87
78
  - lib/xcvm.rb
79
+ - lib/xcvm/build.rb
80
+ - lib/xcvm/project.rb
81
+ - lib/xcvm/semantic_version.rb
88
82
  - lib/xcvm/version.rb
89
- - xcvm.gemspec
90
83
  homepage: https://github.com/jaderfeijo/xcvm
91
84
  licenses: []
92
85
  metadata: {}
@@ -96,17 +89,17 @@ require_paths:
96
89
  - lib
97
90
  required_ruby_version: !ruby/object:Gem::Requirement
98
91
  requirements:
99
- - - '>='
92
+ - - "~>"
100
93
  - !ruby/object:Gem::Version
101
- version: '0'
94
+ version: '2.2'
102
95
  required_rubygems_version: !ruby/object:Gem::Requirement
103
96
  requirements:
104
- - - '>='
97
+ - - ">="
105
98
  - !ruby/object:Gem::Version
106
99
  version: '0'
107
100
  requirements: []
108
101
  rubyforge_project:
109
- rubygems_version: 2.0.14
102
+ rubygems_version: 2.6.1
110
103
  signing_key:
111
104
  specification_version: 4
112
105
  summary: Xcode Project Version Manager
data/.gitignore DELETED
@@ -1,11 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- vendor
11
- *.swp
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --format documentation
2
- --color
@@ -1,4 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.0.0
4
- before_install: gem install bundler -v 1.11.2
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in xcvm.gemspec
4
- gemspec
data/README.md DELETED
@@ -1,36 +0,0 @@
1
- # Xcvm
2
-
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/xcvm`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
6
-
7
- ## Installation
8
-
9
- Add this line to your application's Gemfile:
10
-
11
- ```ruby
12
- gem 'xcvm'
13
- ```
14
-
15
- And then execute:
16
-
17
- $ bundle
18
-
19
- Or install it yourself as:
20
-
21
- $ gem install xcvm
22
-
23
- ## Usage
24
-
25
- TODO: Write usage instructions here
26
-
27
- ## Development
28
-
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
-
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
-
33
- ## Contributing
34
-
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/xcvm.
36
-
data/Rakefile DELETED
@@ -1,6 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
-
4
- RSpec::Core::RakeTask.new(:spec)
5
-
6
- task :default => :spec
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "xcvm"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
@@ -1,25 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'xcvm/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "xcvm"
8
- spec.version = Xcvm::VERSION
9
- spec.authors = ["jaderfeijo"]
10
- spec.email = ["jader.feijo@gmail.com"]
11
-
12
- spec.summary = "Xcode Project Version Manager"
13
- spec.description = "A version manager for Xcode projects"
14
- spec.homepage = "https://github.com/jaderfeijo/xcvm"
15
-
16
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
- spec.executables = ["xcvm"]
18
- spec.require_paths = ["lib"]
19
-
20
- spec.add_development_dependency "bundler", "~> 1.11"
21
- spec.add_development_dependency "rake", "~> 10.0"
22
- spec.add_development_dependency "rspec", "~> 3.0"
23
-
24
- spec.add_dependency "plist", "~> 3.2.0"
25
- end