filander 0.6.0 → 0.6.1
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/lib/filander.rb +13 -7
- data/lib/filander/actions/base.rb +2 -1
- data/spec/filander_spec.rb +2 -2
- metadata +30 -6
- data/lib/filander/actions/gem_install.rb +0 -29
- data/lib/filander/actions/git_clone.rb +0 -12
data/lib/filander.rb
CHANGED
@@ -7,8 +7,6 @@ require 'filander/actions/copy_directory'
|
|
7
7
|
require 'filander/actions/copy_file'
|
8
8
|
require 'filander/actions/create_file'
|
9
9
|
require 'filander/actions/empty_directory'
|
10
|
-
require 'filander/actions/gem_install'
|
11
|
-
require 'filander/actions/git_clone'
|
12
10
|
require 'filander/actions/inject_into_file'
|
13
11
|
require 'filander/actions/inside'
|
14
12
|
require 'filander/actions/template'
|
@@ -28,16 +26,26 @@ module Filander
|
|
28
26
|
Filander.quiet = value
|
29
27
|
end
|
30
28
|
|
29
|
+
def self.verbose(value)
|
30
|
+
Filander.verbose = value
|
31
|
+
end
|
32
|
+
|
31
33
|
# can be :pretend, :skip or :force
|
32
34
|
def self.behavior(value)
|
33
|
-
|
35
|
+
return unless value
|
36
|
+
Filander.behavior = value.to_sym
|
34
37
|
end
|
35
38
|
end
|
36
39
|
end
|
37
40
|
|
38
41
|
class << self
|
39
|
-
attr_reader :source_root_stack, :destination_root_stack
|
40
|
-
attr_accessor :quiet, :
|
42
|
+
attr_reader :source_root_stack, :destination_root_stack, :behavior
|
43
|
+
attr_accessor :quiet, :verbose
|
44
|
+
|
45
|
+
def behavior=(value)
|
46
|
+
return unless value
|
47
|
+
@behavior = value.to_sym
|
48
|
+
end
|
41
49
|
|
42
50
|
def source_root=(dirname)
|
43
51
|
add_source_root dirname
|
@@ -77,8 +85,6 @@ module Filander
|
|
77
85
|
include CopyFile
|
78
86
|
include CreateFile
|
79
87
|
include EmptyDirectory
|
80
|
-
include GemInstall
|
81
|
-
include GitClone
|
82
88
|
include InjectIntoFile
|
83
89
|
include Inside
|
84
90
|
include Template
|
@@ -62,6 +62,7 @@ module Filander
|
|
62
62
|
end
|
63
63
|
|
64
64
|
yield unless skip || Filander.behavior == :pretend
|
65
|
+
report nil, content.gsub(/(\n+)/, '\1' + " ").strip if Filander.verbose
|
65
66
|
end
|
66
67
|
|
67
68
|
def report(verb, filename)
|
@@ -79,7 +80,7 @@ module Filander
|
|
79
80
|
end
|
80
81
|
|
81
82
|
color = case verb
|
82
|
-
when :create
|
83
|
+
when :create, :clone, :enable
|
83
84
|
:green
|
84
85
|
when :force, :skip
|
85
86
|
:yellow
|
data/spec/filander_spec.rb
CHANGED
@@ -75,8 +75,8 @@ describe "Filander" do
|
|
75
75
|
Filander.included_modules.should include(Filander::Inside)
|
76
76
|
end
|
77
77
|
|
78
|
-
it "should include
|
79
|
-
Filander.included_modules.should include(Filander::
|
78
|
+
it "should include GemInstall" do
|
79
|
+
Filander.included_modules.should include(Filander::GemInstall)
|
80
80
|
end
|
81
81
|
|
82
82
|
it "should include Template" do
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: filander
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 5
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 6
|
8
|
-
-
|
9
|
-
version: 0.6.
|
9
|
+
- 1
|
10
|
+
version: 0.6.1
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Johannes J. Schmidt
|
@@ -14,16 +15,18 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-
|
18
|
+
date: 2010-07-11 00:00:00 +02:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: rspec
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 13
|
27
30
|
segments:
|
28
31
|
- 1
|
29
32
|
- 2
|
@@ -49,13 +52,30 @@ files:
|
|
49
52
|
- lib/filander/actions/copy_file.rb
|
50
53
|
- lib/filander/actions/create_file.rb
|
51
54
|
- lib/filander/actions/empty_directory.rb
|
52
|
-
- lib/filander/actions/gem_install.rb
|
53
|
-
- lib/filander/actions/git_clone.rb
|
54
55
|
- lib/filander/actions/inject_into_file.rb
|
55
56
|
- lib/filander/actions/inside.rb
|
56
57
|
- lib/filander/actions/template.rb
|
57
58
|
- LICENSE
|
58
59
|
- README.rdoc
|
60
|
+
- spec/filander_spec.rb
|
61
|
+
- spec/spec_helper.rb
|
62
|
+
- spec/filander/actions/copy_directory_spec.rb
|
63
|
+
- spec/filander/actions/inside_spec.rb
|
64
|
+
- spec/filander/actions/copy_file_spec.rb
|
65
|
+
- spec/filander/actions/inject_into_file_spec.rb
|
66
|
+
- spec/filander/actions/chown_spec.rb
|
67
|
+
- spec/filander/actions/template_spec.rb
|
68
|
+
- spec/filander/actions/empty_directory_spec.rb
|
69
|
+
- spec/filander/actions/create_file_spec.rb
|
70
|
+
- spec/filander/actions/gem_install_spec.rb
|
71
|
+
- spec/filander/actions/base_spec.rb
|
72
|
+
- spec/filander/actions/cmd_spec.rb
|
73
|
+
- spec/filander/actions/git_clone_spec.rb
|
74
|
+
- spec/source/myfile
|
75
|
+
- spec/source/mydir/myfile
|
76
|
+
- spec/source/mydir/mytemplate
|
77
|
+
- spec/source/mytemplate
|
78
|
+
- spec/spec.opts
|
59
79
|
has_rdoc: true
|
60
80
|
homepage: http://github.com/jo/filander
|
61
81
|
licenses: []
|
@@ -66,23 +86,27 @@ rdoc_options:
|
|
66
86
|
require_paths:
|
67
87
|
- lib
|
68
88
|
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
69
90
|
requirements:
|
70
91
|
- - ">="
|
71
92
|
- !ruby/object:Gem::Version
|
93
|
+
hash: 3
|
72
94
|
segments:
|
73
95
|
- 0
|
74
96
|
version: "0"
|
75
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
76
99
|
requirements:
|
77
100
|
- - ">="
|
78
101
|
- !ruby/object:Gem::Version
|
102
|
+
hash: 3
|
79
103
|
segments:
|
80
104
|
- 0
|
81
105
|
version: "0"
|
82
106
|
requirements: []
|
83
107
|
|
84
108
|
rubyforge_project:
|
85
|
-
rubygems_version: 1.3.
|
109
|
+
rubygems_version: 1.3.7
|
86
110
|
signing_key:
|
87
111
|
specification_version: 3
|
88
112
|
summary: File manipulation tools
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Filander
|
2
|
-
module GemInstall
|
3
|
-
include Base
|
4
|
-
|
5
|
-
def gem_install(name, version = nil)
|
6
|
-
if version
|
7
|
-
gem_install_args = "-v=#{version} #{name}"
|
8
|
-
report_name = "#{name} #{version}"
|
9
|
-
else
|
10
|
-
gem_install_args = name
|
11
|
-
report_name = name
|
12
|
-
end
|
13
|
-
if gem_exists?(name, version)
|
14
|
-
report :installed, report_name
|
15
|
-
else
|
16
|
-
report :install, report_name
|
17
|
-
unless Filander.behavior == :pretend
|
18
|
-
system "gem install #{gem_install_args}"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def gem_exists?(name, version)
|
26
|
-
Gem.path.map { |p| File.join(p, 'gems', "#{name}-#{version || '*'}") }.any? { |p| Dir[p].size > 0 }
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|