rake-funnel 0.0.5.pre → 0.0.6.pre

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: 276f461ed75b3b78a82c23de466ed0f8057b6019
4
- data.tar.gz: ff755cdb17ebc083b62c378823bc0f85211bef92
3
+ metadata.gz: 1c5f4731ba432fe73f8c1f716f708347c4acbb13
4
+ data.tar.gz: 7b7bde023095c65f429fb7329bcb7648bdbd160a
5
5
  SHA512:
6
- metadata.gz: 08f26a42351dd4c114dd6c0ab367c7af0707d98cfdd5da12f88317f7ef52776dc3725b6624d055a2b6d34aa81ed28185fd9f9d20f8ca2e13e1e78fe03dd4f1f6
7
- data.tar.gz: fece830b5b3479da6c8b161897529709e125776361074f47ca1f6bed80fa0d45794d22a4609f814f9edc58385c7ebf234d012a270c89bd6e81e335535fd511f6
6
+ metadata.gz: 3e18e39c549ef30274224c56607d0d14ff09ede32ce913b3c9625700cfedbbbdca26fca2a267e3ec8605e3372fd44c00cc20e62cbe27128d2e9e1b185d80e478
7
+ data.tar.gz: eebc2eb577d4d9b4225dc386a9e2ac31b3d48d2286f7f29d110ccb0a8e43823bdcd593d85c1000c23bdff8c81de48c25bc250ccd6e4fca82759dc358195841b3
@@ -0,0 +1,55 @@
1
+ module Rake::Funnel::Support
2
+ class Version
3
+ class << self
4
+ def parse(context)
5
+ {
6
+ assembly_version: assembly_version(context),
7
+ assembly_file_version: assembly_file_version(context),
8
+ assembly_informational_version: assembly_informational_version(context)
9
+ }
10
+ end
11
+
12
+ private
13
+ def default_version(context)
14
+ context[:version] || '0'
15
+ end
16
+
17
+ def assembly_version(context)
18
+ strip_trailing_non_numeric(default_version(context))
19
+ end
20
+
21
+ def assembly_file_version(context)
22
+ numeric_build_number = strip_leading_non_numeric(context[:build_number])
23
+
24
+ [
25
+ assembly_version(context),
26
+ numeric_build_number
27
+ ].compact.join('.')
28
+ end
29
+
30
+ def assembly_informational_version(context)
31
+ build_number = context[:build_number]
32
+ join_using = '.'
33
+ join_using = '' if build_number =~ /^\D/
34
+
35
+ prefix = [default_version(context), build_number].compact.join(join_using)
36
+ sha = context[:sha]
37
+
38
+ [prefix, sha].compact.join('-')
39
+ end
40
+
41
+ def strip_trailing_non_numeric(str)
42
+ return nil if str.nil?
43
+ str.gsub(/[^\d\.].*/, '')
44
+ end
45
+
46
+ def strip_leading_non_numeric(str)
47
+ return nil if str.nil?
48
+ str = str.gsub(/[^\d\.]/, '')
49
+
50
+ return nil if str.empty?
51
+ str
52
+ end
53
+ end
54
+ end
55
+ end
@@ -8,7 +8,7 @@ module Rake::Funnel::Tasks
8
8
  def initialize(name = :template)
9
9
  @name = name
10
10
 
11
- @search_pattern = %w(**/*.template)
11
+ @search_pattern = %w(**/*.erb)
12
12
  @context = binding
13
13
 
14
14
  yield self if block_given?
@@ -38,11 +38,11 @@ module Rake::Funnel::Tasks
38
38
  end
39
39
 
40
40
  def patches
41
- @patches ||= create_patches
41
+ @patches ||= [report, benchmark]
42
42
  end
43
43
 
44
- def create_patches
45
- report = Rake::Funnel::Support::Patch.new do |p|
44
+ def report
45
+ Rake::Funnel::Support::Patch.new do |p|
46
46
  report_invoker = -> (opts) { TimingSupport::Report.new(@stats, opts).render }
47
47
 
48
48
  p.setup do
@@ -67,8 +67,10 @@ module Rake::Funnel::Tasks
67
67
  end
68
68
  end
69
69
  end
70
+ end
70
71
 
71
- benchmark = Rake::Funnel::Support::Patch.new do |p|
72
+ def benchmark
73
+ Rake::Funnel::Support::Patch.new do |p|
72
74
  benchmark_invoker = -> (task, &block) { @stats.benchmark(task, &block) }
73
75
 
74
76
  p.setup do
