rake-version 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -4,6 +4,7 @@ source "http://rubygems.org"
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
 
6
6
  gem 'rake', '~> 0.9.2'
7
+ gem 'upoj-rb', '~> 0.0.5'
7
8
 
8
9
  # Add dependencies to develop your gem here.
9
10
  # Include everything needed to run rake, tests, features, etc.
@@ -13,6 +13,7 @@ GEM
13
13
  rdoc
14
14
  json (1.6.5)
15
15
  multi_json (1.0.4)
16
+ paint (0.8.4)
16
17
  rake (0.9.2.2)
17
18
  rdiscount (1.6.8)
18
19
  rdoc (3.12)
@@ -30,6 +31,9 @@ GEM
30
31
  multi_json (~> 1.0.3)
31
32
  simplecov-html (~> 0.5.3)
32
33
  simplecov-html (0.5.3)
34
+ upoj-rb (0.0.5)
35
+ active_support (>= 2)
36
+ paint
33
37
  yard (0.7.5)
34
38
 
35
39
  PLATFORMS
@@ -44,4 +48,5 @@ DEPENDENCIES
44
48
  rspec (~> 2.8.0)
45
49
  shoulda (~> 2.11.3)
46
50
  simplecov (~> 0.5.4)
51
+ upoj-rb (~> 0.0.5)
47
52
  yard (~> 0.7.5)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
@@ -1,5 +1,6 @@
1
1
 
2
2
  require 'rake/tasklib'
3
+ require 'active_support/core_ext/hash'
3
4
 
4
5
  module RakeVersion
5
6
  VERSION = File.open(File.join(File.dirname(__FILE__), '..', 'VERSION'), 'r').read
@@ -11,6 +12,8 @@ module RakeVersion
11
12
  class BadContext < BadArgument; end
12
13
  class BadVersion < BadArgument; end
13
14
  class BadBumpType < BadArgument; end
15
+ class BadFilePattern < BadArgument; end
16
+ class BadVersionPattern < BadArgument; end
14
17
 
15
18
  def self.check_context o
16
19
  self.check_type o, RakeVersion::Context, BadContext
@@ -27,4 +30,4 @@ module RakeVersion
27
30
  end
28
31
  end
29
32
 
