corundum 0.0.13 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,10 +1,12 @@
1
1
  ## Corundum
2
2
  ### Foolproof rubygems
3
3
 
4
- The goal of Corundum is to be able to run 'rake release' and know that
5
- you're publishing something you won't be embarrassed by. Any packaging is a
6
- tricky problem with lots of details. Fortunately, those details can mostly
7
- be automated.
4
+ With Corudum added as a developement dependancy to your gemspec, and configured
5
+ (quickly) in your Rakefile you can do:
6
+
7
+ rake release
8
+
9
+ and know that you're publishing something you won't be embarrassed by.
8
10
 
9
11
  ### (Yet Another Rubygems packager)
10
12
 
@@ -13,8 +15,26 @@ to generate code - it doesn't exist to build gems for you if you don't know
13
15
  how. For that, check out Jeweler, and come back once you've understood what a
14
16
  .gemspec is and how it works.
15
17
 
18
+ Really, writing a gem is pretty easy - you can do it in a gist if you want. And releasing Gems isn't all that hard either - rubygems has good tools to package up gems and push them to gem servers. So why Corundum?
19
+
20
+ Because releasing a gem that will actually help the Ruby community at large is
21
+ actually quite difficult. There are lot of fiddly details to get wrong, and
22
+ even experienced devs can be doofuses sometimes. Corundum serves as a
23
+ collection of safeguards against common errors in releasing gems - certainly
24
+ every one that's happened to me.
25
+
16
26
  ### Using Corundum
17
27
 
28
+ In your coolgem.gemspec:
29
+
30
+ spec.add_development_dependency "corundum"
31
+
32
+ In you Gemfile:
33
+
34
+ gemspec
35
+
36
+ (But you were doing that anyway, right?)
37
+
18
38
  Check out this Rakefile:
19
39
 
20
40
  require 'corundum/tasklibs'
@@ -43,8 +63,8 @@ Check out this Rakefile:
43
63
  end
44
64
  end
45
65
 
