framework_identificator 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/.rspec CHANGED
@@ -1,2 +1 @@
1
1
  --color
2
- --format documentation
@@ -1,5 +1,5 @@
1
1
  module FrameworkIdentificator
2
- module Frameworks
2
+ module ApplicationFrameworks
3
3
  class Rails
4
4
  # ~~~~ Attributes ~~~~
5
5
  attr_accessor :source, :routes_path, :project_name
@@ -0,0 +1,5 @@
1
+ module FrameworkIdentificator
2
+ module ApplicationFrameworks
3
+ include FrameworkIdentificator::Framework
4
+ end
5
+ end
@@ -0,0 +1,28 @@
1
+ module FrameworkIdentificator
2
+ module Framework
3
+ module ClassMethods
4
+ def son_name
5
+ @son_name
6
+ end
7
+ def son_name=(name)
8
+ @son_name = name
9
+ end
10
+
11
+ # Collect and return classes representing testing frameworks implemented into the FrameworkIdentificator::TestingFrameworks module
12
+ def available
13
+ son = eval("FrameworkIdentificator::#{son_name}")
14
+ son.constants.select{|klass|
15
+ son.const_get(klass).is_a?(Class)
16
+ }.collect{|klass_sym|
17
+ eval("FrameworkIdentificator::#{son_name}::#{klass_sym.to_s}")
18
+ }
19
+ end
20
+ end
21
+ extend ClassMethods
22
+
23
+ def self.included(including)
24
+ including.extend(ClassMethods)
25
+ including.son_name = including.name.split("::").last
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,27 @@
1
+ module FrameworkIdentificator
2
+ module TestingFrameworks
3
+ class Rspec
4
+ # ~~~~ Attributes ~~~~
5
+ attr_accessor :source
6
+
7
+ # ~~~~ Class Methods ~~~~
8
+ def self.recognized?(source)
9
+ @source = source
10
+
11
+ self.has_spec_spec_helper_file?
12
+ end
13
+
14
+ # ~~~~ Instance Methods ~~~~
15
+ def initialize(*source)
16
+ # Nothing do initialize for now
17
+ end
18
+
19
+ private
20
+
21
+ def self.has_spec_spec_helper_file?
22
+ File.exists?(File.join(@source, "spec", "spec_helper.rb"))
23
+ end
24
+
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,5 @@
1
+ module FrameworkIdentificator
2
+ module TestingFrameworks
3
+ include FrameworkIdentificator::Framework
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module FrameworkIdentificator
2
- VERSION = "1.3.0"
2
+ VERSION = "1.4.0"
3
3
  end
@@ -1,18 +1,27 @@
1
1
  require "framework_identificator/version"
2
- require "framework_identificator/frameworks"
2
+ require "framework_identificator/framework"
3
+ require "framework_identificator/application_frameworks"
4
+ require "framework_identificator/testing_frameworks"
3
5
 
4
6
  # Load all frameworks
5
- Dir[File.join(File.dirname(__FILE__), "framework_identificator", "frameworks", "*.rb")].each{|file| require file}
7
+ ["application_frameworks", "testing_frameworks"].each do |frameworks|
8
+ Dir[File.join(File.dirname(__FILE__), "framework_identificator", frameworks, "*.rb")].each{|file| require file}
9
+ end
6
10
 
7
11
  module FrameworkIdentificator
8
- def self.from(source)
12
+ def self.from(source, type)
9
13
  raise ArgumentError unless source.class.name == "Pathname" || source.class.name == "Git::Base"
10
14
 
11
15
  # Use source itself if Pathname otherwise fetch the Git dir path
12
16
  source = source.class.name == "Git::Base" ? source.dir.path : source
13
17
 
14
18
  # Try to detect a Framework using the source
15
- FrameworkIdentificator::Frameworks.available.detect do |framework|
19
+ case type
20
+ when :application
21
+ FrameworkIdentificator::ApplicationFrameworks
22
+ when :testing
23
+ FrameworkIdentificator::TestingFrameworks
24
+ end.available.detect do |framework|
16
25
  return framework.new(source) if framework.recognized?(source)
17
26
  end
18
27
  end