30
- %w( context manager tasks version ).each{ |dep| require File.join(File.dirname(__FILE__), 'rake-version', dep) }
33
+ %w( config context copier manager tasks version ).each{ |dep| require File.join(File.dirname(__FILE__), 'rake-version', dep) }
@@ -0,0 +1,32 @@
1
+ require 'ostruct'
2
+
3
+ module RakeVersion
4
+
5
+ class Config < OpenStruct
6
+
7
+ attr_reader :extension
8
+
9
+ def initialize
10
+ super
11
+ @copiers = []
12
+ @extension = 'rb'
13
+ end
14
+
15
+ def copy *args
16
+ options = args.extract_options!
17
+ args.unshift "src/**/*.#{@extension}" if args.blank?
18
+ args << options if options.present?
19
+ @copiers << Copier.new(*args)
20
+ self
21
+ end
22
+
23
+ def copiers
24
+ Array.new @copiers
25
+ end
26
+
27
+ def extension= extension
28
+ raise "Expected extension to be alphanumerical, got #{extension.inspect}." unless extension.respond_to?(:to_s) and extension.to_s.match(/^[a-z0-9]+$/i)
29
+ @extension = extension.to_s
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,73 @@
1
+ require 'find'
2
+
3
+ module RakeVersion
4
+
5
+ class Copier
6
+
7
+ def initialize *args
8
+ options = HashWithIndifferentAccess.new args.extract_options!
9
+
10
+ @file_patterns = args.collect{ |arg| check_file_pattern arg }
11
+ @version_pattern = check_version_pattern(options[:version]) || /\d+\.\d+\.\d+/
12
+ @replace_all = !!options[:all]
13
+ end
14
+
15
+ def copy version, context
16
+ find_all_files(context).each{ |f| copy_version f, version }
17
+ end
18
+
19
+ private
20
+
21
+ def check_file_pattern pattern
22
+ unless [ String, Regexp ].any?{ |klass| pattern.kind_of? klass }
23
+ raise BadFilePattern, "Expected file pattern to be a glob string or regexp, got #{pattern.class.name}."
24
+ end
25
+ pattern
26
+ end
27
+
28
+ def check_version_pattern pattern
29
+ unless pattern.nil? or pattern.kind_of? Regexp
30
+ raise BadVersionPattern, "Expected version option to be a regexp, got #{pattern.class.name}."
31
+ end
32
+ pattern
33
+ end
34
+
35
+ def copy_version file, version
36
+ File.open(file, 'r+') do |f|
37
+ contents = f.read
38
+ return unless match? contents
39
+ f.rewind
40
+ f.write process(contents, version)
41
+ end
42
+ end
43
+
44
+ def match? contents
45
+ contents.match @version_pattern
46
+ end
47
+
48
+ def process contents, version
49
+ if @replace_all
50
+ contents.gsub(@version_pattern, version.to_s)
51
+ else
52
+ contents.sub(@version_pattern, version.to_s)
53
+ end
54
+ end
55
+
56
+ def find_all_files context
57
+ @file_patterns.collect{ |p| find_files p, context }.flatten
58
+ end
59
+
60
+ def find_files pattern, context
61
+ if pattern.kind_of? String
62
+ Dir.chdir context.root
63
+ Dir.glob(pattern).select{ |f| File.file? f }
64
+ elsif pattern.kind_of? Regexp
65
+ files = []
66
+ Find.find(context.root) do |path|
67
+ files << path if File.file?(path) and path.match(pattern)
68
+ end
69
+ files
70
+ end
71
+ end
72
+ end
73
+ end
@@ -1,12 +1,12 @@
1
1
 
2
2
  module RakeVersion
3
3
 
4
- attr_accessor :namespace
5
- attr_accessor :root
6
- attr_accessor :version_filename
7
-
8
4
  class Manager
9
5
 
6
+ def initialize
7
+ @copiers = []
8
+ end
9
+
10
10
  def version
11
11
  check_context
12
12
  RakeVersion::Version.new.from_s read_version
@@ -14,12 +14,17 @@ module RakeVersion
14
14
 
15
15
  def set version_string
16
16
  check_context
17
- save RakeVersion::Version.new.from_s(version_string)
17
+ copy save(RakeVersion::Version.new.from_s(version_string))
18
18
  end
19
19
 
20
20
  def bump type
21
21
  check_context
22
- save version.bump(type)
22
+ copy save(version.bump(type))
23
+ end
24
+
25
+ def config= config
26
+ @copiers = config.copiers
27
+ self
23
28
  end
24
29
 
25
30
  def with_context context, &block
@@ -32,6 +37,12 @@ module RakeVersion
32
37
 
33
38
  private
34
39
 
40
+ def copy version
41
+ check_context
42
+ @copiers.each{ |c| c.copy version, @context }
43
+ version
44
+ end
45
+
35
46
  def check_context
36
47
  raise MissingContext, "A context must be given with :with_context." unless @context
37
48
  end
@@ -5,7 +5,9 @@ module RakeVersion
5
5
 
6
6
  def initialize &block
7
7
  @manager = RakeVersion::Manager.new
8
- yield @manager if block_given?
8
+ @config = RakeVersion::Config.new
9
+ yield @config if block_given?
10
+ @manager.config = @config
9
11
  define
10
12
  end
11
13
 
@@ -25,6 +27,7 @@ module RakeVersion
25
27
  namespace :bump do
26
28
 
27
29
  [ :major, :minor, :patch ].each do |type|
30
+ desc "Bump the #{type} version"
28
31
  task type do |t|
29
32
  puts @manager.bump(type).to_s
