gator 0.0.2.pre → 0.0.3.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.
- data/VERSION +1 -1
- data/gator.gemspec +2 -1
- data/lib/core/cli/application.rb +2 -7
- data/lib/core/configuration/configuration.rb +1 -0
- data/lib/core/project.rb +1 -0
- data/lib/core/project/layout.rb +87 -0
- data/lib/core/project/project.rb +21 -0
- metadata +3 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3.pre
|
data/gator.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{gator}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.3.pre"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Dominic Graefen"]
|
@@ -36,6 +36,7 @@ Gem::Specification.new do |s|
|
|
36
36
|
"lib/core/configuration/configuration.rb",
|
37
37
|
"lib/core/plugin.rb",
|
38
38
|
"lib/core/project.rb",
|
39
|
+
"lib/core/project/layout.rb",
|
39
40
|
"lib/core/project/project.rb",
|
40
41
|
"lib/gator.rb",
|
41
42
|
"test/helper.rb",
|
data/lib/core/cli/application.rb
CHANGED
@@ -24,6 +24,7 @@ module Gator
|
|
24
24
|
def load_project_configuration
|
25
25
|
config_file = File.find_file_upwards("gator_config.rb") || File.join( ".gator","gator_config.rb")
|
26
26
|
ConfigurationGenerator.new.create_configuration config_file unless File.exists? config_file
|
27
|
+
Gator.project.base_dir = File.dirname( File.dirname( config_file ) )
|
27
28
|
load config_file
|
28
29
|
end
|
29
30
|
|
data/lib/core/project.rb
CHANGED
@@ -0,0 +1,87 @@
|
|
1
|
+
# THIS CLASS IS STOLEN FROM BUILDR
|
2
|
+
|
3
|
+
# Symbolic mapping for directory layout. Used for both the default and custom layouts.
|
4
|
+
#
|
5
|
+
# For example, the default layout maps [:source, :main, :java] to 'src/main/java', and
|
6
|
+
# [:target, :main, :classes] to 'target/classes'. You can use this to change the layout
|
7
|
+
# of your projects.
|
8
|
+
#
|
9
|
+
# To map [:source, :main] into the 'sources' directory:
|
10
|
+
# my_layout = Layout.new
|
11
|
+
# my_layout[:source, :main] = 'sources'
|
12
|
+
#
|
13
|
+
# define 'foo', :layout=>my_layout do
|
14
|
+
# ...
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
# To map [:source, :main, :java] to 'java/main':
|
18
|
+
# class MainLast < Layout
|
19
|
+
# def expand(*args)
|
20
|
+
# if args[0..1] == [:source, :main]
|
21
|
+
# super args[2], :main, *args[3,]
|
22
|
+
# else
|
23
|
+
# super
|
24
|
+
# end
|
25
|
+
# end
|
26
|
+
# end
|
27
|
+
#
|
28
|
+
# define 'foo', :layout=>MainLast do
|
29
|
+
# ...
|
30
|
+
# end
|
31
|
+
class Layout
|
32
|
+
|
33
|
+
class << self
|
34
|
+
|
35
|
+
# Default layout used by new projects.
|
36
|
+
attr_accessor :default
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
def initialize #:nodoc:
|
41
|
+
@mapping = {}
|
42
|
+
end
|
43
|
+
|
44
|
+
# Expands list of symbols and path names into a full path, for example:
|
45
|
+
# puts default.expand(:source, :main, :java)
|
46
|
+
# => "src/main/java"
|
47
|
+
def expand(*args)
|
48
|
+
args = args.compact.reject { |s| s.to_s.empty? }.map(&:to_sym)
|
49
|
+
return '' if args.empty?
|
50
|
+
@mapping[args] ||= File.join(*[expand(*args[0..-2]), args.last.to_s].reject(&:empty?)) if args.size > 1
|
51
|
+
return @mapping[args] || args.first.to_s
|
52
|
+
end
|
53
|
+
|
54
|
+
# Resolves a list of symbols into a path.
|
55
|
+
def [](*args)
|
56
|
+
@mapping[args.map(&:to_sym)]
|
57
|
+
end
|
58
|
+
|
59
|
+
# Specifies the path resolved from a list of symbols.
|
60
|
+
def []=(*args)
|
61
|
+
@mapping[args[0...-1].map(&:to_sym)] = args.last
|
62
|
+
end
|
63
|
+
|
64
|
+
def initialize_copy(copy)
|
65
|
+
copy.instance_variable_set :@mapping, @mapping.clone
|
66
|
+
end
|
67
|
+
|
68
|
+
# Default layout has the following properties:
|
69
|
+
# * :source maps to the 'src' directory.
|
70
|
+
# * Anything under :source maps verbatim (e.g. :source, :main becomes 'src/main')
|
71
|
+
# * :target maps to the 'target' directory.
|
72
|
+
# * :target, :main maps to the 'target' directory as well.
|
73
|
+
# * Anything under :target, :main maps verbatim (e.g. :target, :main, :classes becomes 'target/classes')
|
74
|
+
# * Anything else under :target also maps verbatim (e.g. :target, :test becomes 'target/test')
|
75
|
+
class Default < Layout
|
76
|
+
|
77
|
+
def initialize
|
78
|
+
super
|
79
|
+
self[:source] = 'src'
|
80
|
+
self[:target, :main] = 'target'
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
self.default = Default.new
|
86
|
+
|
87
|
+
end
|
data/lib/core/project/project.rb
CHANGED
@@ -5,6 +5,27 @@ module Gator
|
|
5
5
|
|
6
6
|
def initialize( name )
|
7
7
|
@name = name
|
8
|
+
@layout = Layout.default
|
9
|
+
end
|
10
|
+
|
11
|
+
def base_dir
|
12
|
+
@base_dir
|
13
|
+
end
|
14
|
+
|
15
|
+
def base_dir=( dir )
|
16
|
+
@base_dir = dir
|
17
|
+
end
|
18
|
+
|
19
|
+
def path(*args)
|
20
|
+
File.join( Gator.base_dir, layout.expand(*args) )
|
21
|
+
end
|
22
|
+
|
23
|
+
def layout
|
24
|
+
@layout
|
25
|
+
end
|
26
|
+
|
27
|
+
def layout=( l )
|
28
|
+
@layout = l
|
8
29
|
end
|
9
30
|
|
10
31
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: gator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: 6
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3.pre
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Dominic Graefen
|
@@ -95,6 +95,7 @@ files:
|
|
95
95
|
- lib/core/configuration/configuration.rb
|
96
96
|
- lib/core/plugin.rb
|
97
97
|
- lib/core/project.rb
|
98
|
+
- lib/core/project/layout.rb
|
98
99
|
- lib/core/project/project.rb
|
99
100
|
- lib/gator.rb
|
100
101
|
- test/helper.rb
|
@@ -113,7 +114,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
113
114
|
requirements:
|
114
115
|
- - ">="
|
115
116
|
- !ruby/object:Gem::Version
|
116
|
-
hash:
|
117
|
+
hash: 1808113828780164832
|
117
118
|
segments:
|
118
119
|
- 0
|
119
120
|
version: "0"
|