@@ -93,8 +95,6 @@ module Rake::Funnel::Tasks
93
95
  end
94
96
  end
95
97
  end
96
-
97
- [report, benchmark]
98
98
  end
99
99
  end
100
100
  end
@@ -1,5 +1,5 @@
1
1
  module Rake
2
2
  module Funnel
3
- VERSION = '0.0.5.pre'
3
+ VERSION = '0.0.6.pre'
4
4
  end
5
5
  end
data/rake-funnel.gemspec CHANGED
@@ -15,13 +15,13 @@ Gem::Specification.new do |s|
15
15
 
16
16
  s.required_ruby_version = '>= 2.0.0'
17
17
 
18
- s.add_dependency 'rake'
18
+ s.add_dependency 'rake', '~> 10.4'
19
19
  s.add_dependency 'rubyzip', '~> 1.0'
20
20
  s.add_dependency 'smart_colored'
21
21
  s.add_dependency 'configatron', '~> 4.5'
22
22
 
23
23
  git = ENV['TEAMCITY_GIT_PATH'] || 'git'
24
- s.files = `"#{git}" ls-files -z`.split("\x0")
24
+ s.files = `"#{git}" ls-files -z`.split("\x0").reject { |file| file =~ %r{^(config/|tools/|lib/tasks|\.gitignore|\.travis)} || file =~ %r{(Guard|Rake)file} || File.extname(file) == '.cmd' }
25
25
  s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
26
26
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
27
27
  s.require_paths = ['lib']
@@ -0,0 +1,145 @@
1
+ describe Rake::Funnel::Support::Version do
2
+ [
3
+ {
4
+ context: {
5
+ version: '1.2',
6
+ build_number: '42',
7
+ sha: 'sha'
8
+ },
9
+ expected: {
10
+ assembly_version: '1.2',
11
+ assembly_file_version: '1.2.42',
12
+ assembly_informational_version: '1.2.42-sha'
13
+ }
14
+ },
15
+ {
16
+ context: {
17
+ version: '1.2-pre1',
18
+ build_number: '42',
19
+ sha: 'sha'
20
+ },
21
+ expected: {
22
+ assembly_version: '1.2',
23
+ assembly_file_version: '1.2.42',
24
+ assembly_informational_version: '1.2-pre1.42-sha'
25
+ }
26
+ },
27
+ {
28
+ context: {
29
+ version: '1.2.3',
30
+ build_number: '42',
31
+ sha: 'sha' },
32
+ expected: {
33
+ assembly_version: '1.2.3',
34
+ assembly_file_version: '1.2.3.42',
35
+ assembly_informational_version: '1.2.3.42-sha'
36
+ }
37
+ },
38
+ {
39
+ context: {
40
+ version: '1.2.3-pre1',
41
+ build_number: '42',
42
+ sha: 'sha'
43
+ },
44
+ expected: {
45
+ assembly_version: '1.2.3',
46
+ assembly_file_version: '1.2.3.42',
47
+ assembly_informational_version: '1.2.3-pre1.42-sha'
48
+ }
49
+ },
50
+ {
51
+ context: {
52
+ version: '1.2',
53
+ build_number: '-pre',
54
+ sha: 'sha'
55
+ },
56
+ expected: {
57
+ assembly_version: '1.2',
58
+ assembly_file_version: '1.2',
59
+ assembly_informational_version: '1.2-pre-sha'
60
+ }
61
+ },
62
+ {
63
+ context: {
64
+ version: '1.2',
65
+ build_number: '-pre42',
66
+ sha: 'sha'
67
+ },
68
+ expected: {
69
+ assembly_version: '1.2',
70
+ assembly_file_version: '1.2.42',
71
+ assembly_informational_version: '1.2-pre42-sha'
72
+ }
73
+ },
74
+ {
75
+ context: {
76
+ version: '1.2',
77
+ build_number: nil,
78
+ sha: nil
79
+ },
80
+ expected: {
81
+ assembly_version: '1.2',
82
+ assembly_file_version: '1.2',
83
+ assembly_informational_version: '1.2'
84
+ }
85
+ },
86
+ {
87
+ context: {
88
+ version: '1.2',
89
+ build_number: '42',
90
+ sha: nil
91
+ },
92
+ expected: {
93
+ assembly_version: '1.2',
94
+ assembly_file_version: '1.2.42',
95
+ assembly_informational_version: '1.2.42'
96
+ }
97
+ },
98
+ {
99
+ context: {
100
+ version: '1.2'
101
+ },
102
+ expected: {
103
+ assembly_version: '1.2',
104
+ assembly_file_version: '1.2',
105
+ assembly_informational_version: '1.2'
106
+ }
107
+ },
108
+ {
109
+ context: {
110
+ version: nil,
111
+ build_number: nil,
112
+ sha: nil
113
+ },
114
+ expected: {
115
+ assembly_version: '0',
116
+ assembly_file_version: '0',
117
+ assembly_informational_version: '0'
118
+ }
119
+ },
120
+ {
121
+ context: { },
122
+ expected: {
123
+ assembly_version: '0',
124
+ assembly_file_version: '0',
125
+ assembly_informational_version: '0'
126
+ }
127
+ }
128
+ ].each do |spec|
129
+ context "version #{spec[:context][:version] || 'none'}, build number #{spec[:context][:build_number] || 'none'}, SHA #{spec[:context][:sha] || 'none'}" do
130
+ let(:parsed) { described_class.parse(spec[:context]) }
131
+
132
+ it "should generate assembly version #{spec[:expected][:assembly_version]}" do
133
+ expect(parsed[:assembly_version]).to eq(spec[:expected][:assembly_version])
134
+ end
135
+
136
+ it "should generate assembly file version #{spec[:expected][:assembly_file_version]}" do
137
+ expect(parsed[:assembly_file_version]).to eq(spec[:expected][:assembly_file_version])
138
+ end
139
+
140
+ it "should generate assembly informational version #{spec[:expected][:assembly_informational_version]}" do
141
+ expect(parsed[:assembly_informational_version]).to eq(spec[:expected][:assembly_informational_version])
142
+ end
143
+ end
144
+ end
145
+ end
@@ -11,7 +11,7 @@ describe Rake::Funnel::Tasks::QuickTemplate do
11
11
 