30
33
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "rake-version"
8
- s.version = "0.1.0"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["AlphaHydrae"]
12
- s.date = "2012-02-24"
12
+ s.date = "2012-02-25"
13
13
  s.description = "Rake tasks for version management."
14
14
  s.email = "hydrae.alpha@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -27,12 +27,16 @@ Gem::Specification.new do |s|
27
27
  "Rakefile",
28
28
  "VERSION",
29
29
  "lib/rake-version.rb",
30
+ "lib/rake-version/config.rb",
30
31
  "lib/rake-version/context.rb",
32
+ "lib/rake-version/copier.rb",
31
33
  "lib/rake-version/manager.rb",
32
34
  "lib/rake-version/tasks.rb",
33
35
  "lib/rake-version/version.rb",
34
36
  "rake-version.gemspec",
37
+ "spec/config_spec.rb",
35
38
  "spec/context_spec.rb",
39
+ "spec/copier_spec.rb",
36
40
  "spec/helper.rb",
37
41
  "spec/manager_spec.rb",
38
42
  "spec/tasks_spec.rb",
@@ -49,6 +53,7 @@ Gem::Specification.new do |s|
49
53
 
50
54
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
51
55
  s.add_runtime_dependency(%q<rake>, ["~> 0.9.2"])
56
+ s.add_runtime_dependency(%q<upoj-rb>, ["~> 0.0.5"])
52
57
  s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
53
58
  s.add_development_dependency(%q<shoulda>, ["~> 2.11.3"])
54
59
  s.add_development_dependency(%q<bundler>, [">= 0"])
@@ -58,6 +63,7 @@ Gem::Specification.new do |s|
58
63
  s.add_development_dependency(%q<rdiscount>, ["~> 1.6.8"])
59
64
  else
60
65
  s.add_dependency(%q<rake>, ["~> 0.9.2"])
66
+ s.add_dependency(%q<upoj-rb>, ["~> 0.0.5"])
61
67
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
62
68
  s.add_dependency(%q<shoulda>, ["~> 2.11.3"])
63
69
  s.add_dependency(%q<bundler>, [">= 0"])
@@ -68,6 +74,7 @@ Gem::Specification.new do |s|
68
74
  end
69
75
  else
70
76
  s.add_dependency(%q<rake>, ["~> 0.9.2"])
77
+ s.add_dependency(%q<upoj-rb>, ["~> 0.0.5"])
71
78
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
72
79
  s.add_dependency(%q<shoulda>, ["~> 2.11.3"])
73
80
  s.add_dependency(%q<bundler>, [">= 0"])
@@ -0,0 +1,68 @@
1
+ require 'helper'
2
+
3
+ describe RakeVersion::Config do
4
+
5
+ before :each do
6
+ @config = RakeVersion::Config.new
7
+ end
8
+
9
+ it "should be an open structure" do
10
+ lambda{ @config.fubar = true }.should_not raise_error
11
+ end
12
+
13
+ describe 'Copiers' do
14
+
15
+ it "should not have any copiers by default" do
16
+ @config.copiers.should be_empty
17
+ end
18
+
19
+ it "should correctly create copiers" do
20
+ copiers = [
21
+ [],
22
+ [ 'src/**/*.js' ],
23
+ [ /src\/.*\.sh/ ],
24
+ [ 'src/example.js', 'src/example.rb' ],
25
+ [ 'src/**/*.rb', :all => true ]
26
+ ]
27
+ copiers.each do |args|
28
+ lambda{ @config.copy *args }.should_not raise_error
29
+ end
30
+ @config.copiers.length.should == copiers.length
31
+ end
32
+
33
+ it "should create copiers with a ruby extension glob by default" do
34
+ RakeVersion::Copier.should_receive(:new).with('src/**/*.rb')
35
+ @config.copy
36
+ end
37
+
38
+ it "should return itself when creating a copier" do
39
+ @config.copy.should === @config
40
+ end
41
+
42
+ it "should return a copy of its copiers array" do
43
+ @config.copy
44
+ @config.copiers.clear
45
+ @config.copiers.length.should == 1
46
+ end
47
+ end
48
+
49
+ describe 'Extension' do
50
+
51
+ it "should have the ruby extension by default" do
52
+ @config.extension.should == 'rb'
53
+ end
54
+
55
+ it "should accept alphanumerical extensions" do
56
+ [ :rb, 'js', :sh, 'py', double('extension', :to_s => 'java') ].each do |ext|
57
+ lambda{ @config.extension = ext }.should_not raise_error
58
+ @config.extension.should == ext.to_s
59
+ end
60
+ end
61
+
62
+ it "should not accept non-alphanumerical extensions" do
63
+ [ nil, '.', :_, [], {}, double('fubar') ].each do |invalid|
64
+ lambda{ @config.extension = invalid }.should raise_error(StandardError)
65
+ end
66
+ end
67
+ end
68
+ end
@@ -24,8 +24,6 @@ describe RakeVersion::Context do
24
24
  File.stub(:open) do |file,mode|