@@ -0,0 +1,185 @@
1
+ require "spec_helper"
2
+
3
+ describe FrameworkIdentificator::ApplicationFrameworks::Rails do
4
+
5
+ describe "Attributes" do
6
+ it "should have an attribute :source" do
7
+ subject.should respond_to(:source)
8
+ subject.should respond_to(:source=)
9
+ end
10
+ it "should have an attribute :routes_path" do
11
+ subject.should respond_to(:routes_path)
12
+ subject.should respond_to(:routes_path=)
13
+ end
14
+ it "should have an attribute :project_name" do
15
+ subject.should respond_to(:project_name)
16
+ subject.should respond_to(:project_name=)
17
+ end
18
+ end
19
+
20
+ describe "Class Methods" do
21
+ describe "ApplicationFrameworks" do
22
+ before { @repository_path = Pathname.new(File.join("projects", "my_rails_project")) }
23
+ describe "for a Rails framework" do
24
+ context "with script/rails" do
25
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_rails_3_script_folder?).and_return(true) }
26
+ context "with valid app/ folder" do
27
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_app_folder?).and_return(true) }
28
+ context "with valid config/ folder" do
29
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_config_folder?).and_return(true) }
30
+ context "with a Rakefile" do
31
+ before do
32
+ FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(true)
33
+ FrameworkIdentificator::ApplicationFrameworks::Rails.any_instance.stub(:parse_source).and_return(true)
34
+ @framework = FrameworkIdentificator.from(@repository_path, :application)
35
+ end
36
+ it "should return not return a nil" do
37
+ @framework.should_not be_nil
38
+ end
39
+ it "should return an instance of ApplicationFrameworks::Rails" do
40
+ @framework.class.should be FrameworkIdentificator::ApplicationFrameworks::Rails
41
+ end
42
+ describe "instance" do
43
+ describe "project_name" do
44
+ before { @framework.stub(:project_name).and_return("MyRailsProject") }
45
+ it "should respond to project_name" do
46
+ @framework.should respond_to(:project_name)
47
+ end
48
+ context "with a project name \"MyRailsProject\"" do
49
+ it "should return the \"MyRailsProject\"" do
50
+ @framework.project_name.should == "MyRailsProject"
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ context "without Rakefile" do
57
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(false) }
58
+ it "should return false" do
59
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
60
+ end
61
+ end
62
+ end
63
+ context "without valid config/ folder" do
64
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_config_folder?).and_return(false) }
65
+ context "with a Rakefile" do
66
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(true) }
67
+ it "should return false" do
68
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
69
+ end
70
+ end
71
+ context "without Rakefile" do
72
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(false) }
73
+ it "should return false" do
74
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
75
+ end
76
+ end
77
+ end
78
+ end
79
+ context "without valid app/ folder" do
80
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_app_folder?).and_return(false) }
81
+ context "with valid config/ folder" do
82
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_config_folder?).and_return(true) }
83
+ context "with a Rakefile" do
84
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(true) }
85
+ it "should return false" do
86
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
87
+ end
88
+ end
89
+ context "without Rakefile" do
90
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(false) }
91
+ it "should return false" do
92
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
93
+ end
94
+ end
95
+ end
96
+ context "without valid config/ folder" do
97
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_config_folder?).and_return(false) }
98
+ context "with a Rakefile" do
99
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(true) }
100
+ it "should return false" do
101
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
102
+ end
103
+ end
104
+ context "without Rakefile" do
105
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(false) }
106
+ it "should return false" do
107
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end
113
+ context "with script/rails" do
114
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_script_folder?).and_return(false) }
115
+ context "with valid app/ folder" do
116
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_app_folder?).and_return(true) }
117
+ context "with valid config/ folder" do
118
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_config_folder?).and_return(true) }
119
+ context "with a Rakefile" do
120
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(true) }
121
+ it "should return false" do
122
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
123
+ end
124
+ end
125
+ context "without Rakefile" do
126
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(false) }
127
+ it "should return false" do
128
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
129
+ end
130
+ end
131
+ end
132
+ context "without valid config/ folder" do
133
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_config_folder?).and_return(false) }
134
+ context "with a Rakefile" do
135
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(true) }
136
+ it "should return false" do
137
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
138
+ end
139
+ end
140
+ context "without Rakefile" do
141
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(false) }
142
+ it "should return false" do
143
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
144
+ end
145
+ end
146
+ end
147
+ end
148
+ context "without valid app/ folder" do
149
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_app_folder?).and_return(false) }
150
+ context "with valid config/ folder" do
151
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_config_folder?).and_return(true) }
152
+ context "with a Rakefile" do
153
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(true) }
154
+ it "should return false" do
155
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
156
+ end
157
+ end
158
+ context "without Rakefile" do
159
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(false) }
160
+ it "should return false" do
161
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
162
+ end
163
+ end
164
+ end
165
+ context "without valid config/ folder" do
166
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_valid_config_folder?).and_return(false) }
167
+ context "with a Rakefile" do
168
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(true) }
169
+ it "should return false" do
170
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
171
+ end
172
+ end
173
+ context "without Rakefile" do
174
+ before { FrameworkIdentificator::ApplicationFrameworks::Rails.stub(:have_rakefile?).and_return(false) }
175
+ it "should return false" do
176
+ FrameworkIdentificator.from(@repository_path, :application).should be_false
177
+ end
178
+ end
179
+ end
180
+ end
181
+ end
182
+ end
183
+ end
184
+ end
185
+ end
@@ -0,0 +1,11 @@
1
+ require "spec_helper"
2
+
3
+ describe FrameworkIdentificator::ApplicationFrameworks do
4
+
5
+ describe "#available" do
6
+ it "should return an array with FrameworkIdentificator::ApplicationFrameworks::Rails" do
7
+ subject.available.should == [FrameworkIdentificator::ApplicationFrameworks::Rails]
8
+ end
9
+ end
10
+
11
+ end
@@ -0,0 +1,40 @@
1
+ require "spec_helper"
2
+
3
+ describe FrameworkIdentificator::TestingFrameworks::Rspec do
4
+
5
+ describe "Attributes" do
6
+ it "should have an attribute :source" do
7
+ subject.should respond_to(:source)
8
+ subject.should respond_to(:source=)
9
+ end
10
+ end
11
+
12
+ describe "Class Methods" do
13
+ describe "TestingFrameworks" do
14
+ before { @repository_path = Pathname.new(File.join("projects", "my_rails_project")) }
15
+ describe "for Rspec framework" do
16
+ context "without spec/spec_helper.rb file" do
17
+ before do
18
+ FrameworkIdentificator::TestingFrameworks::Rspec.stub(:has_spec_spec_helper_file?).and_return(false)
19
+ @framework = FrameworkIdentificator.from(@repository_path, :testing)
20
+ end
21
+ it "should return return a nil" do
22
+ @framework.should be_nil
23
+ end
24
+ end
25
+ context "with spec/spec_helper.rb file" do
26
+ before do
27
+ FrameworkIdentificator::TestingFrameworks::Rspec.stub(:has_spec_spec_helper_file?).and_return(true)
28
+ @framework = FrameworkIdentificator.from(@repository_path, :testing)
29
+ end
30
+ it "should return not return a nil" do
31
+ @framework.should_not be_nil
32
+ end
33
+ it "should return an instance of ApplicationFrameworks::Rspec" do
34
+ @framework.class.should be FrameworkIdentificator::TestingFrameworks::Rspec
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,11 @@
1
+ require "spec_helper"
2
+
3
+ describe FrameworkIdentificator::TestingFrameworks do
4
+
5
+ describe "#available" do
6
+ it "should return an array with FrameworkIdentificator::ApplicationFrameworks::Rspec" do
7
+ subject.available.should == [FrameworkIdentificator::TestingFrameworks::Rspec]
8
+ end
9
+ end
10
+
11
+ end
@@ -19,170 +19,10 @@ describe FrameworkIdentificator do
19
19
  end