12
12
  describe 'defaults' do
13
13
  its(:name) { should == :template }
14
- its(:search_pattern) { should eq(%w(**/*.template)) }
14
+ its(:search_pattern) { should eq(%w(**/*.erb)) }
15
15
  its(:context) { should kind_of?(Binding) }
16
16
 
17
17
  describe 'target files are cleaned' do
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'simplecov'
2
2
  require 'coveralls'
3
3
  require 'codeclimate-test-reporter'
4
+ require 'bundler/setup'
4
5
 
5
6
  SimpleCov.start do
6
7
  if Coveralls.will_run?
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-funnel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5.pre
4
+ version: 0.0.6.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Groß
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-09 00:00:00.000000000 Z
11
+ date: 2015-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '10.4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '10.4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubyzip
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -73,20 +73,9 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
- - .gitignore
77
76
  - .rspec
78
- - .travis.yml
79
77
  - Gemfile
80
- - Guardfile
81
78
  - README.md
82
- - Rakefile
83
- - build.cmd
84
- - bundle.cmd
85
- - config/.gitignore
86
- - config/.local.yaml.example
87
- - config/default.yaml
88
- - config/dev.yaml
89
- - config/production.yaml
90
79
  - lib/rake/funnel.rb
91
80
  - lib/rake/funnel/ambiguous_file_error.rb
92
81
  - lib/rake/funnel/execution_error.rb
@@ -112,6 +101,7 @@ files:
112
101
  - lib/rake/funnel/support/mono.rb
113
102
  - lib/rake/funnel/support/patch.rb
114
103
  - lib/rake/funnel/support/template_engine.rb
104
+ - lib/rake/funnel/support/version.rb
115
105
  - lib/rake/funnel/support/which.rb
116
106
  - lib/rake/funnel/tasks/bin_path.rb
117
107
  - lib/rake/funnel/tasks/copy.rb
@@ -152,6 +142,7 @@ files:
152
142
  - spec/rake/funnel/support/mono_spec.rb
153
143
  - spec/rake/funnel/support/patch_spec.rb
154
144
  - spec/rake/funnel/support/template_engine_spec.rb
145
+ - spec/rake/funnel/support/version_spec.rb
155
146
  - spec/rake/funnel/support/which_spec.rb
156
147
  - spec/rake/funnel/tasks/bin_path_spec.rb
157
148
  - spec/rake/funnel/tasks/copy_spec.rb
@@ -176,12 +167,6 @@ files:
176
167
  - spec/rake/funnel/tasks/timing_support/report_spec.rb
177
168
  - spec/rake/funnel/tasks/zip_spec.rb
178
169
  - spec/spec_helper.rb