25
25
  if mode == 'r' and file == filename
26
26
  double('file').tap{ |f| f.stub(:read){ contents } }
27
- else
28
- nil
29
27
  end
30
28
  end
31
29
 
@@ -0,0 +1,166 @@
1
+ require 'helper'
2
+
3
+ describe RakeVersion::Copier do
4
+
5
+ it "should require no arguments" do
6
+ lambda{ RakeVersion::Copier.new }.should_not raise_error
7
+ end
8
+
9
+ it "should accept glob strings and regexps as arguments" do
10
+ [
11
+ [ 'src/**/*.js' ],
12
+ [ /src\/.*\.sh/ ],
13
+ [ 'src/example.js', 'src/example.rb' ],
14
+ [ 'src/example.sh', /src\/.*\.java/, 'src/**/*.py' ]
15
+ ].each do |args|
16
+ lambda{ RakeVersion::Copier.new *args }.should_not raise_error
17
+ end
18
+ end
19
+
20
+ it "should only accept glob strings and regexps as arguments" do
21
+ # we do not test a hash, as it is valid to pass an options hash
22
+ [ nil, true, false, [], Object.new, :symbol ].each do |invalid|
23
+ lambda{ RakeVersion::Copier.new invalid }.should raise_error(RakeVersion::BadFilePattern)
24
+ end
25
+ end
26
+
27
+ it "should take options" do
28
+ lambda{ RakeVersion::Copier.new :option1 => true, :option2 => false }.should_not raise_error
29
+ end
30
+
31
+ it "should accept a regexp as the version option" do
32
+ lambda{ RakeVersion::Copier.new :version => /version/ }.should_not raise_error
33
+ end
34
+
35
+ it "should only accept a regexp as the version option" do
36
+ [ true, false, [], {}, Object.new, :symbol ].each do |invalid|
37
+ lambda{ RakeVersion::Copier.new :version => invalid }.should raise_error(RakeVersion::BadVersionPattern)
38
+ end
39
+ end
40
+
41
+ describe 'Copying' do
42
+ COPIER_SAMPLE_ROOT = '/tmp'
43
+ COPIER_SAMPLE_VERSION = '7.8.9'
44
+ COPIER_SAMPLE_FILES = {
45
+ '/tmp/src/example.rb' => "#\n# example v1.2.3\n#\n\nputs 'Hello World!'",
46
+ '/tmp/src/example.js' => "/*\n * example v2.3.4\n */\n\nconsole.log('Hello World!');\n// This is example v2.3.4",
47
+ '/tmp/src/script/sub-example.sh' => "#\n# example v3.4.5\n#\n\necho 'Hello World!'",
48
+ '/tmp/src/script/sub-example.rb' => "#\n# example v4.5.6\n#\n\nputs 'Hello World!'\n# This is example v4.5.6",
49
+ '/tmp/lib/example.java' => "/**\n * example v5.6.7\n */\n\n// not yet implemented",
50
+ '/tmp/README' => "not\na\nsource\nfile"
51
+ }
52
+
53
+ before :each do
54
+
55
+ @version = double('version', :to_s => COPIER_SAMPLE_VERSION)
56
+ @context = double('context', :root => COPIER_SAMPLE_ROOT)
57
+
58
+ File.stub(:file?) do |file|
59
+ !!COPIER_SAMPLE_FILES[file]
60
+ end
61
+
62
+ stub = Find.stub(:find)
63
+ COPIER_SAMPLE_FILES.keys.each do |k|
64
+ stub.and_yield k
65
+ end
66
+
67
+ Dir.stub(:chdir)
68
+ Dir.stub(:glob) do |pattern|
69
+ COPIER_SAMPLE_FILES.keys.select do |k|
70
+ m = pattern.match /^\*\*\/\*\.([a-z]+)$/
71
+ m and k.match(Regexp.new("\\.#{m[1]}$"))
72
+ end
73
+ end
74
+ end
75
+
76
+ def mock_file file
77
+ double("file #{file}", :read => COPIER_SAMPLE_FILES[file].try(:dup), :rewind => nil, :write => nil)
78
+ end
79
+
80
+ it "should copy the version to ruby files with a glob string" do
81
+
82
+ filename1, filename2 = '/tmp/src/example.rb', '/tmp/src/script/sub-example.rb'
83
+ file1, file2 = mock_file(filename1), mock_file(filename2)
84
+ File.stub(:open).and_yield(file1).and_yield(file2)
85
+
86
+ copier = RakeVersion::Copier.new '**/*.rb'
87
+
88
+ @version.should_receive(:to_s)
89
+ @context.should_receive(:root)
90
+ File.should_receive(:open).with(filename1, 'r+')
91
+ File.should_receive(:open).with(filename2, 'r+')
92
+ file1.should_receive(:write).with(COPIER_SAMPLE_FILES[filename1].sub(/1\.2\.3/, '7.8.9'))
93
+ file2.should_receive(:write).with(COPIER_SAMPLE_FILES[filename2].sub(/4\.5\.6/, '7.8.9'))
94
+
95
+ copier.copy @version, @context
96
+ end
97
+
98
+ it "should copy the version to javascript files with a regexp" do
99
+
100
+ filename = '/tmp/src/example.js'
101
+ file = mock_file filename
102
+ File.stub(:open).and_yield(file)
103
+
104
+ copier = RakeVersion::Copier.new /\.js$/
105
+
106
+ @version.should_receive(:to_s)
107
+ @context.should_receive(:root)
108
+ File.should_receive(:open).with(filename, 'r+')
109
+ file.should_receive(:write).with(COPIER_SAMPLE_FILES[filename].sub(/2\.3\.4/, '7.8.9'))
110
+
111
+ copier.copy @version, @context
112
+ end
113
+
114
+ it "should copy the version to files identified by several glob strings and regexps" do
115
+
116
+ filename1, filename2 = '/tmp/src/script/sub-example.sh', '/tmp/lib/example.java'
117
+ file1, file2 = mock_file(filename1), mock_file(filename2)
118
+ File.stub(:open).and_yield(file1).and_yield(file2)
119
+
120
+ copier = RakeVersion::Copier.new '**/*.sh', /lib/
121
+
122
+ @version.should_receive(:to_s)
123
+ @context.should_receive(:root)
124
+ File.should_receive(:open).with(filename1, 'r+')
125
+ File.should_receive(:open).with(filename2, 'r+')
126
+ file1.should_receive(:write).with(COPIER_SAMPLE_FILES[filename1].sub(/3\.4\.5/, '7.8.9'))
127
+ file2.should_receive(:write).with(COPIER_SAMPLE_FILES[filename2].sub(/5\.6\.7/, '7.8.9'))
128
+
129
+ copier.copy @version, @context
130
+ end
131
+
132
+ it "should not modify files that do not match the version pattern" do
133
+
134
+ filename = '/tmp/README'
135
+ file = mock_file filename
136
+ File.stub(:open).and_yield(file)
137
+
138
+ copier = RakeVersion::Copier.new /README/
139
+
140
+ @version.should_not_receive(:to_s)
141
+ @context.should_receive(:root)
142
+ File.should_receive(:open).with(filename, 'r+')
143
+ file.should_not_receive(:write)
144
+
145
+ copier.copy @version, @context
146
+ end
147
+
148
+ it "should replace all occurences of the version pattern if specified" do
149
+
150
+ filename1, filename2 = '/tmp/src/example.js', '/tmp/src/script/sub-example.rb'
151
+ file1, file2 = mock_file(filename1), mock_file(filename2)
152
+ File.stub(:open).and_yield(file1).and_yield(file2)
153
+
154
+ copier = RakeVersion::Copier.new /\.js$/, /sub.*\.rb$/, :all => true
155
+
156
+ @version.should_receive(:to_s)
157
+ @context.should_receive(:root)
158
+ File.should_receive(:open).with(filename1, 'r+')
159
+ File.should_receive(:open).with(filename2, 'r+')
160
+ file1.should_receive(:write).with(COPIER_SAMPLE_FILES[filename1].gsub(/2\.3\.4/, '7.8.9'))
161
+ file2.should_receive(:write).with(COPIER_SAMPLE_FILES[filename2].gsub(/4\.5\.6/, '7.8.9'))
162
+
163
+ copier.copy @version, @context
164
+ end
165
+ end
166
+ end
@@ -18,6 +18,9 @@ describe RakeVersion::Manager do
18
18
  @version.stub(:to_s){ MANAGER_SAMPLE_VERSION }