46
- That's the whole thing. 'rake release' will push the current version of the
47
- gem, but only if we can go through a complete a correct QA process.
66
+ That's the whole thing. Now 'rake release' will push the current version of
67
+ the gem, but only if we can go through a complete a correct QA process.
48
68
  (Incidentally, that's the Rakefile for Corundum itself.)
49
69
 
50
70
  The other goal with Corundum is to present all of these tools as
@@ -54,3 +74,5 @@ to do
54
74
  task :default => :release
55
75
 
56
76
  Then 'rake' will do your releases.
77
+
78
+ Digging in, the first thing to look at is {Corundum::Toolkit}
data/lib/corundum.rb CHANGED
@@ -1,117 +1,6 @@
1
- require 'corundum/tasklib'
2
- require 'corundum/configuration_store'
3
-
4
- #require 'rubygems'
5
- #require 'rubygems/installer'
1
+ require 'corundum/configuration-store'
2
+ require 'corundum/core'
3
+ require 'mattock/tasklib'
6
4
 
7
5
  module Corundum
8
- extend Rake::DSL
9
-
10
- class Toolkit < TaskLib
11
- settings(
12
- :gemspec => nil,
13
- :gemspec_path => nil,
14
- :corundum_dir => "corundum",
15
- :finished_dir => nil,
16
- :package_dir => "pkg",
17
- :doc_dir => "rubydoc",
18
- :browser => Corundum.user_preferences["browser"],
19
- :finished_files => nested.nil_fields(:build, :qa, :package, :release, :press),
20
- :files => nested.nil_fields(:code, :test, :docs),
21
- :rubyforge => nested.nil_fields(:group_id, :package_id, :release_name, :home_page, :project_page),
22
- :email => nested(
23
- :servers => [ nested({ :server => "ruby-lang.org", :helo => "gmail.com" }) ],
24
- :announce_to_email => "ruby-talk@ruby-lang.org"
25
- ),
26
- :file_lists => nested(:code => FileList['lib/**/*.rb'],
27
- :test => FileList['test/**/*.rb','spec/**/*.rb','features/**/*.rb'],
28
- :docs => FileList['doc/**/*.rb'],
29
- :project => FileList['Rakefile'],
30
- :all => nil)
31
- )
32
-
33
- def load_gemspec
34
- @gemspec_path ||= guess_gemspec
35
- @gemspec ||= Gem::Specification::load(gemspec_path)
36
- return gemspec
37
- end
38
-
39
- def resolve_configuration
40
- load_gemspec
41
-
42
- self.finished_dir ||= File::join(corundum_dir, "finished")
43
- @finished_files.build ||= File::join( package_dir, "#{gemspec.full_name}.gem")
44
-
45
- @finished_files.qa ||= File::join( finished_dir, "qa_#{gemspec.version}")
46
- @finished_files.release ||= File::join( finished_dir, "release_#{gemspec.version}")
47
- @finished_files.press ||= File::join( finished_dir, "press_#{gemspec.version}")
48
-
49
- @files.code ||= gemspec.files.grep(%r{^lib/})
50
- @files.test ||= gemspec.files.grep(%r{^spec/})
51
- @files.docs ||= gemspec.files.grep(%r{^doc/})
52
-
53
- @file_lists.project << gemspec_path
54
- @file_lists.all ||=
55
- file_lists.code +
56
- file_lists.test +
57
- file_lists.docs
58
-
59
- @rubyforge.group_id ||= gemspec.rubyforge_project
60
- @rubyforge.package_id ||= gemspec.name.downcase
61
- @rubyforge.release_name ||= gemspec.full_name
62
- @rubyforge.home_page ||= gemspec.homepage
63
- @rubyforge.project_page ||= "http://rubyforge.org/project/#{gemspec.rubyforge_project}/"
64
- end
65
-
66
- def guess_gemspec
67
- speclist = Dir[File.expand_path("*.gemspec", Rake::original_dir)]
68
- if speclist.length == 0
69
- puts "Found no *.gemspec files"
70
- exit 1
71
- elsif speclist.length > 1
72
- puts "Found too many *.gemspec files: #{speclist.inspect}"
73
- exit 1
74
- end
75
- speclist[0]
76
- end
77
-
78
- def define
79
- in_namespace do
80
- directory finished_dir
81
-
82
- desc "Run preflight checks"
83
- task :preflight
84
-
85
- desc "Run quality assurance tasks"
86
- task :qa => [:preflight, finished_files.qa]
87
- file finished_files.qa =>
88
- [finished_dir] + file_lists.project + file_lists.code + file_lists.test do |task|
89
- Rake::Task[:qa].invoke #because I don't want this to be needed if it's not
90
- touch task.name
91
- end
92
-
93
- desc "Build the package"
94
- task :build => [finished_files.qa, :preflight, finished_files.build]
95
- file finished_files.build =>
96
- [finished_dir] + file_lists.code + file_lists.project do |task|
97
- Rake::Task[:build].invoke
98
- touch task.name
99
- end
100
-
101
- desc "Push package out to the world"
102
- task :release => [finished_files.build, :preflight, finished_files.release]
103
- file finished_files.release => [finished_dir] do |task|
104
- Rake::Task[:release].invoke
105
- touch task.name
106
- end
107
-
108
- desc "Announce publication"
109
- task :press => [finished_files.release, finished_files.press]
110
- file finished_files.press => [finished_dir] do |task|
111
- Rake::Task[:press].invoke
112
- touch task.name
113
- end
114
- end
115
- end
116
- end
117
6
  end
@@ -0,0 +1,16 @@
1
+ require 'mattock/configuration-store'
2
+ module Corundum
3
+ def self.configuration_store
4
+ @configuration_store ||=
5
+ Mattock::ConfigurationStore.new("corundum",
6
+ File::expand_path("../default_configuration", __FILE__))
7
+ end
8
+
9
+ def self.register_project(rakefile)
10
+ configuration_store.register_search_path(rakefile)
11
+ end
12
+
13
+ def self.user_preferences
14
+ configuration_store.user_preferences
15
+ end
16
+ end
@@ -0,0 +1,128 @@
1
+ require 'corundum'
2
+ require 'mattock/tasklib'
3
+
4
+ module Corundum
5
+ #This is the core tasklib for Corundum. It defines a series of lifecycle
6
+ #steps that define the release process. The real work is done by other
7
+ #Tasklibs that hook into the lifecycle.
8
+ #
9
+ #The lifecycle steps (as implied by the Rakefile definition) are:
10
+ #
11
+ #[ preflight ] simple tests before we do anything at all
12
+ #[ qa ]
13
+ # quality assurance - make sure everything is acceptable
14
+ # before we build the gem
15
+ # [build] construct the actual gem
16
+ # [release] push the gem out to the world
17
+ # [press] send out notifications that the gem has been published
18
+ class Core < Mattock::TaskLib
19
+ settings(
20
+ :gemspec => nil,
21
+ :gemspec_path => nil,
22
+ :corundum_dir => "corundum",
23
+ :finished_dir => nil,
24
+ :package_dir => "pkg",
25
+ :doc_dir => "rubydoc",
26
+ :browser => Corundum.user_preferences["browser"],
27
+ :finished_files => nested.nil_fields(:build, :qa, :package, :release, :press),
28
+ :files => nested.nil_fields(:code, :test, :docs),
29
+ :rubyforge => nested.nil_fields(:group_id, :package_id, :release_name, :home_page, :project_page),
30
+ :email => nested(
31
+ :servers => [ nested({ :server => "ruby-lang.org", :helo => "gmail.com" }) ],
32
+ :announce_to_email => "ruby-talk@ruby-lang.org"
33
+ ),
34
+ :file_lists => nested(:code => FileList['lib/**/*.rb'],
35
+ :test => FileList['test/**/*.rb','spec/**/*.rb','features/**/*.rb'],
36
+ :docs => FileList['doc/**/*.rb'],
37
+ :project => FileList['Rakefile'],
38
+ :all => nil)
39
+ )
40
+
41
+ def load_gemspec
42
+ @gemspec_path ||= guess_gemspec
43
+ @gemspec ||= Gem::Specification::load(gemspec_path)
44
+ return gemspec
45
+ end
46
+
47
+ def resolve_configuration
48
+ load_gemspec
49
+
50
+ self.finished_dir ||= File::join(corundum_dir, "finished")
51
+ @finished_files.build ||= File::join( package_dir, "#{gemspec.full_name}.gem")
52
+
53
+ @finished_files.qa ||= File::join( finished_dir, "qa_#{gemspec.version}")
54
+ @finished_files.release ||= File::join( finished_dir, "release_#{gemspec.version}")
55
+ @finished_files.press ||= File::join( finished_dir, "press_#{gemspec.version}")
56
+
57
+ @files.code ||= gemspec.files.grep(%r{^lib/})
58
+ @files.test ||= gemspec.files.grep(%r{^spec/})
59
+ @files.docs ||= gemspec.files.grep(%r{^doc/})
60
+
61
+ @file_lists.project << gemspec_path
62
+ @file_lists.all ||=
63
+ file_lists.code +
64
+ file_lists.test +
65
+ file_lists.docs
66
+
67
+ @rubyforge.group_id ||= gemspec.rubyforge_project
68
+ @rubyforge.package_id ||= gemspec.name.downcase
69
+ @rubyforge.release_name ||= gemspec.full_name
70
+ @rubyforge.home_page ||= gemspec.homepage
71
+ @rubyforge.project_page ||= "http://rubyforge.org/project/#{gemspec.rubyforge_project}/"
72
+ end
73
+
74
+ def guess_gemspec
75
+ speclist = Dir[File.expand_path("*.gemspec", Rake::original_dir)]
76
+ if speclist.length == 0
77
+ puts "Found no *.gemspec files"
78
+ exit 1
79
+ elsif speclist.length > 1
80
+ puts "Found too many *.gemspec files: #{speclist.inspect}"
81
+ exit 1
82
+ end
83
+ speclist[0]
84
+ end
85
+
86
+ def define
87
+ in_namespace do
88
+ directory finished_dir
89
+
90
+ desc "Run preflight checks"
91
+ task :preflight
92
+
93
+ desc "Run quality assurance tasks"
94
+ task :qa => [:preflight, finished_files.qa]
95
+ file finished_files.qa =>
96
+ [finished_dir] + file_lists.project + file_lists.code + file_lists.test do |task|
97
+ Rake::Task[:qa].invoke #because I don't want this to be needed if it's not
98
+ touch task.name
99
+ end
100
+
101
+ desc "Build the package"
102
+ task :build => [finished_files.qa, :preflight, finished_files.build]
103
+ file finished_files.build =>
104
+ [finished_dir] + file_lists.code + file_lists.project do |task|
105
+ Rake::Task[:build].invoke
106
+ touch task.name
107
+ end
108
+
109
+ desc "Push package out to the world"
110
+ task :release => [finished_files.build, :preflight, finished_files.release]
111
+ file finished_files.release => [finished_dir] do |task|
112
+ Rake::Task[:release].invoke
113
+ touch task.name
114
+ end
115
+
116
+ desc "Announce publication"
117
+ task :press => [finished_files.release, finished_files.press]
118
+ file finished_files.press => [finished_dir] do |task|
119
+ Rake::Task[:press].invoke
120
+ touch task.name
121
+ end
122
+ end
123
+ end
124
+ end
125
+
126
+ #deprecated name for Core
127
+ Toolkit = Core
128
+ end
@@ -1,7 +1,7 @@
1
- require 'corundum/tasklib'
1
+ require 'mattock/tasklib'
2
2
 
3
3
  module Corundum
4
- class DocumentationTask < TaskLib
4
+ class DocumentationTask < Mattock::TaskLib
5
5
  setting :title
6
6
  setting :browser
7
7
  setting :gemspec
@@ -14,6 +14,14 @@ module Corundum
14
14
  :files => nested(:code => [], :docs => []),
15
15
  :extra_files => [] )
