framework_identificator 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -33,7 +33,7 @@ Or install it yourself as:
33
33
 
34
34
  ### VCS
35
35
 
36
- - Git
36
+ - Git ([ruby-git](/schacon/ruby-git))
37
37
 
38
38
  ### Frameworks
39
39
 
@@ -2,9 +2,9 @@ module Frameworks
2
2
  class Rails
3
3
  attr_accessor :source
4
4
  def self.recognized?(source)
5
- @source = source.is_a?(Git::Base) ? source.dir.path : source
5
+ @source = source
6
6
 
7
- self.recognize_a_rails_project? ? self.new : nil
7
+ self.recognize_a_rails_project?
8
8
  end
9
9
 
10
10
  private
@@ -0,0 +1,11 @@
1
+ module Frameworks
2
+
3
+ # Collect and return classes representing frameworks implemented into the Frameworks module
4
+ def self.available
5
+ Frameworks.constants.select{|klass|
6
+ Frameworks.const_get(klass).is_a?(Class)
7
+ }.collect{|klass_sym|
8
+ eval("Frameworks::#{klass_sym.to_s}")
9
+ }
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module FrameworkIdentificator
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -1,12 +1,17 @@
1
1
  require "framework_identificator/version"
2
- require "framework_identificator/frameworks/rails"
2
+ require "framework_identificator/frameworks"
3
+
4
+ # Load all frameworks
5
+ Dir[File.join(File.dirname(__FILE__), "framework_identificator", "frameworks", "*.rb")].each{|file| require file}
3
6
 
4
7
  module FrameworkIdentificator
5
8
  def self.from(source)
6
9
  raise ArgumentError unless source.is_a?(Pathname) || source.is_a?(Git::Base)
7
10
 
8
- [Frameworks::Rails].detect do |framework|
9
- framework.recognized?(source)
10
- end
11
+ # Use source itself if Pathname otherwise fetch the Git dir path
12
+ source = source.is_a?(Git::Base) ? source.dir.path : source
13
+
14
+ # Try to detect a Framework using the source
15
+ Frameworks.available.detect{|framework| framework.recognized?(source)}
11
16
  end
12
17
  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.0.0
4
+ version: 1.1.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-20 00:00:00.000000000 Z
12
+ date: 2012-11-21 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Identify the used framework of a given project.
15
15
  email:
@@ -29,6 +29,7 @@ files:
29
29
  - Rakefile
30
30
  - framework_identificator.gemspec
31
31
  - lib/framework_identificator.rb
32
+ - lib/framework_identificator/frameworks.rb
32
33
  - lib/framework_identificator/frameworks/rails.rb
33
34
  - lib/framework_identificator/version.rb
34
35
  - spec/fixtures/basic_folders_and_files/backup/main.sh
@@ -48,18 +49,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
48
49
  - - ! '>='
49
50
  - !ruby/object:Gem::Version
50
51
  version: '0'
51
- segments:
52
- - 0
53
- hash: 4491665536790450036
54
52
  required_rubygems_version: !ruby/object:Gem::Requirement
55
53
  none: false
56
54
  requirements:
57
55
  - - ! '>='
58
56
  - !ruby/object:Gem::Version
59
57
  version: '0'
60
- segments:
61
- - 0
62
- hash: 4491665536790450036
63
58
  requirements: []
64
59
  rubyforge_project:
65
60
  rubygems_version: 1.8.24