developwithpassion_expander 0.0.1 → 0.0.2

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.
@@ -1,11 +1,13 @@
1
1
  module DevelopWithPassion
2
2
  module Expander
3
3
  class Expansion
4
- attr_accessor :copies,:files_to_merge
4
+ attr_accessor :copies,:files_to_merge,:globber
5
5
 
6
6
  def initialize
7
7
  initialize_hashes :files_to_merge,:copies
8
8
 
9
+ @globber = lambda{|path| return glob(path)}
10
+
9
11
  array :cleanup_items do|a|
10
12
  a.readable
11
13
  a.process_using :run_cleanup,:call
@@ -21,13 +23,6 @@ module DevelopWithPassion
21
23
  a.process_using :mark_files_executable,ShellActionAgainstFile.new("chmod +x")
22
24
  end
23
25
 
24
- array :templates do|a|
25
- a.mutator :look_for_templates_in do|path|
26
- @templates.concat(glob(path))
27
- end
28
- a.process_using :expand_templates,TemplateVisitor.instance
29
- end
30
-
31
26
  array :files_with_line_endings_to_fix do|a|
32
27
  a.mutator :fix_line_endings_for
33
28
  a.process_using :fix_line_endings,ShellActionAgainstFile.new("d2u")
@@ -47,6 +42,9 @@ module DevelopWithPassion
47
42
  hash_process(target,@files_to_merge,lambda{|key| return FileMerge.new(key)},&block)
48
43
  end
49
44
 
45
+ def look_for_templates_in(path)
46
+ @globber.call(path).process_all_items_using(TemplateVisitor.instance)
47
+ end
50
48
 
51
49
  def cleanup(&block)
52
50
  @cleanup_items << block
@@ -59,7 +57,6 @@ module DevelopWithPassion
59
57
  def run
60
58
  run_setup_items
61
59
  purge_targets
62
- expand_templates
63
60
  expand_items
64
61
  merge_items
65
62
  fix_line_endings
@@ -1,5 +1,5 @@
1
1
  module DevelopWithPassion
2
2
  module Expander
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  module DevelopWithPassion
4
4
  module Expander
5
- class FakeVisitor
5
+ class AFakeVisitor
6
6
  def initialize
7
7
  array :sources do|a|
8
8
  a.readable
@@ -13,7 +13,7 @@ module DevelopWithPassion
13
13
  end
14
14
  describe Copy do
15
15
  let(:sources){[]}
16
- let(:copy_visitor){FakeVisitor.new}
16
+ let(:copy_visitor){AFakeVisitor.new}
17
17
 
18
18
  before (:each) do
19
19
  @sut = Copy.new(copy_visitor)
@@ -4,7 +4,6 @@ module DevelopWithPassion
4
4
  module Expander
5
5
  describe Expansion do
6
6
  let(:sources){[]}