16
16
 
17
+ settings(:server_options => [],
18
+ :server => nested(
19
+ :port => 8888,
20
+ :docroot => "/tmp/yard",
21
+ :plugins => [])
22
+ )
23
+
24
+
17
25
  def document_inputs
18
26
  FileList["README*"] + files.code + files.docs + extra_files
19
27
  end
@@ -34,6 +42,14 @@ module Corundum
34
42
  end
35
43
  super
36
44
  self.options += [ "--output-dir", target_dir]
45
+
46
+
47
+ self.server_options += ["--reload"]
48
+ self.server_options += ["--port", server.port.to_s]
49
+ self.server_options += ["--docroot", server.docroot]
50
+ self.server.plugins.each do |plugin|
51
+ self.server_options += ["--plugin", plugin]
52
+ end
37
53
  end
38
54
 
39
55
  def define
@@ -41,6 +57,11 @@ module Corundum
41
57
  file entry_point => document_inputs do
42
58
  YARD::CLI::Yardoc.run( *(options) )
43
59
  end
60
+
61
+ desc "Start a live YARD server for editing inline docs"
62
+ task :live do
63
+ YARD::CLI::Server.run( *(server_options) )
64
+ end
44
65
  end
45
66
 
46
67
  super
@@ -1,7 +1,7 @@
1
- require 'corundum/tasklib'
1
+ require 'mattock/tasklib'
2
2
 
3
3
  module Corundum
4
- class Email < TaskLib
4
+ class Email < Mattock::TaskLib
5
5
  default_namespace :email
6
6
 
7
7
  setting(:rubyforge)
@@ -1,7 +1,7 @@
1
- require 'corundum/tasklib'
1
+ require 'mattock/tasklib'
2
2
 
3
3
  module Corundum
4
- class GemBuilding < TaskLib
4
+ class GemBuilding < Mattock::TaskLib
5
5
  setting(:gemspec)
6
6
  setting(:qa_finished_file)
7
7
  setting(:package_dir, "pkg")
@@ -1,7 +1,7 @@
1
- require 'corundum/tasklib'
1
+ require 'mattock/tasklib'
2
2
 
3
3
  module Corundum
4
- class GemCutter < TaskLib
4
+ class GemCutter < Mattock::TaskLib
5
5
  default_namespace :gemcutter
6
6
 
7
7
  setting(:gem_path, nil)
@@ -1,7 +1,7 @@
1
- require 'corundum/tasklib'
1
+ require 'mattock/tasklib'
2
2
 
3
3
  module Corundum
4
- class GemspecSanity < TaskLib
4
+ class GemspecSanity < Mattock::TaskLib
5
5
  default_namespace :gemspec_sanity
6
6
 
7
7
  setting(:gemspec)
@@ -1,4 +1,4 @@
1
- require 'corundum/tasklib'
1
+ require 'mattock/tasklib'
2
2
  require 'mattock/task'
3
3
 
4
4
  module Corundum
@@ -37,7 +37,7 @@ module Corundum
37
37
  end
38
38
  end
39
39
 
40
- class GithubPages < TaskLib
40
+ class GithubPages < Mattock::TaskLib
41
41
  default_namespace :publish_docs
42
42
 
43
43
  setting(:target_dir, "gh-pages")
@@ -102,7 +102,10 @@ module Corundum
102
102
  chain.add Mattock::CommandLine.new("grep", "-q", "'#{branch}'")
103
103
  end
104
104
  t.command = Mattock::PrereqChain.new do |chain|
105
- chain.add git_command("checkout", "-t", branch)
105
+ chain.add git_command("checkout", "-b", branch)
106
+ chain.add git_command("branch", "--set-upstream", branch, "origin/" + branch)
107
+ chain.add Mattock::CommandLine.new("rm", "-f", '.git/index')
108
+ chain.add git_command("clean", "-fdx")
106
109
  end
107
110
  end
108
111
 
@@ -118,19 +121,22 @@ module Corundum
118
121
 
119
122
  task :pull => [repo_dir, :on_branch] do
120
123
  FileUtils.cd target_dir do
121
- git("pull")
124
+ git("pull", "-X", "ours")
122
125
  end
123
126
  end
124
127
 
125
128
  task :cleanup_repo => repo_dir do
126
129
  Mattock::CommandLine.new("rm", "-f", File::join(repo_dir, "hooks", "*")).must_succeed!
130
+ File::open(File::join(repo_dir, ".gitignore"), "w") do |file|
131
+ file.write ".sw?"
132
+ end
127
133
  end
128
134
 
129
135
  file target_dir => [:on_branch, :cleanup_repo]
130
136
 
131
- task :pre_publish => [repo_dir, target_dir, :pull]
137
+ task :pre_publish => [repo_dir, target_dir]
132
138
 
133
- task :clobber_target => :on_branch do
139
+ task :clobber_target => [:on_branch, :pull] do
134
140
  Mattock::CommandLine.new(*%w{rm -rf}) do |cmd|
135
141
  cmd.options << target_dir + "/*"
136
142
  end.must_succeed!
