technologist 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 40514f03f5debe8297e5b2979ba03ffb9abf0259
4
- data.tar.gz: 5bfaa76d6cf66fef4e98a8eef4be124f032fb943
3
+ metadata.gz: 2378b10dae9e8be8a3a908670493e515b460d703
4
+ data.tar.gz: 97fa566a3d4d81b5b19a6dbac8b22520cf066299
5
5
  SHA512:
6
- metadata.gz: de497979b54b8db49c02a3fa673f7f79dc4877a3bbde78f11cc20a7ce540675325582d4ce809a12ddd6bfa827dbeb80ed1caa61cd92f7c080cb94200fc2a509b
7
- data.tar.gz: c9425752fe04a5a0efe7f125d5374d593a2490f8420928973b2a6d792a37df5907ada4e4d986446e061f09f1bb61e8fa6b1bb90b82dda73e1d8efa4c0975e1cb
6
+ metadata.gz: c9fe126a1345093b72fb02131f99b09d533acd2fe34db60102062cf66b77f5f931497bd5d2506b0726a7e756188a002b27916d502c087f1034ba13298661c185
7
+ data.tar.gz: 1f447477bbba87d7d84caa8d9ec7dfafbc7cc283772451cae00912ea17969155779eeb2d40021e67adec77598f782c06fb96223cef7a22abd6daf533fc8a867c
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ tags
data/bin/console CHANGED
@@ -6,9 +6,5 @@ require "technologist"
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
8
8
 
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start
9
+ require "pry"
10
+ Pry.start
data/exe/technologist ADDED
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "technologist"
4
+
5
+ def framework_report(title, frameworks)
6
+ return if frameworks.empty?
7
+ puts title
8
+ frameworks.each do |framework|
9
+ puts "* #{framework}"
10
+ end
11
+ end
12
+
13
+ path = ARGV[0] || Dir.pwd
14
+
15
+ result = Technologist::Repository.new(path)
16
+
17
+ if result.primary_frameworks.empty? && result.secondary_frameworks.empty?
18
+ puts "No known frameworks could be detected."
19
+ else
20
+ framework_report('Primary Frameworks', result.primary_frameworks)
21
+ framework_report('Secondary Frameworks', result.secondary_frameworks)
22
+ end
@@ -2,6 +2,8 @@ require 'yaml'
2
2
 
3
3
  module Technologist
4
4
  class FrameworkDetector
5
+ FRAMEWORK_RULES = File.expand_path('../frameworks.yml', __FILE__)
6
+
5
7
  def initialize(repository)
6
8
  @repository = repository
7
9
  end
@@ -26,7 +28,7 @@ module Technologist
26
28
  attr_reader :repository
27
29
 
28
30
  def rules
29
- @rules ||= YAML.load_file('lib/technologist/frameworks.yml')
31
+ @rules ||= YAML.load_file(FRAMEWORK_RULES)
30
32
  end
31
33
 
32
34
  def matched_frameworks
@@ -1,6 +1,8 @@
1
1
  Rails:
2
2
  rules:
3
3
  - !ruby/object:GemRule {}
4
+ - !ruby/object:GemRule { gem_name: 'jrails' }
5
+ - !ruby/object:FileContentRule { file_name: 'boot.rb', file_content_pattern: 'Rails.boot!' }
4
6
 
5
7
  Locomotive:
6
8
  rules:
@@ -31,9 +33,59 @@ Meteor:
31
33
 
32
34
  Spree:
33
35
  rules:
34
- - !ruby/object:GemRule { gem_name: 'spree' }
36
+ - !ruby/object:GemRule {}
37
+ - !ruby/object:FileContentRule { file_name: 'boot.rb', file_content_pattern: 'Spree.boot!' }
35
38
  primary: Rails
36
39
 
37
40
  Wordpress:
38
41
  rules:
39
42
  - !ruby/object:FilePresenceRule { file_name: 'wp-settings.php' }