7
- let(:template_visitor){fake}
8
7
  let(:builders){{
9
8
  :cleanup_items => fake,
10
9
  :setup_items => fake,
@@ -20,7 +19,6 @@ module DevelopWithPassion
20
19
 
21
20
  context "when created" do
22
21
  before (:each) do
23
- TemplateVisitor.stub(:instance).and_return(template_visitor)
24
22
  the_module = Module.new do
25
23
  end
26
24
  ArrayDSLModuleFactory.stub(:new).and_return(module_factory)
@@ -66,16 +64,10 @@ module DevelopWithPassion
66
64
  folders_to_purge_builder_builder.should have_received(:process_using,:purge_targets,rm_rf_visitor)
67
65
  end
68
66
 
69
- it "should scaffold the templates list" do
70
- templates_builder_builder = builders[:templates]
71
- templates_builder_builder.should have_received(:mutator,:look_for_templates_in)
72
- templates_builder_builder.should have_received(:process_using,:expand_templates,template_visitor)
73
- end
74
67
  end
75
68
 
76
69
  context "when specifying a copy" do
77
70
  before (:each) do
78
- TemplateVisitor.stub(:instance).and_return(template_visitor)
79
71
  @sut = Expansion.new
80
72
  end
81
73
 
@@ -96,7 +88,6 @@ module DevelopWithPassion
96
88
 
97
89
  context "when specifying a merge" do
98
90
  before (:each) do
99
- TemplateVisitor.stub(:instance).and_return(template_visitor)
100
91
  @sut = Expansion.new
101
92
  end
102
93
  before (:each) do
@@ -116,7 +107,6 @@ module DevelopWithPassion
116
107
 
117
108
  context "when a cleanup is specified" do
118
109
  before (:each) do
119
- TemplateVisitor.stub(:instance).and_return(template_visitor)
120
110
  @sut = Expansion.new
121
111
  end
122
112
  before (:each) do
@@ -128,9 +118,39 @@ module DevelopWithPassion
128
118
  end
129
119
  end
130
120
 
131
- context "when a before is specified" do
121
+ class FakeVisitor
122
+ attr_accessor :items
123
+ def initialize
124
+ @items = 0
125
+ end
126
+ def run_using(file)
127
+ @items+=1
128
+ end
129
+ end
130
+ context "when a set of templates is specified" do
131
+ let(:path){"**/*"}
132
+ let(:template_visitor){FakeVisitor.new}
132
133
  before (:each) do
133
134
  TemplateVisitor.stub(:instance).and_return(template_visitor)
135
+ @files = %w[1 2 3 4]
136
+ Kernel.stub(:glob).with(path).and_return(@files)
137
+ @sut = Expansion.new
138
+ @sut.globber = lambda{|the_path|
139
+ the_path.should == path
140
+ return @files
141
+ }
142
+ end
143
+ before (:each) do
144
+ @sut.look_for_templates_in(path)
145
+ end
146
+
147
+ it "should process each of the loaded templates using the template visitor" do
148
+ template_visitor.items.should == 4
149
+ end
150
+ end
151
+
152
+ context "when a before is specified" do
153
+ before (:each) do
134
154
  @sut = Expansion.new
135
155
  end
136
156
  before (:each) do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: developwithpassion_expander
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-03-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70199340819340 !ruby/object:Gem::Requirement
16
+ requirement: &70364281720580 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70199340819340
24
+ version_requirements: *70364281720580
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: guard
27
- requirement: &70199340818820 !ruby/object:Gem::Requirement
27
+ requirement: &70364281720080 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70199340818820
35
+ version_requirements: *70364281720080
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: guard-rspec
38
- requirement: &70199340818300 !ruby/object:Gem::Requirement
38
+ requirement: &70364281719500 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70199340818300
46
+ version_requirements: *70364281719500
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: developwithpassion_fakes
49
- requirement: &70199340817620 !ruby/object:Gem::Requirement
49
+ requirement: &70364281718820 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70199340817620
57
+ version_requirements: *70364281718820
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rb-notifu
60
- requirement: &70199340817040 !ruby/object:Gem::Requirement
60
+ requirement: &70364281718100 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70199340817040
68
+ version_requirements: *70364281718100
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: configatron
71
- requirement: &70199340816540 !ruby/object:Gem::Requirement
71
+ requirement: &70364281717520 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70199340816540
79
+ version_requirements: *70364281717520
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: mustache
82
- requirement: &70199340816100 !ruby/object:Gem::Requirement
82
+ requirement: &70364281716940 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70199340816100
90
+ version_requirements: *70364281716940
91
91
  description: Automation utitlity that I use to support cross platform file maintenance
92
92
  email:
93
93
  - open_source@developwithpassion.com
@@ -173,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
173
  version: '0'
174
174
  requirements: []
175
175
  rubyforge_project: developwithpassion_expander
176
- rubygems_version: 1.8.17
176
+ rubygems_version: 1.8.15
177
177
  signing_key:
178
178
  specification_version: 3
179
179
  summary: Simple Expansion Automation Utility