konacha-chai-matchers 0.0.18 → 0.1.0
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/VERSIONS +15 -0
- data/lib/konacha-chai-matchers.rb +7 -1
- data/lib/konacha-chai-matchers/collector.rb +38 -0
- data/lib/konacha-chai-matchers/library.rb +75 -0
- data/lib/konacha-chai-matchers/version.rb +1 -1
- data/tasks/update.rb +4 -69
- metadata +4 -1
data/VERSIONS
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
chai-spies: 0.5.1
|
2
|
+
sinon-chai: 2.3.1
|
3
|
+
chai-as-promised: 3.2.5
|
4
|
+
chai-jquery: 1.1.1
|
5
|
+
chai-timers: 0.2.0
|
6
|
+
chai-stats: 0.2.0
|
7
|
+
chai-null: 0.1.0
|
8
|
+
chai-factories: 0.1.0
|
9
|
+
chai-changes: 1.3.0
|
10
|
+
chai-backbone: 0.9.2
|
11
|
+
js-factories: 0.9.0
|
12
|
+
mocha-as-promised: 1.2.1
|
13
|
+
chai-things: 0.1.1
|
14
|
+
chai-fuzzy: 1.1.1
|
15
|
+
sinon: 1.5.2
|
@@ -1,11 +1,17 @@
|
|
1
1
|
require "konacha-chai-matchers/version"
|
2
|
+
require 'pathname'
|
3
|
+
require 'json'
|
2
4
|
|
3
5
|
module Konacha
|
4
6
|
module Chai
|
5
7
|
module Matchers
|
6
8
|
class Engine < ::Rails::Engine
|
7
|
-
|
8
9
|
end
|
10
|
+
|
11
|
+
autoload :Collector, 'konacha-chai-matchers/collector'
|
12
|
+
autoload :Library, 'konacha-chai-matchers/library'
|
13
|
+
|
9
14
|
end
|
10
15
|
end
|
11
16
|
end
|
17
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
|
2
|
+
module Konacha
|
3
|
+
module Chai
|
4
|
+
module Matchers
|
5
|
+
class Collector
|
6
|
+
|
7
|
+
def update_libraries
|
8
|
+
modules = collect_libraries
|
9
|
+
|
10
|
+
modules.each(&:update)
|
11
|
+
modules.each(&:vendor)
|
12
|
+
|
13
|
+
File.open('VERSIONS', 'w') do |f|
|
14
|
+
modules.each do |m|
|
15
|
+
f.puts "#{m.name}: #{m.version}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def collect_libraries
|
23
|
+
libs = []
|
24
|
+
File.open('.gitmodules') do |f|
|
25
|
+
contents = f.read
|
26
|
+
contents.each_line do |line|
|
27
|
+
if matches = /\[submodule "(.*)"\]/.match(line)
|
28
|
+
libs << Library.new(matches[1])
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
libs
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
|
2
|
+
module Konacha
|
3
|
+
module Chai
|
4
|
+
module Matchers
|
5
|
+
class Library
|
6
|
+
|
7
|
+
attr_reader :name
|
8
|
+
|
9
|
+
def initialize(name)
|
10
|
+
@name = name
|
11
|
+
end
|
12
|
+
|
13
|
+
def update
|
14
|
+
`cd ./#@name && git pull origin master`
|
15
|
+
`cd ./#@name && ./build` if File.exist? "./#@name/build"
|
16
|
+
end
|
17
|
+
|
18
|
+
def vendor
|
19
|
+
file = main_file
|
20
|
+
unless file
|
21
|
+
puts "Cannot determine library file for #@name"
|
22
|
+
return false
|
23
|
+
end
|
24
|
+
|
25
|
+
path = "./vendor/assets/javascripts/"
|
26
|
+
Pathname.new(path).mkpath()
|
27
|
+
FileUtils.cp(file, "#{path}#{@name}.js")
|
28
|
+
return true
|
29
|
+
end
|
30
|
+
|
31
|
+
def main_file
|
32
|
+
return @main_file unless @main_file.nil?
|
33
|
+
r = determine_file_from_suggestion @name
|
34
|
+
r ||= get_main_file_from_package
|
35
|
+
@main_file = r
|
36
|
+
end
|
37
|
+
|
38
|
+
def version
|
39
|
+
get_value_from_package 'version'
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def determine_file_from_suggestion filename
|
45
|
+
file_search = filename.downcase
|
46
|
+
file_search << '.js' unless file_search =~ /\.js$/
|
47
|
+
|
48
|
+
path_order = [
|
49
|
+
"./#@name/pkg/#{file_search}",
|
50
|
+
"./#@name/#{file_search}",
|
51
|
+
"./#@name/lib/#{file_search}"
|
52
|
+
]
|
53
|
+
path_order.map do |p|
|
54
|
+
p if File.exist? p
|
55
|
+
end.flatten.compact.first
|
56
|
+
end
|
57
|
+
|
58
|
+
def get_value_from_package key
|
59
|
+
filename = "./#@name/package.json"
|
60
|
+
return unless File.exist? filename
|
61
|
+
json_string = File.open(filename).read
|
62
|
+
json = JSON.parse json_string
|
63
|
+
return unless json.has_key? "main"
|
64
|
+
json[key]
|
65
|
+
end
|
66
|
+
|
67
|
+
def get_main_file_from_package
|
68
|
+
main_file = get_value_from_package 'main'
|
69
|
+
determine_file_from_suggestion main_file
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
data/tasks/update.rb
CHANGED
@@ -1,74 +1,9 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
1
|
+
require 'rails'
|
2
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../lib/konacha-chai-matchers')
|
3
3
|
|
4
4
|
desc 'updates all submodules'
|
5
5
|
task :update do
|
6
|
-
|
7
|
-
|
8
|
-
vendor_files modules
|
6
|
+
collector = Konacha::Chai::Matchers::Collector.new
|
7
|
+
collector.update_libraries
|
9
8
|
end
|
10
9
|
|
11
|
-
def collect_modules
|
12
|
-
modules = []
|
13
|
-
File.open('.gitmodules') do |f|
|
14
|
-
contents = f.read
|
15
|
-
contents.each_line do |line|
|
16
|
-
if matches = /\[submodule "(.*)"\]/.match(line)
|
17
|
-
modules << matches[1]
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
modules
|
22
|
-
end
|
23
|
-
|
24
|
-
def main_files folders
|
25
|
-
folders.map do |f|
|
26
|
-
r = determine_file_from_suggestion f
|
27
|
-
r ||= get_main_file_from_package "./#{f}/package.json", f
|
28
|
-
|
29
|
-
{ lib: r, module: f }
|
30
|
-
end.flatten.compact
|
31
|
-
end
|
32
|
-
|
33
|
-
def determine_file_from_suggestion filename, folder = filename
|
34
|
-
file_search = filename.downcase
|
35
|
-
file_search << '.js' unless file_search =~ /\.js$/
|
36
|
-
|
37
|
-
path_order = [
|
38
|
-
"./#{folder}/pkg/#{file_search}",
|
39
|
-
"./#{folder}/#{file_search}",
|
40
|
-
"./#{folder}/lib/#{file_search}"
|
41
|
-
]
|
42
|
-
path_order.map do |p|
|
43
|
-
p if File.exist? p
|
44
|
-
end.flatten.compact.first
|
45
|
-
end
|
46
|
-
|
47
|
-
def get_main_file_from_package filename, folder
|
48
|
-
return unless File.exist? filename
|
49
|
-
json_string = File.open(filename).read
|
50
|
-
json = JSON.parse json_string
|
51
|
-
return unless json.has_key? "main"
|
52
|
-
main_file = json["main"]
|
53
|
-
determine_file_from_suggestion main_file, folder
|
54
|
-
end
|
55
|
-
|
56
|
-
def vendor_files modules
|
57
|
-
files = main_files modules
|
58
|
-
missing = files.map { |f| f[:lib].nil? ? f[:module] : nil }.compact
|
59
|
-
|
60
|
-
puts "missing #{missing.length} lib files: #{missing.inspect}" unless missing.empty?
|
61
|
-
|
62
|
-
path = "./vendor/assets/javascripts/"
|
63
|
-
Pathname.new(path).mkpath()
|
64
|
-
files.each do |info|
|
65
|
-
FileUtils.cp(info[:lib], "#{path}#{info[:module]}.js") if info[:lib]
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
def update_modules modules
|
70
|
-
modules.each do |mod|
|
71
|
-
`cd ./#{mod} && git pull origin master`
|
72
|
-
`cd ./#{mod} && ./build` if File.exist? "./#{mod}/build"
|
73
|
-
end
|
74
|
-
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: konacha-chai-matchers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0
|
5
|
+
version: 0.1.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Matthijs Groen
|
@@ -29,8 +29,11 @@ files:
|
|
29
29
|
- LICENSE
|
30
30
|
- README.md
|
31
31
|
- Rakefile
|
32
|
+
- VERSIONS
|
32
33
|
- konacha-chai-matchers.gemspec
|
33
34
|
- lib/konacha-chai-matchers.rb
|
35
|
+
- lib/konacha-chai-matchers/collector.rb
|
36
|
+
- lib/konacha-chai-matchers/library.rb
|
34
37
|
- lib/konacha-chai-matchers/version.rb
|
35
38
|
- tasks/update.rb
|
36
39
|
- vendor/assets/javascripts/chai-as-promised.js
|