179
- - tools/MSDeploy/Microsoft.Web.Delegation.dll
180
- - tools/MSDeploy/Microsoft.Web.Deployment.Tracing.dll
181
- - tools/MSDeploy/Microsoft.Web.Deployment.dll
182
- - tools/MSDeploy/en/msdeploy.resources.dll
183
- - tools/MSDeploy/msdeploy.exe
184
- - tools/MSDeploy/msdeploy.exe.config
185
170
  homepage: http://grossweber.com
186
171
  licenses:
187
172
  - BSD
@@ -227,6 +212,7 @@ test_files:
227
212
  - spec/rake/funnel/support/mono_spec.rb
228
213
  - spec/rake/funnel/support/patch_spec.rb
229
214
  - spec/rake/funnel/support/template_engine_spec.rb
215
+ - spec/rake/funnel/support/version_spec.rb
230
216
  - spec/rake/funnel/support/which_spec.rb
231
217
  - spec/rake/funnel/tasks/bin_path_spec.rb
232
218
  - spec/rake/funnel/tasks/copy_spec.rb
data/.gitignore DELETED
@@ -1,7 +0,0 @@
1
- .idea/
2
- build/
3
- deploy/
4
- tmp/
5
-
6
- Gemfile.lock
7
- cacert.pem
data/.travis.yml DELETED
@@ -1,21 +0,0 @@
1
- language: ruby
2
- bundler_args: --without development
3
- script: bundle exec rspec --tag ~platform:win32
4
- rvm:
5
- - 2.0.0
6
- - 2.1.0
7
- - 2.1.1
8
- - 2.1.2
9
- - 2.1.3
10
- - 2.1.4
11
- - 2.1.5
12
- - 2.2.0
13
- - ruby-head
14
- notifications:
15
- email:
16
- recipients:
17
- - agross@therightstuff.de
18
- on_success: never
19
- addons:
20
- code_climate:
21
- repo_token: d8b15ab15f45f543f1ddd59b4224f83e6fcc9576f2fa4ba2817ae20d445f5f4f
data/Guardfile DELETED
@@ -1,24 +0,0 @@
1
- case RbConfig::CONFIG['target_os']
2
- when /windows|bccwin|cygwin|djgpp|mingw|mswin|wince/i
3
- notification :gntp, :host => 'localhost'
4
- when /linux/i
5
- notification :notifysend
6
- when /mac|darwin/i
7
- notification :growl
8
- end
9
-
10
- guard 'bundler' do
11
- watch('Gemfile')
12
- watch(/^.+\.gemspec/)
13
- end
14
-
15
- guard 'rspec',
16
- :all_on_start => true,
17
- :all_after_pass => true,
18
- :notification => true,
19
- :cmd => 'bundle exec rspec' do
20
- watch('.rspec') { 'spec' }
21
- watch(%r{^spec/.+_spec\.rb$})
22
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
23
- watch('spec/spec_helper.rb') { 'spec' }
24
- end
data/Rakefile DELETED
@@ -1,77 +0,0 @@
1
- require 'rake/funnel'
2
- require 'rubygems/package_task'
3
- require 'rspec/core/rake_task'
4
-
5
- include Rake::Funnel
6
-
7
- Tasks::Timing.new
8
- Tasks::BinPath.new
9
- Integration::SyncOutput.new
10
- Integration::ProgressReport.new
11
- Integration::TeamCity::ProgressReport.new
12
-
13
- namespace :env do
14
- Tasks::Environments.new do |t|
15
- t.default_env = :dev
16
- end
17
- end
18
-
19
- task default: :spec
20
-
21
- RSpec::Core::RakeTask.new(:spec) do |t|
22
- t.rspec_opts = '--order random'
23
- if Integration::TeamCity.running?
24
- t.rspec_opts += ' --format progress --format html --out build/spec/rspec.html'
25
- end
26
- t.rspec_opts += ' --tag ~platform:win32' unless Rake::Win32.windows?
27
- end
28
-
29
- spec = Gem::Specification.load('rake-funnel.gemspec')
30
- gem = Gem::PackageTask.new(spec) do |t|
31
- t.package_dir = 'deploy'
32
-
33
- task :gem do
34
- rm_rf t.package_dir_path
35
- end
36
- end
37
-
38
- task gem: :spec do
39
- Integration::TeamCity::ServiceMessages.build_number(spec.version.to_s)
40
- end
41
-
42
- Tasks::MSDeploy.new :push => [:bin_path, :gem] do |t|
43
- gem = File.join(File.expand_path(gem.package_dir), gem.gem_spec.file_name)
44
-
45
- t.log_file = 'deploy/msdeploy.log'
46
- t.args = {
47
- verb: :sync,
48
- pre_sync: {
49
- run_command: "mkdir #{configatron.deployment.remote_dir}\\gems",
50
- wait_interval: 60 * 1000
51
- },
52
- source: {
53
- file_path: gem
54
- },
55
- dest: {
56
- computer_name: configatron.deployment.computer_name,
57
- username: configatron.deployment.username,
58
- password: configatron.deployment.password,
59
- file_path: File.join(configatron.deployment.remote_dir, 'gems', File.basename(gem))
60
- },
61
- skip: [{ skip_action: :delete }],
62
- post_sync_on_success: {
63
- run_command: "gem generate_index -V --directory=#{configatron.deployment.remote_dir} & icacls #{configatron.deployment.remote_dir} /reset /t /c /q",
64
- wait_interval: 60 * 1000
65
- },
66
- use_check_sum: nil,
67
- allow_untrusted: nil
68
- }
69
- end
70
-
71
- task :fail do
72
- raise 'this build is expected to fail'
73
- end
74
-
75
- task :long_running do
76
- sleep(30)
77
- end
data/build.cmd DELETED
@@ -1,30 +0,0 @@
1
- @echo off
2
- setlocal
3
-
4
- set LANG=en_US.UTF-8
5
-
6
- :build
7
- cls
8
-
9
- call bundle.cmd check
10
- if errorlevel 1 call bundle.cmd install
11
- if errorlevel 1 goto wait
12
-
13
- cls
14
-
15
- call bundle.cmd exec rake %*
16
-
17
- :wait
18
- rem Bail if we're running a TeamCity build.
19
- if defined TEAMCITY_PROJECT_NAME goto quit
20
-
21
- rem Loop the build script.
22
- set choice=nothing
23
- echo (Q)uit, (Enter) runs the build again
24
- set /P choice=
25
- if /i "%choice%"=="Q" goto quit
26
-
27
- goto build
28
-
29
- :quit
30
- exit /b %errorlevel%
data/bundle.cmd DELETED
@@ -1,26 +0,0 @@
1
- @echo off
2
- setlocal
3
-
4
- set LANG=en_US.UTF-8
5
- set PATH=%~dp0tools\Git\bin;%path%
6
- set DOWNLOAD_CA_BUNDLE="require 'net/http'; Net::HTTP.start('curl.haxx.se') { |http| resp = http.get('/ca/cacert.pem'); abort 'Error downloading CA bundle: ' + resp.code unless resp.code == '200'; open('cacert.pem', 'wb') { |file| file.write(resp.body) }; }"
7
-
8
- if not exist cacert.pem (
9
- echo Downloading latest CA bundle...
10
- ruby -e %DOWNLOAD_CA_BUNDLE%
11
-
12
- if errorlevel 1 (
13
- exit /b %errorlevel%
14
- )
15
- )
16
-
17
- set SSL_CERT_FILE=%cd%\cacert.pem
18
-
19
- call gem.bat which bundler > NUL 2>&1
20
- if errorlevel 1 (
21
- echo Installing bundler...
22
- call gem.bat install bundler --no-ri --no-rdoc
23
- )
24
-
25
- call bundle.bat %*
26
- exit /b %errorlevel%
data/config/.gitignore DELETED
@@ -1 +0,0 @@
1
- local.yaml
@@ -1,9 +0,0 @@
1
- # Copy this file to local.yaml and put configuration values to temporarily
2
- # override here.
3
- #
4
- # Please do not add local.yaml to source control.
5
- #
6
- # Example:
7
-
8
- deployment:
9
- computer_name: somewhere-else
data/config/default.yaml DELETED
@@ -1,5 +0,0 @@
1
- deployment:
2
- computer_name: localhost
3
- username: <%= ENV['DEPLOY_USER'] || ENV['COMPUTERNAME'] + '\Administrator' %>
4
- password: <%= ENV['DEPLOY_PASSWORD'] %>
5
- remote_dir: <%= (ENV['TEMP'] + '/_gems').gsub(%r|/|, '\\') %>
data/config/dev.yaml DELETED
File without changes
@@ -1,3 +0,0 @@
1
- deployment:
2
- computer_name: gems.grossweber.com
3
- remote_dir: <%= 'C:/GROSSWEBER/gems'.gsub(%r|/|, '\\') %>
Binary file
@@ -1,6 +0,0 @@
1
- <configuration>
2
- <startup useLegacyV2RuntimeActivationPolicy="true" >
3
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
4
- <supportedRuntime version="v2.0.50727" />
5
- </startup>
6
- </configuration>