19
19
  @version.stub(:bump){ @version }
20
20
  @version.stub(:kind_of?){ |type| type == RakeVersion::Version }
21
+
22
+ @copier = double('copier', :copy => nil)
23
+ @config = double('config', :copiers => [ @copier ])
21
24
  end
22
25
 
23
26
  def with_context &block
@@ -89,4 +92,26 @@ describe RakeVersion::Manager do
89
92
  lambda{ @manager.with_context invalid }.should raise_error(RakeVersion::BadContext)
90
93
  end
91
94
  end
95
+
96
+ describe 'Copying' do
97
+
98
+ it "should ask the given config for its copiers" do
99
+ @config.should_receive :copiers
100
+ with_context{ |m| m.config = @config }
101
+ end
102
+
103
+ it "should ask given copiers to copy the version to sources when setting the version" do
104
+ @manager.config = @config
105
+ @copier.should_receive(:copy).with(kind_of(RakeVersion::Version), @context)
106
+ with_context{ |m| m.set '1.2.3' }
107
+ end
108
+
109
+ [ :major, :minor, :patch ].each do |type|
110
+ it "should ask given copiers to copy the version to sources when bumping the #{type} version" do
111
+ @manager.config = @config
112
+ @copier.should_receive(:copy).with(kind_of(RakeVersion::Version), @context)
113
+ with_context{ |m| m.bump type }
114
+ end
115
+ end
116
+ end
92
117
  end