20
20
  describe "with a Pathname object" do
21
21
  before { @repository_path = Pathname.new(File.join("projects", "my_rails_project")) }
22
- describe "for a Rails framework" do
23
- context "with script/rails" do
24
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_rails_3_script_folder?).and_return(true) }
25
- context "with valid app/ folder" do
26
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_app_folder?).and_return(true) }
27
- context "with valid config/ folder" do
28
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(true) }
29
- context "with a Rakefile" do
30
- before do
31
- FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true)
32
- FrameworkIdentificator::Frameworks::Rails.any_instance.stub(:parse_source).and_return(true)
33
- @framework = subject.from(@repository_path)
34
- end
35
- it "should return not return a nil" do
36
- @framework.should_not be_nil
37
- end
38
- it "should return an instance of Frameworks::Rails" do
39
- @framework.class.should be FrameworkIdentificator::Frameworks::Rails
40
- end
41
- describe "instance" do
42
- describe "project_name" do
43
- before { @framework.stub(:project_name).and_return("MyRailsProject") }
44
- it "should respond to project_name" do
45
- @framework.should respond_to(:project_name)
46
- end
47
- context "with a project name \"MyRailsProject\"" do
48
- it "should return the \"MyRailsProject\"" do
49
- @framework.project_name.should == "MyRailsProject"
50
- end
51
- end
52
- end
53
- end
54
- end
55
- context "without Rakefile" do
56
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
57
- it "should return false" do
58
- subject.from(@repository_path).should be_false
59
- end
60
- end
61
- end
62
- context "without valid config/ folder" do
63
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(false) }
64
- context "with a Rakefile" do
65
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
66
- it "should return false" do
67
- subject.from(@repository_path).should be_false
68
- end
69
- end
70
- context "without Rakefile" do
71
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
72
- it "should return false" do
73
- subject.from(@repository_path).should be_false
74
- end
75
- end
76
- end
77
- end
78
- context "without valid app/ folder" do
79
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_app_folder?).and_return(false) }
80
- context "with valid config/ folder" do
81
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(true) }
82
- context "with a Rakefile" do
83
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
84
- it "should return false" do
85
- subject.from(@repository_path).should be_false
86
- end
87
- end
88
- context "without Rakefile" do
89
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
90
- it "should return false" do
91
- subject.from(@repository_path).should be_false
92
- end
93
- end
94
- end
95
- context "without valid config/ folder" do
96
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(false) }
97
- context "with a Rakefile" do
98
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
99
- it "should return false" do
100
- subject.from(@repository_path).should be_false
101
- end
102
- end
103
- context "without Rakefile" do
104
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
105
- it "should return false" do
106
- subject.from(@repository_path).should be_false
107
- end
108
- end
109
- end
110
- end
111
- end
112
- context "with script/rails" do
113
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_script_folder?).and_return(false) }
114
- context "with valid app/ folder" do
115
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_app_folder?).and_return(true) }
116
- context "with valid config/ folder" do
117
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(true) }
118
- context "with a Rakefile" do
119
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
120
- it "should return false" do
121
- subject.from(@repository_path).should be_false
122
- end
123
- end
124
- context "without Rakefile" do
125
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
126
- it "should return false" do
127
- subject.from(@repository_path).should be_false
128
- end
129
- end
130
- end
131
- context "without valid config/ folder" do
132
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(false) }
133
- context "with a Rakefile" do
134
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
135
- it "should return false" do
136
- subject.from(@repository_path).should be_false
137
- end
138
- end
139
- context "without Rakefile" do
140
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
141
- it "should return false" do
142
- subject.from(@repository_path).should be_false
143
- end
144
- end
145
- end
146
- end
147
- context "without valid app/ folder" do
148
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_app_folder?).and_return(false) }
149
- context "with valid config/ folder" do
150
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(true) }
151
- context "with a Rakefile" do
152
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
153
- it "should return false" do
154
- subject.from(@repository_path).should be_false
155
- end
156
- end
157
- context "without Rakefile" do
158
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
159
- it "should return false" do
160
- subject.from(@repository_path).should be_false
161
- end
162
- end
163
- end
164
- context "without valid config/ folder" do
165
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(false) }
166
- context "with a Rakefile" do
167
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
168
- it "should return false" do
169
- subject.from(@repository_path).should be_false
170
- end
171
- end
172
- context "without Rakefile" do
173
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
174
- it "should return false" do
175
- subject.from(@repository_path).should be_false
176
- end
177
- end
178
- end
179
- end
180
- end
181
- end
182
22
  describe "for a basic folders/files project" do