43
+
44
+ Volt:
45
+ rules:
46
+ - !ruby/object:GemRule {}
47
+
48
+ Ionic:
49
+ rules:
50
+ - !ruby/object:FilePresenceRule { file_name: 'ionic.project' }
51
+
52
+ Node:
53
+ rules:
54
+ - !ruby/object:FileContentRule
55
+ file_name: 'package.json'
56
+ file_content_pattern: '"engines":\s*{\s*"node":'
57
+
58
+ Hoodie:
59
+ rules:
60
+ - !ruby/object:FileContentRule
61
+ file_name: 'package.json'
62
+ file_content_pattern: '"hoodie":\s*{'
63
+ primary: Node
64
+
65
+ PrestaShop:
66
+ rules:
67
+ - !ruby/object:FileContentRule { file_name: 'init.php', file_content_pattern: 'PrestaShop' }
68
+
69
+ Cordova:
70
+ rules:
71
+ - !ruby/object:FileContentRule
72
+ file_name: 'config.xml'
73
+ file_content_pattern: '\bxmlns:cdv="http://cordova.apache.org/ns/.+"'
74
+
75
+ iOS:
76
+ rules:
77
+ - !ruby/object:FileContentRule
78
+ file_name: 'project.pbxproj'
79
+ file_content_pattern: '\n\s*SDKROOT = iphoneos;\n'
80
+
81
+ Refinery CMS:
82
+ rules:
83
+ - !ruby/object:GemRule { gem_name: 'refinerycms' }
84
+ primary: Rails
85
+
86
+ Rack:
87
+ rules:
88
+ - !ruby/object:GemRule { gem_name: 'rack' }
89
+ - !ruby/object:FileContentRule
90
+ file_name: config.ru
91
+ file_content_pattern: 'run Proc\.new { \|env\|'
@@ -1,3 +1,3 @@
1
1
  module Technologist
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
data/technologist.gemspec CHANGED
@@ -24,4 +24,5 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "bundler", "~> 1.7"
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
26
  spec.add_development_dependency "rspec", "~> 3.3"
27
+ spec.add_development_dependency "pry", "~> 0.10"
27
28
  end
metadata CHANGED
@@ -1,82 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: technologist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexis Reigel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-10-25 00:00:00.000000000 Z
11
+ date: 2015-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rugged
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.23.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.23.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.7'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.7'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '10.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '3.3'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '0.10'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '0.10'
69
83
  description: Detects technologies in a repository by applying a set of rules and returning
70
84
  primary and secondary frameworks.
71
85
  email:
72
86
  - mail@koffeinfrei.org
73
- executables: []
87
+ executables:
88
+ - technologist
74
89
  extensions: []
75
90
  extra_rdoc_files: []
76
91
  files:
77
- - ".gitignore"
78
- - ".rspec"
79
- - ".travis.yml"
92
+ - .gitignore
93
+ - .rspec
94
+ - .travis.yml
80
95
  - CODE_OF_CONDUCT.md
81
96
  - Gemfile
82
97
  - LICENSE
@@ -84,6 +99,7 @@ files:
84
99
  - Rakefile
85
100
  - bin/console
86
101
  - bin/setup
102
+ - exe/technologist
87
103
  - lib/technologist.rb
88
104
  - lib/technologist/framework_detector.rb
89
105
  - lib/technologist/frameworks.yml
@@ -106,17 +122,17 @@ require_paths:
106
122
  - lib
107
123
  required_ruby_version: !ruby/object:Gem::Requirement
108
124
  requirements:
109
- - - ">="
125
+ - - '>='
110
126
  - !ruby/object:Gem::Version
111
127
  version: '0'
112
128
  required_rubygems_version: !ruby/object:Gem::Requirement
113
129
  requirements:
114
- - - ">="
130
+ - - '>='
115
131
  - !ruby/object:Gem::Version
116
132
  version: '0'
117
133
  requirements: []
118
134
  rubyforge_project:
119
- rubygems_version: 2.4.5
135
+ rubygems_version: 2.4.8
120
136
  signing_key:
121
137
  specification_version: 4
122
138
  summary: Detects the technologies used in a repository.