@@ -14,6 +14,7 @@ describe RakeVersion::Tasks do
14
14
  @manager.stub(:set){ @version }
15
15
  @manager.stub(:bump){ @version }
16
16
  @manager.stub(:with_context).and_yield(@manager)
17
+ @manager.stub(:config=)
17
18
 
18
19
  RakeVersion::Manager.stub(:new){ @manager }
19
20
  RakeVersion::Tasks.new
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-version
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-24 00:00:00.000000000Z
12
+ date: 2012-02-25 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &2156595400 !ruby/object:Gem::Requirement
16
+ requirement: &2153972560 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,21 @@ dependencies:
21
21
  version: 0.9.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2156595400
24
+ version_requirements: *2153972560
25
+ - !ruby/object:Gem::Dependency
26
+ name: upoj-rb
27
+ requirement: &2153971980 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.0.5
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2153971980
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: rspec
27
- requirement: &2156593880 !ruby/object:Gem::Requirement
38
+ requirement: &2153971380 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ~>
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: 2.8.0
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *2156593880
46
+ version_requirements: *2153971380
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: shoulda
38
- requirement: &2156591640 !ruby/object:Gem::Requirement
49
+ requirement: &2153970800 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ~>
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: 2.11.3
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *2156591640
57
+ version_requirements: *2153970800
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: bundler
49
- requirement: &2156455200 !ruby/object:Gem::Requirement
60
+ requirement: &2153970200 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ! '>='
@@ -54,10 +65,10 @@ dependencies:
54
65
  version: '0'
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *2156455200
68
+ version_requirements: *2153970200
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: jeweler
60
- requirement: &2156453720 !ruby/object:Gem::Requirement
71
+ requirement: &2153969600 !ruby/object:Gem::Requirement
61
72
  none: false