183
23
  before { @basic_folders_and_files_path = Pathname.new(File.join("spec", "fixtures", "basic_folders_and_files")) }
184
24
  it "should return false" do
185
- subject.from(@basic_folders_and_files_path).should be_false
25
+ subject.from(@basic_folders_and_files_path, :application).should be_false
186
26
  end
187
27
  end
188
28
  end
@@ -192,170 +32,10 @@ describe FrameworkIdentificator do
192
32
  @git_repository = Git.clone("git://citask.it:citaskit", "Test.git")
193
33
  @git_repository.stub_chain(:dir, :path).and_return(File.join("projects", "my_rails_project"))
194
34
  end
195
- describe "for a Rails framework" do
196
- context "with script/ folder" do
197
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_rails_3_script_folder?).and_return(true) }
198
- context "with valid app/ folder" do
199
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_app_folder?).and_return(true) }
200
- context "with valid config/ folder" do
201
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(true) }
202
- context "with a Rakefile" do
203
- before do
204
- FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true)
205
- FrameworkIdentificator::Frameworks::Rails.any_instance.stub(:parse_source).and_return(true)
206
- @framework = subject.from(@git_repository)
207
- end
208
- it "should return not return a nil" do
209
- @framework.should_not be_nil
210
- end
211
- it "should return an instance of Frameworks::Rails" do
212
- @framework.class.should be FrameworkIdentificator::Frameworks::Rails
213
- end
214
- describe "instance" do
215
- it "should respond to project_name" do
216
- @framework.should respond_to(:project_name)
217
- end
218
- describe "project_name" do
219
- context "with a project name \"MyRailsProject\"" do
220
- before { @framework.stub(:project_name).and_return("MyRailsProject") }
221
- it "should return the \"MyRailsProject\"" do
222
- @framework.project_name.should == "MyRailsProject"
223
- end
224
- end
225
- end
226
- end
227
- end
228
- context "without Rakefile" do
229
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
230
- it "should return false" do
231
- subject.from(@git_repository).should be_false
232
- end
233
- end
234
- end
235
- context "without valid config/ folder" do
236
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(false) }
237
- context "with a Rakefile" do
238
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
239
- it "should return false" do
240
- subject.from(@git_repository).should be_false
241
- end
242
- end
243
- context "without Rakefile" do
244
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
245
- it "should return false" do
246
- subject.from(@git_repository).should be_false
247
- end
248
- end
249
- end
250
- end
251
- context "without valid app/ folder" do
252
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_app_folder?).and_return(false) }
253
- context "with valid config/ folder" do
254
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(true) }
255
- context "with a Rakefile" do
256
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
257
- it "should return false" do
258
- subject.from(@git_repository).should be_false
259
- end
260
- end
261
- context "without Rakefile" do
262
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
263
- it "should return false" do
264
- subject.from(@git_repository).should be_false
265
- end
266
- end
267
- end
268
- context "without valid config/ folder" do
269
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(false) }
270
- context "with a Rakefile" do
271
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
272
- it "should return false" do
273
- subject.from(@git_repository).should be_false
274
- end
275
- end
276
- context "without Rakefile" do
277
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
278
- it "should return false" do
279
- subject.from(@git_repository).should be_false
280
- end
281
- end
282
- end
283
- end
284
- end
285
- context "with script/rails" do
286
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_script_folder?).and_return(false) }
287
- context "with valid app/ folder" do
288
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_app_folder?).and_return(true) }
289
- context "with valid config/ folder" do
290
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(true) }
291
- context "with a Rakefile" do
292
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
293
- it "should return false" do
294
- subject.from(@git_repository).should be_false
295
- end
296
- end
297
- context "without Rakefile" do
298
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
299
- it "should return false" do
300
- subject.from(@git_repository).should be_false
301
- end
302
- end
303
- end
304
- context "without valid config/ folder" do
305
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(false) }
306
- context "with a Rakefile" do
307
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
308
- it "should return false" do
309
- subject.from(@git_repository).should be_false
310
- end
311
- end
312
- context "without Rakefile" do
313
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
314
- it "should return false" do
315
- subject.from(@git_repository).should be_false
316
- end
317
- end
318
- end
319
- end
320
- context "without valid app/ folder" do
321
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_app_folder?).and_return(false) }
322
- context "with valid config/ folder" do
323
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(true) }
324
- context "with a Rakefile" do
325
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
326
- it "should return false" do
327
- subject.from(@git_repository).should be_false
328
- end
329
- end
330
- context "without Rakefile" do
331
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
332
- it "should return false" do
333
- subject.from(@git_repository).should be_false
334
- end
335
- end
336
- end
337
- context "without valid config/ folder" do
338
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_valid_config_folder?).and_return(false) }
339
- context "with a Rakefile" do
340
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(true) }
341
- it "should return false" do
342
- subject.from(@git_repository).should be_false
343
- end
344
- end
345
- context "without Rakefile" do
346
- before { FrameworkIdentificator::Frameworks::Rails.stub(:have_rakefile?).and_return(false) }
347
- it "should return false" do
348
- subject.from(@git_repository).should be_false
349
- end
350
- end
351
- end
352
- end
353
- end
354
- end
355
35
  describe "for a basic folders/files project" do
356
36
  before { @basic_folders_and_files_path = Pathname.new(File.join("spec", "fixtures", "basic_folders_and_files")) }
357
37
  it "should return false" do
358
- subject.from(@basic_folders_and_files_path).should be_false
38
+ subject.from(@basic_folders_and_files_path, :application).should be_false
359
39
  end
360
40
  end
361
41
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: framework_identificator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-25 00:00:00.000000000 Z
12
+ date: 2012-12-23 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Identify the used framework of a given project.
15
15
  email:
@@ -29,13 +29,18 @@ files:
29
29
  - Rakefile
30
30
  - framework_identificator.gemspec
31
31
  - lib/framework_identificator.rb
32
- - lib/framework_identificator/frameworks.rb
33
- - lib/framework_identificator/frameworks/rails.rb
32
+ - lib/framework_identificator/application_frameworks.rb
33
+ - lib/framework_identificator/application_frameworks/rails.rb
34
+ - lib/framework_identificator/framework.rb
35
+ - lib/framework_identificator/testing_frameworks.rb
36
+ - lib/framework_identificator/testing_frameworks/rspec.rb
34
37
  - lib/framework_identificator/version.rb
35
38
  - spec/fixtures/basic_folders_and_files/backup/main.sh
36
39
  - spec/fixtures/basic_folders_and_files/main.sh
37
- - spec/framework_identificator/frameworks/rails_spec.rb
38
- - spec/framework_identificator/frameworks_spec.rb
40
+ - spec/framework_identificator/application_frameworks/rails_spec.rb
41
+ - spec/framework_identificator/application_frameworks_spec.rb
42
+ - spec/framework_identificator/testing_frameworks/rspec_spec.rb
43
+ - spec/framework_identificator/testing_frameworks_spec.rb
39
44
  - spec/framework_identificator_spec.rb
40
45
  - spec/spec_helper.rb
41
46
  homepage: https://github.com/zedtux/framework_identificator
@@ -52,7 +57,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
52
57
  version: '0'
53
58
  segments:
54
59
  - 0
55
- hash: 3322985382667891788
60
+ hash: -1570611119829215661
56
61
  required_rubygems_version: !ruby/object:Gem::Requirement
57
62
  none: false
58
63
  requirements:
@@ -61,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
61
66
  version: '0'
62
67
  segments:
63
68
  - 0
64
- hash: 3322985382667891788
69
+ hash: -1570611119829215661
65
70
  requirements: []
66
71
  rubyforge_project:
67
72
  rubygems_version: 1.8.24
@@ -72,7 +77,9 @@ summary: This gem will identify the framework of a given project based on existi
72
77
  test_files:
73
78
  - spec/fixtures/basic_folders_and_files/backup/main.sh
74
79
  - spec/fixtures/basic_folders_and_files/main.sh
75
- - spec/framework_identificator/frameworks/rails_spec.rb
76
- - spec/framework_identificator/frameworks_spec.rb
80
+ - spec/framework_identificator/application_frameworks/rails_spec.rb
81
+ - spec/framework_identificator/application_frameworks_spec.rb
82
+ - spec/framework_identificator/testing_frameworks/rspec_spec.rb
83
+ - spec/framework_identificator/testing_frameworks_spec.rb
77
84
  - spec/framework_identificator_spec.rb
78
85
  - spec/spec_helper.rb
@@ -1,13 +0,0 @@
1
- module FrameworkIdentificator
2
- module Frameworks
3
-
4
- # Collect and return classes representing frameworks implemented into the FrameworkIdentificator::Frameworks module
5
- def self.available
6
- FrameworkIdentificator::Frameworks.constants.select{|klass|
7
- FrameworkIdentificator::Frameworks.const_get(klass).is_a?(Class)
8
- }.collect{|klass_sym|
9
- eval("FrameworkIdentificator::Frameworks::#{klass_sym.to_s}")
10
- }
11
- end
12
- end
13
- end
@@ -1,23 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe FrameworkIdentificator::Frameworks::Rails do
4
-
5
- describe "Attributes" do
6
- it "should have an attribute :source" do
7
- subject.should respond_to(:source)
8
- subject.should respond_to(:source=)
9
- end
10
- it "should have an attribute :routes_path" do
11
- subject.should respond_to(:routes_path)
12
- subject.should respond_to(:routes_path=)
13
- end
14
- it "should have an attribute :project_name" do
15
- subject.should respond_to(:project_name)
16
- subject.should respond_to(:project_name=)
17
- end
18
- end
19
-
20
- describe "Class Methods" do
21
-
22
- end
23
- end
@@ -1,11 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe FrameworkIdentificator::Frameworks do
4
-
5
- describe "#available" do
6
- it "should return an array with FrameworkIdentificator::Frameworks::Rails" do
7
- subject.available.should == [FrameworkIdentificator::Frameworks::Rails]
8
- end
9
- end
10
-
11
- end