xcvm 0.1.0 → 0.1.1

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