@@ -0,0 +1,58 @@
1
+ require 'mattock/tasklib'
2
+
3
+ module Corundum
4
+ class QuestionableContent < Mattock::Tasklib
5
+ default_namespace :content
6
+ setting :type, :debugging
7
+ settings :words => ["p", "debugger"], :limit => 0 #ok
8
+ setting :comments, false
9
+ setting :accept_token, /#ok/
10
+ setting :files
11
+
12
+ def default_configuration(core)
13
+ self.files = core.file_lists.code
14
+ end
15
+
16
+ def define
17
+ in_namespace do
18
+ task type do
19
+ word_regexp = %r{#{words.map{|word| "\\b#{word}\\b"}.join("|")}}
20
+ line_regexp = comments ? %r{\A\s*#.*#{word_regexp}} : word_regexp
21
+ unless accept_token.nil?
22
+ line_regexp = /#{line_regexp}(?:.(?!#{accept_token}))*\s*\Z/
23
+
24
+ end
25
+
26
+ found_words = Hash.new do |h,k|
27
+ h[k] = 0
28
+ end
29
+
30
+ files_with_words = Hash.new do |h,k|
31
+ h[k] = {}
32
+ end
33
+
34
+
35
+ files.each do |filename|
36
+ File::open(filename) do |file|
37
+ file.grep(line_regexp) do |line|
38
+ line.scan(word_regexp) do |word|
39
+ files_with_words[filename][word] = true
40
+ found_words[word] += 1
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+ total = found_words.values.inject{|acc, num| acc + num} || 0
47
+
48
+ if total > limit
49
+ require 'pp'
50
+ report = PP::pp([files_with_words, found_words], "")
51
+ fail "Exceeded limits on words: #{words.join(",")}. Full report:\n#{report}"
52
+ end
53
+ end
54
+ end
55
+ task :qa => in_namespace(type)
56
+ end
57
+ end
58
+ end
@@ -1,10 +1,10 @@
1
- require 'corundum/tasklib'
1
+ require 'mattock/tasklib'
2
2
 
3
3
  #Big XXX: this totally isn't done. It's some notes against ever wanting to
4
4
  #publish announcements to rubyforge ever again
5
5
 
6
6
  module Corundum
7
- class Publishing < TaskLib
7
+ class Publishing < Mattock::TaskLib
8
8
  default_namespace :rubyforge
9
9
 
10
10
  setting(:rubyforge, nested(:package_id => nil, :group_id => nil, :release_name => nil))
@@ -9,3 +9,4 @@ require 'corundum/version_control/monotone'
9
9
  require 'corundum/version_control/git'
10
10
  require 'corundum/documentation'
11
11
  require 'corundum/github-pages'
12
+ require 'corundum/questionable-content'
@@ -1,7 +1,7 @@
1
- require 'corundum/tasklib'
1
+ require 'mattock/tasklib'
2
2
 
3
3
  module Corundum
4
- class VersionControl < TaskLib
4
+ class VersionControl < Mattock::TaskLib
5
5
  default_namespace :version_control
6
6
 
7
7
  required_fields(:gemspec, :build_finished_file, :gemspec_files, :tag)
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: corundum
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.13
5
+ version: 0.0.15
6
6
  platform: ruby
7
7
  authors:
8
8
  - Judson Lester
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-02-06 00:00:00 Z
13
+ date: 2012-03-12 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: corundum
@@ -92,6 +92,10 @@ dependencies:
92
92
  requirements:
93
93
  - - ">="
94
94
  - !ruby/object:Gem::Version
95
+ segments:
96
+ - 0
97
+ - 5
98
+ - 4
95
99
  version: 0.5.4
96
100
  type: :runtime
97
101
  prerelease: false
@@ -105,9 +109,9 @@ dependencies:
105
109
  - !ruby/object:Gem::Version
106
110
  segments:
107
111
  - 1
112
+ - 1
108
113
  - 0
109
- - 0
110
- version: 1.0.0
114
+ version: 1.1.0
111
115
  type: :runtime
112
116
  prerelease: false
113
117
  version_requirements: *id008
@@ -129,7 +133,7 @@ dependencies:
129
133
  requirements:
130
134
  - - ">="
131
135
  - !ruby/object:Gem::Version
132
- version: 0.1.2
136
+ version: 0.2.10
133
137
  type: :runtime
134
138
  prerelease: false
135
139
  version_requirements: *id010
@@ -193,6 +197,9 @@ extra_rdoc_files:
193
197
  - doc/coverage/assets/0.5.3/loading.gif
194
198
  - doc/coverage/assets/0.5.3/jquery-1.6.2.min.js
195
199
  files:
200
+ - lib/corundum.rb
201
+ - lib/corundum/configuration-store.rb
202
+ - lib/corundum/core.rb
196
203
  - lib/corundum/browser-task.rb
197
204
  - lib/corundum/github-pages.rb
198
205
  - lib/corundum/rspec.rb
@@ -200,7 +207,6 @@ files:
200
207
  - lib/corundum/email.rb
201
208
  - lib/corundum/gemspec_sanity.rb
202
209
  - lib/corundum/gemcutter.rb
203
- - lib/corundum/tasklib.rb
204
210
  - lib/corundum/documentation.rb
205
211
  - lib/corundum/documentation-task.rb
206
212
  - lib/corundum/documentation/yardoc.rb
@@ -209,13 +215,12 @@ files:
209
215
  - lib/corundum/tasklibs.rb
210
216
  - lib/corundum/simplecov.rb
211
217
  - lib/corundum/rubyforge.rb
218
+ - lib/corundum/questionable-content.rb
212
219
  - lib/corundum/version_control.rb
213
220
  - lib/corundum/version_control/monotone.rb
214
221
  - lib/corundum/version_control/git.rb
215
- - lib/corundum/configuration_store.rb
216
222
  - lib/corundum/default_configuration/preferences.yaml
217
223
  - lib/corundum/default_configuration/templates/doc_assembly/index.html.erb
218
- - lib/corundum.rb
219
224
  - README.md
220
225
  - spec/smoking_spec.rb
221
226
  - spec_help/spec_helper.rb
@@ -279,7 +284,7 @@ licenses:
279
284
  post_install_message: Another tidy package brought to you by Judson
280
285
  rdoc_options:
281
286
  - --title
282
- - corundum-0.0.13 RDoc
287
+ - corundum-0.0.15 RDoc
283
288
  require_paths:
284
289
  - lib/
285
290
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -287,7 +292,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
287
292
  requirements:
288
293
  - - ">="
289
294
  - !ruby/object:Gem::Version
290
- hash: 908238461
295
+ hash: 522495789
291
296
  segments:
292
297
  - 0
293
298
  version: "0"
@@ -1,38 +0,0 @@
1
- require 'valise'
2
-
3
- module Corundum
4
- class ConfigurationStore
5
- def initialize
6
- @valise = Valise::Set.define do
7
- rw "~/.corundum"
8
- rw "/usr/share/corundum"
9
- rw "/etc/corundum"
10
- ro from_here("default_configuration")
11
-
12
- handle "preferences.yaml", :yaml, :hash_merge
13
- end
14
-
15
- @loaded ||= Hash.new{|h,k| h[k] = @valise.find(k).contents}
16
- end
17
-
18
- attr_reader :loaded, :valise
19
-
20
- def register_search_path(from_file)
21
- directory = File::expand_path("../.corundum", from_file)
22
- @valise.prepend_search_root(Valise::SearchRoot.new(directory))
23
- loaded.clear
24
- end
25
- end
26
-
27
- def self.configuration_store
28
- @configuration_store ||= ConfigurationStore.new
29
- end
30
-
31
- def self.register_project(rakefile)
32
- configuration_store.register_search_path(rakefile)
33
- end
34
-
35
- def self.user_preferences
36
- configuration_store.loaded["preferences.yaml"]
37
- end
38
- end
@@ -1,7 +0,0 @@
1
- require 'mattock/tasklib'
2
-
3
- module Corundum
4
- #TODO Add functionality or refactor away
5
- class TaskLib < Mattock::TaskLib
6
- end
7
- end