dependence 0.0.91 → 0.0.92
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/dependence/concatenator.rb +2 -1
- data/lib/dependence/dependency_list.rb +31 -0
- data/lib/dependence/dependency_resolver.rb +30 -24
- data/lib/dependence.rb +1 -0
- metadata +10 -9
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
require "dependence/colors"
|
3
|
+
require "dependence/dependency_resolver"
|
3
4
|
|
4
5
|
module Dependence
|
5
6
|
# Take a load path + file glob and concat them into 1 file per directory
|
@@ -36,7 +37,7 @@ module Dependence
|
|
36
37
|
end
|
37
38
|
|
38
39
|
def get_files_in_dependency_order(dir, files)
|
39
|
-
resolver = DependencyResolver.new(files, dir)
|
40
|
+
resolver = DependencyResolver.new(files, dir, @options[:source_type])
|
40
41
|
resolver.sorted_files
|
41
42
|
end
|
42
43
|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Dependence
|
2
|
+
class DependencyList
|
3
|
+
|
4
|
+
def initialize(file_path, file_type)
|
5
|
+
@file_path = file_path
|
6
|
+
@file_type = file_type
|
7
|
+
@dependencies = []
|
8
|
+
end
|
9
|
+
|
10
|
+
def add_dependency(path)
|
11
|
+
(Dir.exists?(path))? add_multiple_dependencies(path) : add_single_dependency(path)
|
12
|
+
end
|
13
|
+
|
14
|
+
def get
|
15
|
+
@dependencies
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def add_multiple_dependencies(directory)
|
21
|
+
glob = File.join(directory, @file_type).gsub("**/", "")
|
22
|
+
Dir.glob(glob).each { |file| add_single_dependency(file) }
|
23
|
+
end
|
24
|
+
|
25
|
+
def add_single_dependency(file)
|
26
|
+
p(file)
|
27
|
+
@dependencies << file
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
@@ -1,33 +1,39 @@
|
|
1
1
|
require 'rgl/adjacency'
|
2
2
|
require 'rgl/topsort'
|
3
|
+
require "dependence/dependency_list"
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
module Dependence
|
6
|
+
class DependencyResolver
|
7
|
+
def initialize(file_list, file_path, file_type)
|
8
|
+
@files = file_list
|
9
|
+
@file_type = file_type
|
10
|
+
@file_path = file_path
|
11
|
+
@graph = RGL::DirectedAdjacencyGraph.new
|
12
|
+
end
|
10
13
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
14
|
+
def sorted_files
|
15
|
+
@files.each do |file|
|
16
|
+
@graph.add_vertex(file)
|
17
|
+
dependencies = get_dependencies_in(file)
|
18
|
+
dependencies.each {|dependency| @graph.add_edge(dependency,file) }
|
19
|
+
end
|
20
|
+
@graph.topsort_iterator.to_a
|
16
21
|
end
|
17
|
-
@graph.topsort_iterator.to_a
|
18
|
-
end
|
19
22
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
+
private
|
24
|
+
|
25
|
+
def get_dependencies_in(file)
|
26
|
+
dependency_list = DependencyList.new(@file_path, @file_type)
|
27
|
+
File.foreach(file) { |s| add_dependency_if_imported(dependency_list, s) }
|
28
|
+
dependency_list.get()
|
29
|
+
end
|
30
|
+
|
31
|
+
def add_dependency_if_imported(dep_list, file_content)
|
32
|
+
return unless file_content.include?("@import")
|
33
|
+
path = file_content.match(/@import (.*)/)[1].strip
|
34
|
+
dep_list.add_dependency File.join(@file_path, path)
|
35
|
+
end
|
23
36
|
|
24
|
-
File.foreach(file) do |s|
|
25
|
-
if s.include?("@import")
|
26
|
-
file_name = s.match(/@import (.*)/)[1].strip
|
27
|
-
dependencies << File.join(@file_path, file_name)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
return dependencies
|
31
37
|
end
|
32
|
-
end
|
33
38
|
|
39
|
+
end
|
data/lib/dependence.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dependence
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.92
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-09-07 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rgl
|
16
|
-
requirement: &
|
16
|
+
requirement: &2166268120 !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: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2166268120
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rb-inotify
|
27
|
-
requirement: &
|
27
|
+
requirement: &2166267680 !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: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2166267680
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: coffee-script
|
38
|
-
requirement: &
|
38
|
+
requirement: &2166267260 !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: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2166267260
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: therubyracer
|
49
|
-
requirement: &
|
49
|
+
requirement: &2166266840 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2166266840
|
58
58
|
description:
|
59
59
|
email: jcarver989@gmail.com
|
60
60
|
executables:
|
@@ -66,6 +66,7 @@ files:
|
|
66
66
|
- compiler/compiler.jar
|
67
67
|
- lib/dependence/colors.rb
|
68
68
|
- lib/dependence/concatenator.rb
|
69
|
+
- lib/dependence/dependency_list.rb
|
69
70
|
- lib/dependence/dependency_resolver.rb
|
70
71
|
- lib/dependence/file_watcher.rb
|
71
72
|
- lib/dependence/js_compiler.rb
|