diggit 2.0.0 → 2.0.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -0
- data/README.md +3 -1
- data/bin/dgit +59 -32
- data/lib/dgit.rb +19 -1
- data/lib/dgit/core.rb +191 -98
- data/lib/dgit/log.rb +62 -0
- data/lib/dgit/plugins.rb +101 -8
- data/lib/dgit/version.rb +19 -1
- data/plugins/addon/db.rb +39 -0
- data/plugins/addon/out.rb +49 -0
- data/plugins/addon/r.rb +35 -0
- data/plugins/analysis/cloc.rb +42 -0
- data/spec/core_spec.rb +36 -6
- data/spec/dgit/plugins/addon/test_addon.rb +18 -0
- data/spec/dgit/plugins/analysis/duplicate_analysis.rb +28 -0
- data/spec/dgit/plugins/analysis/my_module/duplicate_analysis.rb +30 -0
- data/spec/dgit/plugins/analysis/my_module/other_analysis.rb +30 -0
- data/spec/dgit/plugins/analysis/test_analysis.rb +18 -2
- data/spec/dgit/plugins/analysis/test_analysis_with_addon.rb +18 -0
- data/spec/dgit/plugins/analysis/test_analysis_with_error.rb +19 -1
- data/spec/dgit/plugins/join/test_join.rb +18 -0
- data/spec/dgit/plugins/join/test_join_with_addon.rb +18 -0
- data/spec/spec_helper.rb +18 -0
- metadata +39 -17
- data/lib/dgit/formatador.rb +0 -31
data/lib/dgit/log.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of Diggit.
|
4
|
+
#
|
5
|
+
# Diggit is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Diggit is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with Diggit. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
# Copyright 2015 Jean-Rémy Falleri <jr.falleri@gmail.com>
|
19
|
+
#
|
20
|
+
|
21
|
+
require 'formatador'
|
22
|
+
|
23
|
+
class Formatador
|
24
|
+
@level = :normal
|
25
|
+
|
26
|
+
class << self
|
27
|
+
attr_accessor :level
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.info(str)
|
31
|
+
Formatador.display_line(str) if visible(__method__)
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.debug(str)
|
35
|
+
Formatador.display_line(str) if visible(__method__)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.ok(str)
|
39
|
+
Formatador.display_line("[green]#{str}[/]") if visible(__method__)
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.warn(str)
|
43
|
+
Formatador.display_line("[yellow]#{str}[/]") if visible(__method__)
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.error(str)
|
47
|
+
Formatador.display_line("[red]#{str}[/]") if visible(__method__)
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.visible(method)
|
51
|
+
target = method.to_sym
|
52
|
+
if target == :ok || target == :error || target == :info
|
53
|
+
true
|
54
|
+
elsif (target == :warn || target == :debug) && level == :fine
|
55
|
+
true
|
56
|
+
else
|
57
|
+
false
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
Log = Formatador
|
data/lib/dgit/plugins.rb
CHANGED
@@ -1,8 +1,31 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of Diggit.
|
4
|
+
#
|
5
|
+
# Diggit is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Diggit is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with Diggit. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
# Copyright 2015 Jean-Rémy Falleri <jr.falleri@gmail.com>
|
19
|
+
#
|
2
20
|
|
3
21
|
require_relative 'core'
|
4
22
|
|
5
23
|
module Diggit
|
24
|
+
# Base class for plugins. They have associated options.
|
25
|
+
#
|
26
|
+
# @abstract Abstract superclass for all plugins.
|
27
|
+
# @!attribute [r] options
|
28
|
+
# @return [Hash<String, Object>] the hash of options.
|
6
29
|
class Plugin
|
7
30
|
attr_reader :options
|
8
31
|
|
@@ -25,6 +48,15 @@ module Diggit
|
|
25
48
|
end
|
26
49
|
end
|
27
50
|
|
51
|
+
# Base class for analyses and joins. Runnables can be runned or cleaned.
|
52
|
+
# These methods have to be implemented in the subclasses.
|
53
|
+
# Addons can be made available to a runnable through a call to {.require\_addons}.
|
54
|
+
# Addons can be accessed through the addons attribute, and they contain
|
55
|
+
# automatically methods that has names of their addons.
|
56
|
+
# @see Addon
|
57
|
+
# @abstract Abstract superclass for analysis and joins.
|
58
|
+
# @!attribute [r] addons
|
59
|
+
# @return [Hash<String, Addon>] the hash of addons.
|
28
60
|
class Runnable < Plugin
|
29
61
|
attr_reader :addons
|
30
62
|
|
@@ -35,22 +67,57 @@ module Diggit
|
|
35
67
|
@addons.each_key { |a| self.class.class_eval { define_method(a) { return @addons[a] } } }
|
36
68
|
end
|
37
69
|
|
70
|
+
# Run the runnable.
|
71
|
+
# @abstract This method must be overrided.
|
72
|
+
# @return [void]
|
38
73
|
def run
|
39
74
|
end
|
40
75
|
|
76
|
+
# Clean the runnable.
|
77
|
+
# @abstract This method must be overrided.
|
78
|
+
# @return [void]
|
41
79
|
def clean
|
42
80
|
end
|
43
81
|
|
82
|
+
# Add an addon as a required addon.
|
83
|
+
#
|
84
|
+
# @param names Array<String> the names of addons to require.
|
85
|
+
# They correspond to the name of their class with underscore case.
|
86
|
+
# @return [void]
|
87
|
+
def self.require_addons(*names)
|
88
|
+
@required_addons = names
|
89
|
+
end
|
90
|
+
|
44
91
|
def self.required_addons
|
45
92
|
return [] if @required_addons.nil?
|
46
93
|
@required_addons
|
47
94
|
end
|
48
|
-
|
49
|
-
def self.require_addons(*names)
|
50
|
-
@required_addons = names
|
51
|
-
end
|
52
95
|
end
|
53
96
|
|
97
|
+
# Base class for joins. Joins are applied on each source that has been:
|
98
|
+
# 1. succesfully cloned,
|
99
|
+
# 2. has been analyzed by the required analyses.
|
100
|
+
# Required analyses are added with a call to {.require\_analyses}.
|
101
|
+
# They can access addons through the addons attribute or with a method having the addon name.
|
102
|
+
# @see Runnable
|
103
|
+
# @abstract Subclass and override run and clean to implement a custom join class.
|
104
|
+
# @!attribute [rw] sources
|
105
|
+
# @return [Array<Source>] the sources to be joined.
|
106
|
+
# @example A sample join using an addon.
|
107
|
+
# class JoinWithAddon < Diggit::Join
|
108
|
+
# require_addons "db"
|
109
|
+
#
|
110
|
+
# def run
|
111
|
+
# db.do_something
|
112
|
+
# puts @options
|
113
|
+
# puts @sources
|
114
|
+
# puts "Runned!"
|
115
|
+
# end
|
116
|
+
#
|
117
|
+
# def clean
|
118
|
+
# puts "Cleaned!"
|
119
|
+
# end
|
120
|
+
# end
|
54
121
|
class Join < Runnable
|
55
122
|
attr_accessor :sources
|
56
123
|
|
@@ -59,16 +126,42 @@ module Diggit
|
|
59
126
|
@sources = []
|
60
127
|
end
|
61
128
|
|
129
|
+
# Add an analysis as a required analysis.
|
130
|
+
#
|
131
|
+
# @param names Array<String> the names of analyses to require.
|
132
|
+
# They correspond to the name of their class with underscore case.
|
133
|
+
# @return [void]
|
134
|
+
def self.require_analyses(*names)
|
135
|
+
@required_analyses = names
|
136
|
+
end
|
137
|
+
|
62
138
|
def self.required_analyses
|
63
139
|
return [] if @required_analyses.nil?
|
64
140
|
@required_analyses
|
65
141
|
end
|
66
|
-
|
67
|
-
def self.require_analyses(*names)
|
68
|
-
@required_analyses = names
|
69
|
-
end
|
70
142
|
end
|
71
143
|
|
144
|
+
# Base class for analyses. Diggit analyses are applied on each source that has been succesfully cloned.
|
145
|
+
# They can access the Diggit addons through the addons attribute.
|
146
|
+
# @see Runnable
|
147
|
+
# @abstract Subclass and override run and clean to implement a custom analysis class.
|
148
|
+
# @!attribute [rw] source
|
149
|
+
# @return [Source] the source to be analyzed.
|
150
|
+
# @example A sample analysis using an addon
|
151
|
+
# class AnalysisWithAddon < Diggit::Analysis
|
152
|
+
# require_addons "db"
|
153
|
+
#
|
154
|
+
# def run
|
155
|
+
# db.do_something
|
156
|
+
# puts @options
|
157
|
+
# puts @source
|
158
|
+
# puts "Runned!"
|
159
|
+
# end
|
160
|
+
#
|
161
|
+
# def clean
|
162
|
+
# puts "Cleaned!"
|
163
|
+
# end
|
164
|
+
# end
|
72
165
|
class Analysis < Runnable
|
73
166
|
attr_accessor :source
|
74
167
|
|
data/lib/dgit/version.rb
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of Diggit.
|
4
|
+
#
|
5
|
+
# Diggit is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Diggit is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with Diggit. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
# Copyright 2015 Jean-Rémy Falleri <jr.falleri@gmail.com>
|
19
|
+
#
|
2
20
|
|
3
21
|
module Diggit
|
4
|
-
VERSION = "2.0.
|
22
|
+
VERSION = "2.0.1"
|
5
23
|
end
|
data/plugins/addon/db.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of Diggit.
|
4
|
+
#
|
5
|
+
# Diggit is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Diggit is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with Diggit. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
# Copyright 2015 Jean-Rémy Falleri <jr.falleri@gmail.com>
|
19
|
+
#
|
20
|
+
|
21
|
+
require 'mongo'
|
22
|
+
|
23
|
+
# A MongoDB addon for Diggit. The name of this addon is :db.
|
24
|
+
# This addon might use an :mongo hash in the global options. In this
|
25
|
+
# hash, the :database key allows to configure the name of the database.
|
26
|
+
# @!attribute [r] db
|
27
|
+
# @return [Mongo::DB] the mongo database object.
|
28
|
+
class Db < Diggit::Addon
|
29
|
+
DEFAULT_URL = 'mongodb://127.0.0.1:27017/diggit'
|
30
|
+
|
31
|
+
attr_reader :client
|
32
|
+
|
33
|
+
def initialize(*args)
|
34
|
+
super
|
35
|
+
url = DEFAULT_URL
|
36
|
+
url = @options[:mongo][:url] if @options.key?(:mongo) && @options[:mongo].key?(:url)
|
37
|
+
@client = Mongo::Client.new(url)
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of Diggit.
|
4
|
+
#
|
5
|
+
# Diggit is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Diggit is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with Diggit. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
# Copyright 2015 Jean-Rémy Falleri <jr.falleri@gmail.com>
|
19
|
+
#
|
20
|
+
|
21
|
+
# A output addon for Diggit. The name of the addon is :output, and can be reached in the
|
22
|
+
# addons hash. This addon might use an :output hash in the global options. In this hash, the
|
23
|
+
# :out key allows to configure the name of the output folder and :tmp the name of the temporary output
|
24
|
+
# folder.
|
25
|
+
# @!attribute [r] out
|
26
|
+
# @return [String] the absolute path of the output folder.
|
27
|
+
# @!attribute [r] tmp
|
28
|
+
# @return [String] the absolute path of the temporary output folder.
|
29
|
+
class Out < Diggit::Addon
|
30
|
+
attr_reader :out, :tmp
|
31
|
+
|
32
|
+
DEFAULT_OUT = 'out'
|
33
|
+
DEFAULT_TMP = 'tmp'
|
34
|
+
|
35
|
+
def initialize(*args)
|
36
|
+
super
|
37
|
+
|
38
|
+
out = DEFAULT_OUT
|
39
|
+
out = @options[:output][:out] if @options.key?(:output) && @options[:output].key?(:out)
|
40
|
+
tmp = DEFAULT_TMP
|
41
|
+
tmp = @options[:output][:tmp] if @options.key?(:output) && @options[:output].key?(:tmp)
|
42
|
+
|
43
|
+
@out = File.absolute_path(out)
|
44
|
+
@tmp = File.absolute_path(tmp)
|
45
|
+
|
46
|
+
FileUtils.mkdir_p(@out) unless File.exist?(@out)
|
47
|
+
FileUtils.mkdir_p(@tmp) unless File.exist?(@tmp)
|
48
|
+
end
|
49
|
+
end
|
data/plugins/addon/r.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of Diggit.
|
4
|
+
#
|
5
|
+
# Diggit is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Diggit is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with Diggit. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
# Copyright 2015 Jean-Rémy Falleri <jr.falleri@gmail.com>
|
19
|
+
# Copyright 2015 Matthieu Foucault <foucaultmatthieu@gmail.com>
|
20
|
+
#
|
21
|
+
|
22
|
+
R = nil # fixing SIGPIPE error in some cases. See http://hfeild-software.blogspot.fr/2013/01/rinruby-woes.html
|
23
|
+
|
24
|
+
require "rinruby"
|
25
|
+
|
26
|
+
class R < Diggit::Addon
|
27
|
+
def initialize(*args)
|
28
|
+
super(args)
|
29
|
+
@r = RinRuby.new({ interactive: false, echo: true })
|
30
|
+
end
|
31
|
+
|
32
|
+
def method_missing(meth, *args, &block)
|
33
|
+
@r.send meth, *args, &block
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of Diggit.
|
4
|
+
#
|
5
|
+
# Diggit is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Diggit is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with Diggit. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
# Copyright 2015 Jean-Rémy Falleri <jr.falleri@gmail.com>
|
19
|
+
#
|
20
|
+
|
21
|
+
require 'yaml'
|
22
|
+
|
23
|
+
class Cloc < Diggit::Analysis
|
24
|
+
require_addons 'db'
|
25
|
+
|
26
|
+
def initialize(options)
|
27
|
+
super(options)
|
28
|
+
end
|
29
|
+
|
30
|
+
def run
|
31
|
+
cloc = `cloc . --progress-rate=0 --quiet --yaml`
|
32
|
+
return if cloc.empty?
|
33
|
+
yaml = YAML.load(cloc.lines[2..-1].join)
|
34
|
+
yaml.delete('header')
|
35
|
+
output = { source: @source.url, cloc: yaml }
|
36
|
+
db.client['cloc'].insert_one(output)
|
37
|
+
end
|
38
|
+
|
39
|
+
def clean
|
40
|
+
db.client['cloc'].find({ source: @source.url }).delete_one
|
41
|
+
end
|
42
|
+
end
|
data/spec/core_spec.rb
CHANGED
@@ -1,4 +1,22 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of Diggit.
|
4
|
+
#
|
5
|
+
# Diggit is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Diggit is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with Diggit. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
# Copyright 2015 Jean-Rémy Falleri <jr.falleri@gmail.com>
|
19
|
+
#
|
2
20
|
|
3
21
|
require 'spec_helper'
|
4
22
|
require 'fileutils'
|
@@ -39,6 +57,16 @@ RSpec.describe Diggit::Dig do
|
|
39
57
|
expect(analysis_instance.test_addon.foo).to eq("Foo.")
|
40
58
|
end
|
41
59
|
|
60
|
+
it "should load an analysis enlosed in a module" do
|
61
|
+
analysis = Diggit::Dig.it.plugin_loader.load_plugin("other_analysis", :analysis)
|
62
|
+
expect(analysis.to_s).to eq('MyModule::OtherAnalysis')
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should emit a warning in case of ambiguous analysis name" do
|
66
|
+
expect(Diggit::Dig.it.plugin_loader).to receive(:warn).with(/Ambiguous plugin name/)
|
67
|
+
Diggit::Dig.it.plugin_loader.load_plugin("duplicate_analysis", :analysis)
|
68
|
+
end
|
69
|
+
|
42
70
|
it "should load a join" do
|
43
71
|
join = Diggit::Dig.it.plugin_loader.load_plugin("test_join", :join)
|
44
72
|
expect(join.to_s).to eq('TestJoin')
|
@@ -80,21 +108,23 @@ RSpec.describe Diggit::Dig do
|
|
80
108
|
expect(Diggit::Dig.it.journal.sources_by_ids(0)[0].url).to eq TEST_URL
|
81
109
|
end
|
82
110
|
|
83
|
-
it "should perform analyses" do
|
111
|
+
it "should perform analyses in order" do
|
84
112
|
Diggit::Dig.it.config.add_analysis("test_analysis")
|
113
|
+
Diggit::Dig.it.config.add_analysis("test_analysis_with_addon")
|
85
114
|
Diggit::Dig.it.analyze
|
86
115
|
# expect(TestAnalysis.state).to eq("runned")
|
87
|
-
expect(Diggit::Dig.it.journal.sources_by_ids(0)[0].
|
116
|
+
expect(Diggit::Dig.it.journal.sources_by_ids(0)[0].all_analyses).to eq(%w(test_analysis test_analysis_with_addon))
|
88
117
|
Diggit::Dig.init("spec/dgit")
|
89
|
-
expect(Diggit::Dig.it.journal.sources_by_ids(0)[0].
|
118
|
+
expect(Diggit::Dig.it.journal.sources_by_ids(0)[0].all_analyses).to eq(%w(test_analysis test_analysis_with_addon))
|
90
119
|
end
|
91
120
|
|
92
121
|
it "should handle analyses with error" do
|
93
122
|
Diggit::Dig.it.config.add_analysis("test_analysis_with_error")
|
94
123
|
Diggit::Dig.it.analyze
|
95
|
-
|
96
|
-
expect(
|
97
|
-
expect(
|
124
|
+
src = Diggit::Dig.it.journal.sources_by_ids(0)[0]
|
125
|
+
expect(src.all_analyses).to include("test_analysis")
|
126
|
+
expect(src.error?).to be true
|
127
|
+
expect(src.error[:message]).to eq("Error!")
|
98
128
|
end
|
99
129
|
|
100
130
|
it "should perform joins" do
|