ore-core 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gemtest +0 -0
- data/ChangeLog.md +23 -1
- data/GemspecYML.md +8 -0
- data/LICENSE.txt +1 -2
- data/README.md +22 -12
- data/Rakefile +1 -0
- data/gemspec.yml +1 -1
- data/lib/ore/dependency.rb +2 -2
- data/lib/ore/inferences.rb +215 -0
- data/lib/ore/naming.rb +5 -3
- data/lib/ore/project.rb +35 -63
- data/lib/ore/settings.rb +3 -9
- metadata +6 -21
- data/lib/ore/defaults.rb +0 -140
data/.gemtest
ADDED
File without changes
|
data/ChangeLog.md
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
### 0.1.2 / 2011-02-08
|
2
|
+
|
3
|
+
* Opted into [gem-testers.org](http://gem-testers.org/).
|
4
|
+
* Added `rb` to the list of words to ignore in project names.
|
5
|
+
* Added common project acronyms to {Ore::Naming}.
|
6
|
+
* Added more common project name / namespace mappings:
|
7
|
+
* `rubygems` -> `Gem`
|
8
|
+
* `ar` -> `ActiveRecord`
|
9
|
+
* `dm` -> `DataMapper`
|
10
|
+
* `js` -> `JavaScript`
|
11
|
+
* `msgpack` -> `MsgPack`
|
12
|
+
* `github` -> `GitHub`
|
13
|
+
* `rdoc` -> `RDoc`
|
14
|
+
* Renamed `Ore::Defaults` to {Ore::Inferences}.
|
15
|
+
* Explicitly require `rubygems/specification` and `rubygems/builder`
|
16
|
+
to work around a RubyGems 1.5.0 issue.
|
17
|
+
* Do not explicitly convert dependency versions into Strings.
|
18
|
+
* Default the root directory passed to {Ore::Project#initialize} to the current
|
19
|
+
working directory.
|
20
|
+
* Fixed typos in the YARD documentation thanks to
|
21
|
+
[yard-spellcheck](http://github.com/postmodern/yard-spellcheck).
|
22
|
+
|
1
23
|
### 0.1.1 / 2011-01-19
|
2
24
|
|
3
25
|
* Require yard ~> 0.6.1.
|
@@ -22,7 +44,7 @@
|
|
22
44
|
* Added {Ore::Versions::VersionFile}.
|
23
45
|
* Added {Ore::Project}:
|
24
46
|
* Added {Ore::Checks}.
|
25
|
-
* Added
|
47
|
+
* Added `Ore::Defaults`.
|
26
48
|
* Added {Ore::Settings}.
|
27
49
|
* Added {Ore::Specification}.
|
28
50
|
* Added {Ore::Project#post_install_message}.
|
data/GemspecYML.md
CHANGED
@@ -87,6 +87,14 @@ The primary email contact for the project can be listed like so:
|
|
87
87
|
|
88
88
|
email: alice@example.com
|
89
89
|
|
90
|
+
If a project has more than one email contact, each email address can be
|
91
|
+
listed:
|
92
|
+
|
93
|
+
email:
|
94
|
+
- alice@example.com
|
95
|
+
- eve@example.com
|
96
|
+
- bob@example.com
|
97
|
+
|
90
98
|
## date
|
91
99
|
|
92
100
|
The publish date of the current version can be listed like so:
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,23 +1,25 @@
|
|
1
|
-
# Ore
|
1
|
+
# Ore (Core)
|
2
2
|
|
3
3
|
* [Source](http://github.com/ruby-ore/ore-core)
|
4
4
|
* [Issues](http://github.com/ruby-ore/ore-core/issues)
|
5
5
|
* [Documentation](http://rubydoc.info/gems/ore-core/file/README.md)
|
6
|
+
* [Email](postmodern.mod3 at gmail.com)
|
6
7
|
* IRC: irc.freenode.net #ruby-ore
|
7
|
-
* Postmodern (postmodern.mod3 at gmail.com)
|
8
8
|
|
9
9
|
## Description
|
10
10
|
|
11
11
|
Ore is a simple RubyGem building solution. Ore handles the creation of
|
12
|
-
|
13
|
-
the developer to keep all of the
|
12
|
+
[Gem::Specification](http://docs.rubygems.org/read/chapter/20) objects as
|
13
|
+
well as building `.gem` files. Ore allows the developer to keep all of the
|
14
|
+
project information in a single YAML file.
|
14
15
|
|
15
16
|
## Features
|
16
17
|
|
17
18
|
* Stores project information in **one YAML file** (`gemspec.yml`).
|
18
19
|
* **Does not** have dependencies.
|
19
|
-
* **Does not** impose a development workflow onto the developer.
|
20
|
-
even use Ore with
|
20
|
+
* **Does not** impose a development workflow onto the developer.
|
21
|
+
One could even use Ore with
|
22
|
+
[Jeweler::Tasks](https://github.com/technicalpickles/jeweler#readme).
|
21
23
|
* **Can** load the project version from:
|
22
24
|
* `VERSION` or `VERSION.yml` files.
|
23
25
|
* `VERSION` constants or `Version` modules defined in a `version.rb` file.
|
@@ -28,10 +30,17 @@ the developer to keep all of the project information in a single YAML file.
|
|
28
30
|
# custom logic here
|
29
31
|
end
|
30
32
|
rescue NameError
|
31
|
-
|
32
|
-
|
33
|
+
begin
|
34
|
+
require 'ore/specification'
|
35
|
+
retry
|
36
|
+
rescue LoadError
|
37
|
+
STDERR.puts "The 'my_project.gemspec' file requires Ore."
|
38
|
+
STDERR.puts "Run `gem install ore-core` to install Ore."
|
39
|
+
end
|
33
40
|
end
|
34
41
|
|
42
|
+
* **Can** be used with [Bundler](http://gembundler.com).
|
43
|
+
|
35
44
|
## Install
|
36
45
|
|
37
46
|
$ gem install ore-core
|
@@ -41,7 +50,7 @@ the developer to keep all of the project information in a single YAML file.
|
|
41
50
|
The `gemspec.yml` file used to build Ore:
|
42
51
|
|
43
52
|
name: ore-core
|
44
|
-
version: 0.1.
|
53
|
+
version: 0.1.2
|
45
54
|
summary: Mine raw RubyGems from YAML.
|
46
55
|
description:
|
47
56
|
Ore is a simple RubyGem building solution. Ore handles the
|
@@ -57,12 +66,13 @@ The `gemspec.yml` file used to build Ore:
|
|
57
66
|
|
58
67
|
development_dependencies:
|
59
68
|
yard: ~> 0.6.1
|
60
|
-
rspec: ~> 2.
|
69
|
+
rspec: ~> 2.4.0
|
61
70
|
|
62
71
|
For a complete refrence to the `gemspec.yml` file, please see
|
63
|
-
|
72
|
+
[GemspecYML Reference](http://rubydoc.info/gems/ore-core/file/GemspecYML.html).
|
64
73
|
|
65
74
|
## License
|
66
75
|
|
67
|
-
|
76
|
+
Copyright (c) 2010-2011 Hal Brodigan
|
68
77
|
|
78
|
+
See {file:LICENSE.txt} for license information.
|
data/Rakefile
CHANGED
data/gemspec.yml
CHANGED
data/lib/ore/dependency.rb
CHANGED
@@ -0,0 +1,215 @@
|
|
1
|
+
require 'ore/naming'
|
2
|
+
require 'ore/versions'
|
3
|
+
|
4
|
+
require 'date'
|
5
|
+
|
6
|
+
module Ore
|
7
|
+
#
|
8
|
+
# A mixin for {Project} which provides methods for assigning default
|
9
|
+
# values to project attributes.
|
10
|
+
#
|
11
|
+
module Inferences
|
12
|
+
include Naming
|
13
|
+
|
14
|
+
# The default require-paths
|
15
|
+
@@require_paths = [@@lib_dir, @@ext_dir]
|
16
|
+
|
17
|
+
# The glob to find default executables
|
18
|
+
@@executables = "#{@@bin_dir}/*"
|
19
|
+
|
20
|
+
# The globs to find all testing-files
|
21
|
+
@@test_files = [
|
22
|
+
"#{@@test_dir}/{**/}*_test.rb",
|
23
|
+
"#{@@spec_dir}/{**/}*_spec.rb"
|
24
|
+
]
|
25
|
+
|
26
|
+
# The files to always exclude
|
27
|
+
@@exclude_files = %w[
|
28
|
+
.gitignore
|
29
|
+
]
|
30
|
+
|
31
|
+
protected
|
32
|
+
|
33
|
+
#
|
34
|
+
# Infers the Source Code Management used by the project.
|
35
|
+
#
|
36
|
+
# @since 0.1.2.
|
37
|
+
#
|
38
|
+
def infer_scm!
|
39
|
+
if @root.join('.git').directory?
|
40
|
+
@scm = :git
|
41
|
+
else
|
42
|
+
@scm = nil
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
#
|
47
|
+
# Infers the project files.
|
48
|
+
#
|
49
|
+
# @since 0.1.2.
|
50
|
+
#
|
51
|
+
def infer_project_files!
|
52
|
+
@project_files = Set[]
|
53
|
+
|
54
|
+
filter_path = lambda { |path|
|
55
|
+
check_readable(path) { |file| @project_files << file }
|
56
|
+
}
|
57
|
+
|
58
|
+
within do
|
59
|
+
case @scm
|
60
|
+
when :git
|
61
|
+
`git ls-files -z`.split("\0").each(&filter_path)
|
62
|
+
else
|
63
|
+
within { Dir.glob('{**/}*',&filter_path) }
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
#
|
69
|
+
# Infers the namespace of the project based on the project name.
|
70
|
+
#
|
71
|
+
# @since 0.1.2.
|
72
|
+
#
|
73
|
+
def infer_namespace!
|
74
|
+
@namespace_modules = modules_of(@name)
|
75
|
+
@namespace = namespace_of(@name)
|
76
|
+
|
77
|
+
dir = namespace_path_of(@name)
|
78
|
+
|
79
|
+
@namespace_dir = if lib_directory?(dir)
|
80
|
+
dir
|
81
|
+
elsif lib_directory?(@name)
|
82
|
+
@name
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
#
|
87
|
+
# Infers the project name using the directory name of the project.
|
88
|
+
#
|
89
|
+
# @since 0.1.2.
|
90
|
+
#
|
91
|
+
def infer_name!
|
92
|
+
@name = @root.basename.to_s
|
93
|
+
end
|
94
|
+
|
95
|
+
#
|
96
|
+
# Finds and sets the version of the project.
|
97
|
+
#
|
98
|
+
# @since 0.1.2.
|
99
|
+
#
|
100
|
+
def infer_version!
|
101
|
+
@version = (
|
102
|
+
Versions::VersionFile.find(self) ||
|
103
|
+
Versions::VersionConstant.find(self)
|
104
|
+
)
|
105
|
+
|
106
|
+
unless @version
|
107
|
+
raise(InvalidMetadata,"no version file or constant in #{@root}")
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
#
|
112
|
+
# Infers the release date of the project.
|
113
|
+
#
|
114
|
+
# @since 0.1.2.
|
115
|
+
#
|
116
|
+
def infer_date!
|
117
|
+
@date = Date.today
|
118
|
+
end
|
119
|
+
|
120
|
+
#
|
121
|
+
# Infers the require-paths of the project.
|
122
|
+
#
|
123
|
+
# @since 0.1.2.
|
124
|
+
#
|
125
|
+
def infer_require_paths!
|
126
|
+
@@require_paths.each do |name|
|
127
|
+
@require_paths << name if @root.join(name).directory?
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
#
|
132
|
+
# Infers the executables of the project.
|
133
|
+
#
|
134
|
+
# @since 0.1.2.
|
135
|
+
#
|
136
|
+
def infer_executables!
|
137
|
+
glob(@@executables) do |path|
|
138
|
+
check_executable(path) { |exe| @executables << File.basename(exe) }
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
#
|
143
|
+
# Infers the default executable of the project.
|
144
|
+
#
|
145
|
+
# @since 0.1.2.
|
146
|
+
#
|
147
|
+
def infer_default_executable!
|
148
|
+
@default_executable = if @executables.include?(@name)
|
149
|
+
@name
|
150
|
+
else
|
151
|
+
@executables.first
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
#
|
156
|
+
# Infers documentation of the project.
|
157
|
+
#
|
158
|
+
# @since 0.1.2.
|
159
|
+
#
|
160
|
+
def infer_documentation!
|
161
|
+
if file?('.yardopts')
|
162
|
+
@documentation = :yard
|
163
|
+
else
|
164
|
+
@documentation = :rdoc
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
#
|
169
|
+
# Infers the extra documentation files of the project.
|
170
|
+
#
|
171
|
+
# @since 0.1.2.
|
172
|
+
#
|
173
|
+
def infer_extra_doc_files!
|
174
|
+
glob('README.*') { |path| add_extra_doc_file(path) }
|
175
|
+
|
176
|
+
if @document
|
177
|
+
@document.each_extra_file { |path| add_extra_doc_file(path) }
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
#
|
182
|
+
# Infers the files of the project.
|
183
|
+
#
|
184
|
+
# @since 0.1.2.
|
185
|
+
#
|
186
|
+
def infer_files!
|
187
|
+
@project_files.each do |file|
|
188
|
+
@files << file unless @@exclude_files.include?(file)
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
#
|
193
|
+
# Infers the test-files of the project.
|
194
|
+
#
|
195
|
+
# @since 0.1.2.
|
196
|
+
#
|
197
|
+
def infer_test_files!
|
198
|
+
@@test_files.each do |pattern|
|
199
|
+
glob(pattern) { |path| add_test_file(path) }
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
#
|
204
|
+
# Infers the required version of RubyGems to `>= 1.3.6`, if the
|
205
|
+
# project uses Bundler.
|
206
|
+
#
|
207
|
+
# @since 0.1.2.
|
208
|
+
#
|
209
|
+
def infer_required_rubygems_version!
|
210
|
+
if bundler?
|
211
|
+
@required_rubygems_version = '>= 1.3.6'
|
212
|
+
end
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
data/lib/ore/naming.rb
CHANGED
@@ -28,11 +28,11 @@ module Ore
|
|
28
28
|
@@pkg_dir = 'pkg'
|
29
29
|
|
30
30
|
# Words used in project names, but never in directory names
|
31
|
-
@@ignore_namespaces = %w[ruby java]
|
31
|
+
@@ignore_namespaces = %w[ruby rb java]
|
32
32
|
|
33
33
|
# Common acronyms used in namespaces
|
34
34
|
@@namespace_acronyms = %w[
|
35
|
-
ffi i18n
|
35
|
+
ffi yard i18n
|
36
36
|
http https ftp smtp imap pop3 ssh ssl tcp udp dns rpc
|
37
37
|
url uri www css html xhtml xml xsl json yaml csv
|
38
38
|
posix unix bsd
|
@@ -41,11 +41,13 @@ module Ore
|
|
41
41
|
|
42
42
|
# Common project prefixes and namespaces
|
43
43
|
@@common_namespaces = {
|
44
|
+
'rubygems' => 'Gem',
|
44
45
|
'ar' => 'ActiveRecord',
|
45
46
|
'dm' => 'DataMapper',
|
46
47
|
'js' => 'JavaScript',
|
47
48
|
'msgpack' => 'MsgPack',
|
48
|
-
'github' => 'GitHub'
|
49
|
+
'github' => 'GitHub',
|
50
|
+
'rdoc' => 'RDoc'
|
49
51
|
}
|
50
52
|
|
51
53
|
#
|
data/lib/ore/project.rb
CHANGED
@@ -3,7 +3,7 @@ require 'ore/exceptions/invalid_metadata'
|
|
3
3
|
require 'ore/naming'
|
4
4
|
require 'ore/paths'
|
5
5
|
require 'ore/checks'
|
6
|
-
require 'ore/
|
6
|
+
require 'ore/inferences'
|
7
7
|
require 'ore/settings'
|
8
8
|
require 'ore/document_file'
|
9
9
|
|
@@ -11,10 +11,12 @@ require 'pathname'
|
|
11
11
|
require 'yaml'
|
12
12
|
require 'find'
|
13
13
|
require 'fileutils'
|
14
|
+
require 'rubygems/specification'
|
15
|
+
require 'rubygems/builder'
|
14
16
|
|
15
17
|
module Ore
|
16
18
|
#
|
17
|
-
#
|
19
|
+
# Combines the metadata from the `gemspec.yml` file and the inferred
|
18
20
|
# information from the project directory.
|
19
21
|
#
|
20
22
|
class Project
|
@@ -22,7 +24,7 @@ module Ore
|
|
22
24
|
include Naming
|
23
25
|
include Paths
|
24
26
|
include Checks
|
25
|
-
include
|
27
|
+
include Inferences
|
26
28
|
include Settings
|
27
29
|
|
28
30
|
# The project metadata file
|
@@ -40,7 +42,7 @@ module Ore
|
|
40
42
|
# The fully-qualified namespace of the project
|
41
43
|
attr_reader :namespace
|
42
44
|
|
43
|
-
# The
|
45
|
+
# The inferred namespace modules of the project
|
44
46
|
attr_reader :namespace_modules
|
45
47
|
|
46
48
|
# The directory contain the project code.
|
@@ -124,7 +126,7 @@ module Ore
|
|
124
126
|
# @param [String] root
|
125
127
|
# The root directory of the project.
|
126
128
|
#
|
127
|
-
def initialize(root)
|
129
|
+
def initialize(root=Dir.pwd)
|
128
130
|
@root = Pathname.new(root).expand_path
|
129
131
|
|
130
132
|
unless @root.directory?
|
@@ -149,7 +151,7 @@ module Ore
|
|
149
151
|
if metadata['name']
|
150
152
|
@name = metadata['name'].to_s
|
151
153
|
else
|
152
|
-
|
154
|
+
infer_name!
|
153
155
|
end
|
154
156
|
|
155
157
|
# infer the namespace from the project name
|
@@ -158,7 +160,7 @@ module Ore
|
|
158
160
|
if metadata['version']
|
159
161
|
set_version! metadata['version']
|
160
162
|
else
|
161
|
-
|
163
|
+
infer_version!
|
162
164
|
end
|
163
165
|
|
164
166
|
@summary = (metadata['summary'] || metadata['description'])
|
@@ -182,7 +184,7 @@ module Ore
|
|
182
184
|
if metadata['date']
|
183
185
|
set_date! metadata['date']
|
184
186
|
else
|
185
|
-
|
187
|
+
infer_date!
|
186
188
|
end
|
187
189
|
|
188
190
|
@document = DocumentFile.find(self)
|
@@ -192,7 +194,7 @@ module Ore
|
|
192
194
|
if metadata['require_paths']
|
193
195
|
set_require_paths! metadata['require_paths']
|
194
196
|
else
|
195
|
-
|
197
|
+
infer_require_paths!
|
196
198
|
end
|
197
199
|
|
198
200
|
@executables = []
|
@@ -200,7 +202,7 @@ module Ore
|
|
200
202
|
if metadata['executables']
|
201
203
|
set_executables! metadata['executables']
|
202
204
|
else
|
203
|
-
|
205
|
+
infer_executables!
|
204
206
|
end
|
205
207
|
|
206
208
|
@default_executable = nil
|
@@ -208,7 +210,7 @@ module Ore
|
|
208
210
|
if metadata['default_executable']
|
209
211
|
set_default_executable! metadata['default_executable']
|
210
212
|
else
|
211
|
-
|
213
|
+
infer_default_executable!
|
212
214
|
end
|
213
215
|
|
214
216
|
if metadata['has_yard']
|
@@ -218,7 +220,7 @@ module Ore
|
|
218
220
|
:rdoc
|
219
221
|
end
|
220
222
|
else
|
221
|
-
|
223
|
+
infer_documentation!
|
222
224
|
end
|
223
225
|
|
224
226
|
@extra_doc_files = []
|
@@ -226,7 +228,7 @@ module Ore
|
|
226
228
|
if metadata['extra_doc_files']
|
227
229
|
set_extra_doc_files! metadata['extra_doc_files']
|
228
230
|
else
|
229
|
-
|
231
|
+
infer_extra_doc_files!
|
230
232
|
end
|
231
233
|
|
232
234
|
@files = []
|
@@ -234,7 +236,7 @@ module Ore
|
|
234
236
|
if metadata['files']
|
235
237
|
set_files! metadata['files']
|
236
238
|
else
|
237
|
-
|
239
|
+
infer_files!
|
238
240
|
end
|
239
241
|
|
240
242
|
@test_files = []
|
@@ -242,7 +244,7 @@ module Ore
|
|
242
244
|
if metadata['test_files']
|
243
245
|
set_test_files! metadata['test_files']
|
244
246
|
else
|
245
|
-
|
247
|
+
infer_test_files!
|
246
248
|
end
|
247
249
|
|
248
250
|
if metadata['post_install_message']
|
@@ -262,7 +264,7 @@ module Ore
|
|
262
264
|
if metadata['required_rubygems_version']
|
263
265
|
set_required_rubygems_version! metadata['required_rubygems_version']
|
264
266
|
else
|
265
|
-
|
267
|
+
infer_required_rubygems_version!
|
266
268
|
end
|
267
269
|
|
268
270
|
@dependencies = []
|
@@ -337,6 +339,19 @@ module Ore
|
|
337
339
|
@licenses.first
|
338
340
|
end
|
339
341
|
|
342
|
+
#
|
343
|
+
# Determines whether the project prefers using
|
344
|
+
# [RVM](http://rvm.beginrescueend.com/).
|
345
|
+
#
|
346
|
+
# @return [Boolean]
|
347
|
+
# Specifies whether the project prefers being developed under RVM.
|
348
|
+
#
|
349
|
+
# @since 0.1.2
|
350
|
+
#
|
351
|
+
def rvm?
|
352
|
+
file?('.rvmrc')
|
353
|
+
end
|
354
|
+
|
340
355
|
#
|
341
356
|
# Determines whether the project uses Bundler.
|
342
357
|
#
|
@@ -367,6 +382,8 @@ module Ore
|
|
367
382
|
@documentation == :rdoc
|
368
383
|
end
|
369
384
|
|
385
|
+
alias has_rdoc? has_rdoc
|
386
|
+
|
370
387
|
#
|
371
388
|
# Determines if the project contains YARD documentation.
|
372
389
|
#
|
@@ -377,6 +394,8 @@ module Ore
|
|
377
394
|
@documentation == :yard
|
378
395
|
end
|
379
396
|
|
397
|
+
alias has_yard? has_yard
|
398
|
+
|
380
399
|
#
|
381
400
|
# Populates a Gem Specification using the metadata of the project.
|
382
401
|
#
|
@@ -494,53 +513,6 @@ module Ore
|
|
494
513
|
messages.each { |mesg| STDERR.puts("WARNING: #{mesg}") }
|
495
514
|
end
|
496
515
|
|
497
|
-
#
|
498
|
-
# Infers the Source Code Management used by the project.
|
499
|
-
#
|
500
|
-
def infer_scm!
|
501
|
-
if @root.join('.git').directory?
|
502
|
-
@scm = :git
|
503
|
-
else
|
504
|
-
@scm = nil
|
505
|
-
end
|
506
|
-
end
|
507
|
-
|
508
|
-
#
|
509
|
-
# Infers the project files.
|
510
|
-
#
|
511
|
-
def infer_project_files!
|
512
|
-
@project_files = Set[]
|
513
|
-
|
514
|
-
filter_path = lambda { |path|
|
515
|
-
check_readable(path) { |file| @project_files << file }
|
516
|
-
}
|
517
|
-
|
518
|
-
within do
|
519
|
-
case @scm
|
520
|
-
when :git
|
521
|
-
`git ls-files -z`.split("\0").each(&filter_path)
|
522
|
-
else
|
523
|
-
within { Dir.glob('{**/}*',&filter_path) }
|
524
|
-
end
|
525
|
-
end
|
526
|
-
end
|
527
|
-
|
528
|
-
#
|
529
|
-
# Infers the namespace of the project based on the project name.
|
530
|
-
#
|
531
|
-
def infer_namespace!
|
532
|
-
@namespace_modules = modules_of(@name)
|
533
|
-
@namespace = namespace_of(@name)
|
534
|
-
|
535
|
-
dir = namespace_path_of(@name)
|
536
|
-
|
537
|
-
@namespace_dir = if lib_directory?(dir)
|
538
|
-
dir
|
539
|
-
elsif lib_directory?(@name)
|
540
|
-
@name
|
541
|
-
end
|
542
|
-
end
|
543
|
-
|
544
516
|
#
|
545
517
|
# Adds a require-path to the project.
|
546
518
|
#
|
data/lib/ore/settings.rb
CHANGED
@@ -210,7 +210,7 @@ module Ore
|
|
210
210
|
# Sets the dependencies of the project.
|
211
211
|
#
|
212
212
|
# @param [Hash{String => String}] dependencies
|
213
|
-
# The
|
213
|
+
# The dependency names and versions listed in the metadata file.
|
214
214
|
#
|
215
215
|
# @raise [InvalidMetadata]
|
216
216
|
# The dependencies must be a `Hash`.
|
@@ -221,8 +221,6 @@ module Ore
|
|
221
221
|
end
|
222
222
|
|
223
223
|
dependencies.each do |name,versions|
|
224
|
-
versions = versions.to_s
|
225
|
-
|
226
224
|
@dependencies << Dependency.parse_versions(name,versions)
|
227
225
|
end
|
228
226
|
end
|
@@ -231,7 +229,7 @@ module Ore
|
|
231
229
|
# Sets the runtime-dependencies of the project.
|
232
230
|
#
|
233
231
|
# @param [Hash{String => String}] dependencies
|
234
|
-
# The runtime-
|
232
|
+
# The runtime-dependency names and versions listed in the metadata
|
235
233
|
# file.
|
236
234
|
#
|
237
235
|
# @raise [InvalidMetadata]
|
@@ -243,8 +241,6 @@ module Ore
|
|
243
241
|
end
|
244
242
|
|
245
243
|
dependencies.each do |name,versions|
|
246
|
-
versions = versions.to_s
|
247
|
-
|
248
244
|
@runtime_dependencies << Dependency.parse_versions(name,versions)
|
249
245
|
end
|
250
246
|
end
|
@@ -253,7 +249,7 @@ module Ore
|
|
253
249
|
# Sets the development-dependencies of the project.
|
254
250
|
#
|
255
251
|
# @param [Hash{String => String}] dependencies
|
256
|
-
# The development-
|
252
|
+
# The development-dependency names and versions listed in the
|
257
253
|
# metadata file.
|
258
254
|
#
|
259
255
|
# @raise [InvalidMetadata]
|
@@ -265,8 +261,6 @@ module Ore
|
|
265
261
|
end
|
266
262
|
|
267
263
|
dependencies.each do |name,versions|
|
268
|
-
versions = versions.to_s
|
269
|
-
|
270
264
|
@development_dependencies << Dependency.parse_versions(name,versions)
|
271
265
|
end
|
272
266
|
end
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ore-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 1
|
8
|
-
- 1
|
9
|
-
version: 0.1.1
|
4
|
+
prerelease:
|
5
|
+
version: 0.1.2
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Postmodern
|
@@ -14,7 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
13
|
+
date: 2011-02-08 00:00:00 -08:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
@@ -25,10 +21,6 @@ dependencies:
|
|
25
21
|
requirements:
|
26
22
|
- - ~>
|
27
23
|
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 0
|
30
|
-
- 6
|
31
|
-
- 1
|
32
24
|
version: 0.6.1
|
33
25
|
type: :development
|
34
26
|
version_requirements: *id001
|
@@ -40,10 +32,6 @@ dependencies:
|
|
40
32
|
requirements:
|
41
33
|
- - ~>
|
42
34
|
- !ruby/object:Gem::Version
|
43
|
-
segments:
|
44
|
-
- 2
|
45
|
-
- 4
|
46
|
-
- 0
|
47
35
|
version: 2.4.0
|
48
36
|
type: :development
|
49
37
|
version_requirements: *id002
|
@@ -60,6 +48,7 @@ extra_rdoc_files:
|
|
60
48
|
- LICENSE.txt
|
61
49
|
files:
|
62
50
|
- .document
|
51
|
+
- .gemtest
|
63
52
|
- .rspec
|
64
53
|
- .yardopts
|
65
54
|
- ChangeLog.md
|
@@ -70,13 +59,13 @@ files:
|
|
70
59
|
- gemspec.yml
|
71
60
|
- lib/ore-core.rb
|
72
61
|
- lib/ore/checks.rb
|
73
|
-
- lib/ore/defaults.rb
|
74
62
|
- lib/ore/dependency.rb
|
75
63
|
- lib/ore/document_file.rb
|
76
64
|
- lib/ore/exceptions.rb
|
77
65
|
- lib/ore/exceptions/exception.rb
|
78
66
|
- lib/ore/exceptions/invalid_metadata.rb
|
79
67
|
- lib/ore/exceptions/project_not_found.rb
|
68
|
+
- lib/ore/inferences.rb
|
80
69
|
- lib/ore/naming.rb
|
81
70
|
- lib/ore/paths.rb
|
82
71
|
- lib/ore/project.rb
|
@@ -138,21 +127,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
138
127
|
requirements:
|
139
128
|
- - ">="
|
140
129
|
- !ruby/object:Gem::Version
|
141
|
-
segments:
|
142
|
-
- 0
|
143
130
|
version: "0"
|
144
131
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
145
132
|
none: false
|
146
133
|
requirements:
|
147
134
|
- - ">="
|
148
135
|
- !ruby/object:Gem::Version
|
149
|
-
segments:
|
150
|
-
- 0
|
151
136
|
version: "0"
|
152
137
|
requirements: []
|
153
138
|
|
154
139
|
rubyforge_project: ore-core
|
155
|
-
rubygems_version: 1.
|
140
|
+
rubygems_version: 1.5.0
|
156
141
|
signing_key:
|
157
142
|
specification_version: 3
|
158
143
|
summary: Mine raw RubyGems from YAML
|
data/lib/ore/defaults.rb
DELETED
@@ -1,140 +0,0 @@
|
|
1
|
-
require 'ore/naming'
|
2
|
-
require 'ore/versions'
|
3
|
-
|
4
|
-
require 'date'
|
5
|
-
|
6
|
-
module Ore
|
7
|
-
#
|
8
|
-
# A mixin for {Project} which provides methods for assigning default
|
9
|
-
# values to project attributes.
|
10
|
-
#
|
11
|
-
module Defaults
|
12
|
-
include Naming
|
13
|
-
|
14
|
-
# The default require-paths
|
15
|
-
@@require_paths = [@@lib_dir, @@ext_dir]
|
16
|
-
|
17
|
-
# The glob to find default executables
|
18
|
-
@@executables = "#{@@bin_dir}/*"
|
19
|
-
|
20
|
-
# The globs to find all testing-files
|
21
|
-
@@test_files = [
|
22
|
-
"#{@@test_dir}/{**/}*_test.rb",
|
23
|
-
"#{@@spec_dir}/{**/}*_spec.rb"
|
24
|
-
]
|
25
|
-
|
26
|
-
# The files to always exclude
|
27
|
-
@@exclude_files = %w[
|
28
|
-
.gitignore
|
29
|
-
]
|
30
|
-
|
31
|
-
protected
|
32
|
-
|
33
|
-
#
|
34
|
-
# Sets the project name using the directory name of the project.
|
35
|
-
#
|
36
|
-
def default_name!
|
37
|
-
@name = @root.basename.to_s
|
38
|
-
end
|
39
|
-
|
40
|
-
#
|
41
|
-
# Finds and sets the version of the project.
|
42
|
-
#
|
43
|
-
def default_version!
|
44
|
-
@version = (
|
45
|
-
Versions::VersionFile.find(self) ||
|
46
|
-
Versions::VersionConstant.find(self)
|
47
|
-
)
|
48
|
-
|
49
|
-
unless @version
|
50
|
-
raise(InvalidMetadata,"no version file or constant in #{@root}")
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
#
|
55
|
-
# Sets the release date of the project.
|
56
|
-
#
|
57
|
-
def default_date!
|
58
|
-
@date = Date.today
|
59
|
-
end
|
60
|
-
|
61
|
-
#
|
62
|
-
# Sets the require-paths of the project.
|
63
|
-
#
|
64
|
-
def default_require_paths!
|
65
|
-
@@require_paths.each do |name|
|
66
|
-
@require_paths << name if @root.join(name).directory?
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
#
|
71
|
-
# Sets the executables of the project.
|
72
|
-
#
|
73
|
-
def default_executables!
|
74
|
-
glob(@@executables) do |path|
|
75
|
-
check_executable(path) { |exe| @executables << File.basename(exe) }
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
#
|
80
|
-
# sets the default executable of the project.
|
81
|
-
#
|
82
|
-
def default_executable!
|
83
|
-
@default_executable = if @executables.include?(@name)
|
84
|
-
@name
|
85
|
-
else
|
86
|
-
@executables.first
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
#
|
91
|
-
# Sets the default documentation of the project.
|
92
|
-
#
|
93
|
-
def default_documentation!
|
94
|
-
if file?('.yardopts')
|
95
|
-
@documentation = :yard
|
96
|
-
else
|
97
|
-
@documentation = :rdoc
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
#
|
102
|
-
# Sets the extra documentation files of the project.
|
103
|
-
#
|
104
|
-
def default_extra_doc_files!
|
105
|
-
glob('README.*') { |path| add_extra_doc_file(path) }
|
106
|
-
|
107
|
-
if @document
|
108
|
-
@document.each_extra_file { |path| add_extra_doc_file(path) }
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
#
|
113
|
-
# Sets the files of the project.
|
114
|
-
#
|
115
|
-
def default_files!
|
116
|
-
@project_files.each do |file|
|
117
|
-
@files << file unless @@exclude_files.include?(file)
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
#
|
122
|
-
# Sets the test-files of the project.
|
123
|
-
#
|
124
|
-
def default_test_files!
|
125
|
-
@@test_files.each do |pattern|
|
126
|
-
glob(pattern) { |path| add_test_file(path) }
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
#
|
131
|
-
# Defaults the required version of RubyGems to `>= 1.3.6`, if the
|
132
|
-
# project uses Bundler.
|
133
|
-
#
|
134
|
-
def default_required_rubygems_version!
|
135
|
-
if bundler?
|
136
|
-
@required_rubygems_version = '>= 1.3.6'
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|