62
73
  requirements:
63
74
  - - ~>
@@ -65,10 +76,10 @@ dependencies:
65
76
  version: 1.8.3
66
77
  type: :development
67
78
  prerelease: false
68
- version_requirements: *2156453720
79
+ version_requirements: *2153969600
69
80
  - !ruby/object:Gem::Dependency
70
81
  name: simplecov
71
- requirement: &2156452260 !ruby/object:Gem::Requirement
82
+ requirement: &2153969000 !ruby/object:Gem::Requirement
72
83
  none: false
73
84
  requirements:
74
85
  - - ~>
@@ -76,10 +87,10 @@ dependencies:
76
87
  version: 0.5.4
77
88
  type: :development
78
89
  prerelease: false
79
- version_requirements: *2156452260
90
+ version_requirements: *2153969000
80
91
  - !ruby/object:Gem::Dependency
81
92
  name: yard
82
- requirement: &2156450160 !ruby/object:Gem::Requirement
93
+ requirement: &2153968400 !ruby/object:Gem::Requirement
83
94
  none: false
84
95
  requirements:
85
96
  - - ~>
@@ -87,10 +98,10 @@ dependencies:
87
98
  version: 0.7.5
88
99
  type: :development
89
100
  prerelease: false
90
- version_requirements: *2156450160
101
+ version_requirements: *2153968400
91
102
  - !ruby/object:Gem::Dependency
92
103
  name: rdiscount
93
- requirement: &2156447840 !ruby/object:Gem::Requirement
104
+ requirement: &2153967800 !ruby/object:Gem::Requirement
94
105
  none: false
95
106
  requirements:
96
107
  - - ~>
@@ -98,7 +109,7 @@ dependencies:
98
109
  version: 1.6.8
99
110
  type: :development
100
111
  prerelease: false
101
- version_requirements: *2156447840
112
+ version_requirements: *2153967800
102
113
  description: Rake tasks for version management.
103
114
  email: hydrae.alpha@gmail.com
104
115
  executables: []
@@ -117,12 +128,16 @@ files:
117
128
  - Rakefile
118
129
  - VERSION
119
130
  - lib/rake-version.rb
131
+ - lib/rake-version/config.rb
120
132
  - lib/rake-version/context.rb
133
+ - lib/rake-version/copier.rb
121
134
  - lib/rake-version/manager.rb
122
135
  - lib/rake-version/tasks.rb
123
136
  - lib/rake-version/version.rb
124
137
  - rake-version.gemspec
138
+ - spec/config_spec.rb
125
139
  - spec/context_spec.rb
140
+ - spec/copier_spec.rb
126
141
  - spec/helper.rb
127
142
  - spec/manager_spec.rb
128
143
  - spec/tasks_spec.rb
@@ -142,7 +157,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
142
157
  version: '0'
143
158
  segments:
144
159
  - 0
145
- hash: 992759185416645503
160
+ hash: 1720608567818456013
146
161
  required_rubygems_version: !ruby/object:Gem::Requirement
147
162
  none: false
148
163
  requirements: