repla 0.4.0 → 0.5.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.
- checksums.yaml +4 -4
- data/lib/repla/dependencies/lib/controller.rb +22 -24
- data/lib/repla/dependencies/lib/model.rb +11 -8
- data/lib/repla/dependencies/lib/tester.rb +15 -15
- data/lib/repla/dependencies/lib/view.rb +19 -14
- data/lib/repla/dependencies.rb +25 -24
- data/lib/repla/lib/constants.rb +4 -4
- data/lib/repla/lib/controller.rb +1 -0
- data/lib/repla/lib/escape.rb +70 -0
- data/lib/repla/lib/module.rb +42 -59
- data/lib/repla/lib/view/javascript.rb +12 -31
- data/lib/repla/lib/view.rb +6 -7
- data/lib/repla/lib/window.rb +16 -12
- data/lib/repla/logger/test/lib/test_setup.rb +3 -2
- data/lib/repla/logger/test/lib/test_view_helper.rb +18 -19
- data/lib/repla/logger/test/tc_logger.rb +56 -56
- data/lib/repla/logger.rb +24 -23
- data/lib/repla/repl/lib/input_controller.rb +12 -13
- data/lib/repla/repl/lib/output_controller.rb +13 -14
- data/lib/repla/repl/lib/view.rb +23 -19
- data/lib/repla/repl.rb +37 -36
- data/lib/repla/resources/js/bullets/test/run_tests.rb +1 -1
- data/lib/repla/test/bundles/HelloWorld.wcplugin/Contents/Resources/hello_world.rb +1 -1
- data/lib/repla/test/bundles/Print.wcplugin/Contents/Resources/lib/controller.rb +16 -12
- data/lib/repla/test/bundles/Print.wcplugin/Contents/Resources/lib/view.rb +15 -9
- data/lib/repla/test/bundles/TestEnvironment.wcplugin/Contents/Resources/constants.rb +1 -1
- data/lib/repla/test/bundles/TestEnvironment.wcplugin/Contents/Resources/test_environment.rb +12 -17
- data/lib/repla/test/bundles/TestLog.wcplugin/Contents/Resources/test_log.rb +5 -5
- data/lib/repla/test/lib/helper.rb +5 -25
- data/lib/repla/test.rb +2 -2
- data/lib/repla.rb +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9d072ea3122cc808168f77e02aa527bee84b97f
|
4
|
+
data.tar.gz: 3425a55a09e166dd54b32d526d295ffff411a106
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b410101c334239ea91222c48ec893a4ee9187266a57e46748a4c64b6418bcda4778c11a35b8b27a030bdf4df4e54ce720ed8e3d921b5f514a3c65488d104e01
|
7
|
+
data.tar.gz: df7a9f1397e818791db811fbba2efff84a38b5c36e2b6f68c82f66eba1ce6f2b25c5a3996ae4740f46ad5e922c83a5f651f4bd14026f954ab6feed8b1065f6e6
|
@@ -2,33 +2,31 @@ require_relative 'tester'
|
|
2
2
|
require_relative 'model'
|
3
3
|
require_relative 'view'
|
4
4
|
|
5
|
-
module Repla
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
def missing_dependency(dependency)
|
14
|
-
name = dependency.name
|
15
|
-
type = self.class.string_for_type(dependency.type)
|
16
|
-
options = dependency.options
|
17
|
-
if options.has_key?(:installation_instructions)
|
18
|
-
installation_instructions = options[:installation_instructions]
|
19
|
-
end
|
20
|
-
@view.add_missing_dependency(name, type, installation_instructions)
|
21
|
-
end
|
5
|
+
module Repla
|
6
|
+
module Dependencies
|
7
|
+
# Dependencies controller
|
8
|
+
class Controller < Repla::Controller
|
9
|
+
def initialize
|
10
|
+
@view = View.new
|
11
|
+
end
|
22
12
|
|
23
|
-
|
13
|
+
def missing_dependency(dependency)
|
14
|
+
name = dependency.name
|
15
|
+
type = self.class.string_for_type(dependency.type)
|
16
|
+
options = dependency.options
|
17
|
+
if options.key?(:installation_instructions)
|
18
|
+
installation_instructions = options[:installation_instructions]
|
19
|
+
end
|
20
|
+
@view.add_missing_dependency(name, type, installation_instructions)
|
21
|
+
end
|
24
22
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
23
|
+
private_class_method def self.string_for_type(type)
|
24
|
+
case type
|
25
|
+
when :shell_command
|
26
|
+
return 'shell command'
|
27
|
+
end
|
28
|
+
nil
|
29
29
|
end
|
30
|
-
nil
|
31
30
|
end
|
32
|
-
|
33
31
|
end
|
34
32
|
end
|
@@ -1,10 +1,13 @@
|
|
1
|
-
module Repla
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
1
|
+
module Repla
|
2
|
+
module Dependencies
|
3
|
+
# Dependency
|
4
|
+
class Dependency
|
5
|
+
attr_reader :name, :type, :options
|
6
|
+
def initialize(name, type, options = {})
|
7
|
+
@name = name
|
8
|
+
@type = type
|
9
|
+
@options = options
|
10
|
+
end
|
11
|
+
end
|
9
12
|
end
|
10
13
|
end
|
@@ -1,19 +1,19 @@
|
|
1
|
-
module Repla
|
2
|
-
module
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
module Repla
|
2
|
+
module Dependencies
|
3
|
+
# Tester
|
4
|
+
module Tester
|
5
|
+
def self.check(name, type)
|
6
|
+
case type
|
7
|
+
when :shell_command
|
8
|
+
check_shell_command(name)
|
9
|
+
end
|
7
10
|
end
|
8
|
-
end
|
9
|
-
|
10
|
-
private
|
11
|
-
|
12
|
-
require 'shellwords'
|
13
|
-
def self.check_shell_command(name)
|
14
|
-
command = "type -a #{Shellwords.escape(name)} > /dev/null 2>&1"
|
15
|
-
system(command)
|
16
|
-
end
|
17
11
|
|
12
|
+
require 'shellwords'
|
13
|
+
private_class_method def self.check_shell_command(name)
|
14
|
+
command = "type -a #{Shellwords.escape(name)} > /dev/null 2>&1"
|
15
|
+
system(command)
|
16
|
+
end
|
17
|
+
end
|
18
18
|
end
|
19
19
|
end
|
@@ -1,19 +1,24 @@
|
|
1
|
-
module Repla
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
module Repla
|
2
|
+
module Dependencies
|
3
|
+
# Dependency view
|
4
|
+
class View < Repla::View
|
5
|
+
ROOT_ACCESS_DIRECTORY = File.join(File.dirname(__FILE__), '../../')
|
6
|
+
HTML_DIRECTORY = File.join(File.dirname(__FILE__), '../html/')
|
7
|
+
VIEW_TEMPLATE = File.join(HTML_DIRECTORY, 'index.html')
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
def initialize
|
10
|
+
super
|
11
|
+
self.root_access_directory_path = File.expand_path(
|
12
|
+
ROOT_ACCESS_DIRECTORY
|
13
|
+
)
|
14
|
+
load_file(VIEW_TEMPLATE)
|
15
|
+
end
|
13
16
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
+
ADD_MISSING_DEPENDENCY_FUNCTION = 'addMissingDependency'.freeze
|
18
|
+
def add_missing_dependency(name, type, installation_instructions = nil)
|
19
|
+
do_javascript_function(ADD_MISSING_DEPENDENCY_FUNCTION,
|
20
|
+
[name, type, installation_instructions])
|
21
|
+
end
|
17
22
|
end
|
18
23
|
end
|
19
24
|
end
|
data/lib/repla/dependencies.rb
CHANGED
@@ -1,33 +1,34 @@
|
|
1
1
|
require_relative '../repla'
|
2
2
|
|
3
|
-
module Repla
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
module Repla
|
4
|
+
module Dependencies
|
5
|
+
# Checks whether bundle dependencies are installed
|
6
|
+
class Checker
|
7
|
+
require_relative 'dependencies/lib/model'
|
8
|
+
require_relative 'dependencies/lib/controller'
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
def check_dependencies(dependencies)
|
11
|
+
passed = true
|
12
|
+
dependencies.each do |dependency|
|
13
|
+
dependency_passed = check(dependency)
|
14
|
+
passed = false unless dependency_passed
|
15
|
+
end
|
16
|
+
passed
|
17
|
+
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
19
|
+
def check(dependency)
|
20
|
+
name = dependency.name
|
21
|
+
type = dependency.type
|
22
|
+
passed = Tester.check(name, type)
|
23
|
+
controller.missing_dependency(dependency) unless passed
|
24
|
+
passed
|
25
|
+
end
|
24
26
|
|
25
|
-
|
27
|
+
private
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
+
def controller
|
30
|
+
@controller ||= Controller.new
|
31
|
+
end
|
29
32
|
end
|
30
|
-
|
31
33
|
end
|
32
|
-
|
33
34
|
end
|
data/lib/repla/lib/constants.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
module Repla
|
2
2
|
# Keys
|
3
|
-
PLUGIN_NAME_KEY = 'WC_PLUGIN_NAME'
|
4
|
-
SPLIT_ID_KEY = 'WC_SPLIT_ID'
|
5
|
-
WINDOW_ID_KEY = 'WC_WINDOW_ID'
|
3
|
+
PLUGIN_NAME_KEY = 'WC_PLUGIN_NAME'.freeze
|
4
|
+
SPLIT_ID_KEY = 'WC_SPLIT_ID'.freeze
|
5
|
+
WINDOW_ID_KEY = 'WC_WINDOW_ID'.freeze
|
6
6
|
|
7
7
|
# Directories
|
8
|
-
APPLESCRIPT_DIRECTORY = File.join(File.dirname(__FILE__),
|
8
|
+
APPLESCRIPT_DIRECTORY = File.join(File.dirname(__FILE__), '../../applescript')
|
9
9
|
end
|
data/lib/repla/lib/controller.rb
CHANGED
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'Shellwords'
|
2
|
+
|
3
|
+
# Escaping parameters
|
4
|
+
module Escape
|
5
|
+
# Escaping floats
|
6
|
+
module FloatEscape
|
7
|
+
def javascript_argument
|
8
|
+
to_s
|
9
|
+
end
|
10
|
+
end
|
11
|
+
# Escaping integers
|
12
|
+
module IntegerEscape
|
13
|
+
def javascript_argument
|
14
|
+
to_s
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# Escaping strings
|
19
|
+
module StringEscape
|
20
|
+
def javascript_argument
|
21
|
+
"'#{StringEscape.javascript_escape(self)}'"
|
22
|
+
end
|
23
|
+
|
24
|
+
def javascript_escape
|
25
|
+
StringEscape.javascript_escape(self)
|
26
|
+
end
|
27
|
+
|
28
|
+
def javascript_escape!
|
29
|
+
replace(StringEscape.javascript_escape(self))
|
30
|
+
end
|
31
|
+
|
32
|
+
def float?
|
33
|
+
true if Float(self)
|
34
|
+
rescue StandardError
|
35
|
+
false
|
36
|
+
end
|
37
|
+
|
38
|
+
def integer?
|
39
|
+
to_i.to_s == self
|
40
|
+
end
|
41
|
+
|
42
|
+
def shell_escape
|
43
|
+
StringEscape.shell_escape(self)
|
44
|
+
end
|
45
|
+
|
46
|
+
def shell_escape!
|
47
|
+
replace(StringEscape.shell_escape(self))
|
48
|
+
end
|
49
|
+
|
50
|
+
private_class_method def self.javascript_escape(string)
|
51
|
+
string.gsub('\\', '\\\\\\\\').gsub("\n", '\\\\n').gsub("'", "\\\\'")
|
52
|
+
end
|
53
|
+
|
54
|
+
private_class_method def self.shell_escape(string)
|
55
|
+
Shellwords.escape(string)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
refine String do
|
60
|
+
include StringEscape
|
61
|
+
end
|
62
|
+
|
63
|
+
refine Integer do
|
64
|
+
include IntegerEscape
|
65
|
+
end
|
66
|
+
|
67
|
+
refine Float do
|
68
|
+
include FloatEscape
|
69
|
+
end
|
70
|
+
end
|
data/lib/repla/lib/module.rb
CHANGED
@@ -1,72 +1,83 @@
|
|
1
1
|
require 'Shellwords'
|
2
|
+
require_relative 'escape'
|
3
|
+
|
4
|
+
# Repla
|
2
5
|
module Repla
|
3
|
-
|
6
|
+
using Escape
|
7
|
+
|
8
|
+
LOAD_PLUGIN_SCRIPT = File.join(APPLESCRIPT_DIRECTORY, 'load_plugin.scpt')
|
4
9
|
def self.load_plugin(path)
|
5
|
-
|
10
|
+
run_applescript(LOAD_PLUGIN_SCRIPT, [path])
|
6
11
|
end
|
7
12
|
|
8
|
-
EXISTS_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
13
|
+
EXISTS_SCRIPT = File.join(APPLESCRIPT_DIRECTORY, 'exists.scpt')
|
9
14
|
def self.application_exists
|
10
|
-
result =
|
11
|
-
result ==
|
15
|
+
result = run_applescript(EXISTS_SCRIPT)
|
16
|
+
result == 'true'
|
12
17
|
end
|
13
18
|
|
14
|
-
RUN_PLUGIN_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
19
|
+
RUN_PLUGIN_SCRIPT = File.join(APPLESCRIPT_DIRECTORY, 'run_plugin.scpt')
|
15
20
|
def self.run_plugin(name, directory = nil, arguments = nil)
|
16
21
|
parameters = [name]
|
17
22
|
parameters.push(directory) unless directory.nil?
|
18
23
|
parameters += arguments unless arguments.nil?
|
19
|
-
|
24
|
+
run_applescript(RUN_PLUGIN_SCRIPT, parameters)
|
20
25
|
end
|
21
|
-
|
22
|
-
RUN_PLUGIN_IN_SPLIT_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
26
|
+
|
27
|
+
RUN_PLUGIN_IN_SPLIT_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
28
|
+
'run_plugin_in_split.scpt')
|
23
29
|
def self.run_plugin_in_split(name, window_id, split_id)
|
24
30
|
parameters = [name, window_id, split_id]
|
25
|
-
|
31
|
+
run_applescript(RUN_PLUGIN_IN_SPLIT_SCRIPT, parameters)
|
26
32
|
end
|
27
33
|
|
28
|
-
WINDOW_ID_FOR_PLUGIN_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
34
|
+
WINDOW_ID_FOR_PLUGIN_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
35
|
+
'window_id_for_plugin.scpt')
|
29
36
|
def self.window_id_for_plugin(name)
|
30
|
-
|
37
|
+
run_applescript(WINDOW_ID_FOR_PLUGIN_SCRIPT, [name])
|
31
38
|
end
|
32
39
|
|
33
|
-
SPLIT_ID_IN_WINDOW_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
34
|
-
|
40
|
+
SPLIT_ID_IN_WINDOW_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
41
|
+
'split_id_in_window.scpt')
|
42
|
+
def self.split_id_in_window(window_id, plugin_name = nil)
|
35
43
|
arguments = [window_id]
|
36
|
-
arguments.push(
|
37
|
-
|
44
|
+
arguments.push(plugin_name) unless plugin_name.nil?
|
45
|
+
run_applescript(SPLIT_ID_IN_WINDOW_SCRIPT, arguments)
|
38
46
|
end
|
39
47
|
|
40
|
-
SPLIT_ID_IN_WINDOW_LAST_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
48
|
+
SPLIT_ID_IN_WINDOW_LAST_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
49
|
+
'split_id_in_window_last.scpt')
|
41
50
|
def self.split_id_in_window_last(window_id)
|
42
51
|
arguments = [window_id]
|
43
|
-
|
52
|
+
run_applescript(SPLIT_ID_IN_WINDOW_LAST_SCRIPT, arguments)
|
44
53
|
end
|
45
54
|
|
46
|
-
CREATE_WINDOW_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
55
|
+
CREATE_WINDOW_SCRIPT = File.join(APPLESCRIPT_DIRECTORY, 'create_window.scpt')
|
47
56
|
def self.create_window
|
48
|
-
|
57
|
+
run_applescript(CREATE_WINDOW_SCRIPT)
|
49
58
|
end
|
50
59
|
|
51
60
|
# Resources
|
52
61
|
|
53
|
-
RESOURCE_PATH_FOR_PLUGIN_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
62
|
+
RESOURCE_PATH_FOR_PLUGIN_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
63
|
+
'resource_path_for_plugin.scpt')
|
54
64
|
def self.resource_path_for_plugin(name)
|
55
|
-
|
65
|
+
run_applescript(RESOURCE_PATH_FOR_PLUGIN_SCRIPT, [name])
|
56
66
|
end
|
57
67
|
|
58
|
-
RESOURCE_URL_FOR_PLUGIN_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
68
|
+
RESOURCE_URL_FOR_PLUGIN_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
69
|
+
'resource_url_for_plugin.scpt')
|
59
70
|
def self.resource_url_for_plugin(name)
|
60
|
-
|
71
|
+
run_applescript(RESOURCE_URL_FOR_PLUGIN_SCRIPT, [name])
|
61
72
|
end
|
62
73
|
|
63
|
-
|
64
|
-
|
65
|
-
def self.run_applescript(script, arguments = nil)
|
74
|
+
private_class_method def self.run_applescript(script, arguments = nil)
|
66
75
|
command = "osascript #{script.shell_escape}"
|
67
76
|
|
68
77
|
if arguments
|
69
|
-
command +=
|
78
|
+
command += ' ' + arguments.compact.map(&:to_s).map do |x|
|
79
|
+
x.shell_escape
|
80
|
+
end.join(' ')
|
70
81
|
end
|
71
82
|
|
72
83
|
result = `#{command}`
|
@@ -74,37 +85,9 @@ module Repla
|
|
74
85
|
result.chomp!
|
75
86
|
|
76
87
|
return nil if result.empty?
|
77
|
-
return result.to_i if result.
|
78
|
-
return result.to_f if result.
|
79
|
-
|
80
|
-
result
|
81
|
-
end
|
82
|
-
|
83
|
-
class ::String
|
84
|
-
def is_float?
|
85
|
-
true if Float(self) rescue false
|
86
|
-
end
|
87
|
-
|
88
|
-
def is_integer?
|
89
|
-
self.to_i.to_s == self
|
90
|
-
end
|
88
|
+
return result.to_i if result.integer?
|
89
|
+
return result.to_f if result.float?
|
91
90
|
|
92
|
-
|
93
|
-
Shellwords.escape(self)
|
94
|
-
end
|
95
|
-
|
96
|
-
def shell_escape!
|
97
|
-
replace(shell_escape)
|
98
|
-
end
|
99
|
-
|
100
|
-
end
|
101
|
-
|
102
|
-
class ::Float
|
103
|
-
alias_method :javascript_argument, :to_s
|
104
|
-
end
|
105
|
-
|
106
|
-
class ::Integer
|
107
|
-
alias_method :javascript_argument, :to_s
|
91
|
+
result
|
108
92
|
end
|
109
|
-
|
110
93
|
end
|
@@ -1,6 +1,10 @@
|
|
1
|
+
require_relative '../escape'
|
2
|
+
|
3
|
+
# Repla
|
1
4
|
module Repla
|
5
|
+
using Escape
|
6
|
+
# View
|
2
7
|
class View < Window
|
3
|
-
|
4
8
|
def do_javascript_function(function, arguments = nil)
|
5
9
|
javascript = self.class.javascript_function(function, arguments)
|
6
10
|
do_javascript(javascript)
|
@@ -11,41 +15,18 @@ module Repla
|
|
11
15
|
function << '('
|
12
16
|
|
13
17
|
if arguments
|
14
|
-
arguments.each
|
15
|
-
if argument
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
18
|
+
arguments.each do |argument|
|
19
|
+
function << if argument
|
20
|
+
argument.javascript_argument
|
21
|
+
else
|
22
|
+
'null'
|
23
|
+
end
|
20
24
|
function << ', '
|
21
|
-
|
25
|
+
end
|
22
26
|
function = function[0...-2]
|
23
27
|
end
|
24
28
|
|
25
29
|
function << ');'
|
26
30
|
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
class ::Fixnum
|
31
|
-
def javascript_argument
|
32
|
-
"#{self}"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
class ::String
|
37
|
-
def javascript_argument
|
38
|
-
"'#{self.javascript_escape}'"
|
39
|
-
end
|
40
|
-
|
41
|
-
def javascript_escape
|
42
|
-
self.gsub('\\', "\\\\\\\\").gsub("\n", "\\\\n").gsub("'", "\\\\'")
|
43
|
-
end
|
44
|
-
|
45
|
-
def javascript_escape!
|
46
|
-
replace(self.javascript_escape)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
31
|
end
|
51
32
|
end
|
data/lib/repla/lib/view.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
require_relative
|
2
|
-
require_relative
|
3
|
-
require_relative
|
1
|
+
require_relative 'window'
|
2
|
+
require_relative 'view/javascript'
|
3
|
+
require_relative 'view/resources'
|
4
4
|
|
5
5
|
module Repla
|
6
|
+
# View
|
6
7
|
class View < Window
|
7
|
-
|
8
8
|
# Properties
|
9
9
|
def initialize(window_id = nil, view_id = nil)
|
10
10
|
super(window_id)
|
@@ -12,16 +12,15 @@ module Repla
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def view_id
|
15
|
-
@view_id ||= ENV.
|
15
|
+
@view_id ||= ENV.key?(SPLIT_ID_KEY) ? ENV[SPLIT_ID_KEY] : split_id
|
16
16
|
end
|
17
17
|
|
18
18
|
private
|
19
|
-
|
19
|
+
|
20
20
|
# Web
|
21
21
|
|
22
22
|
def arguments_with_target(arguments)
|
23
23
|
super(arguments).push(view_id)
|
24
24
|
end
|
25
|
-
|
26
25
|
end
|
27
26
|
end
|
data/lib/repla/lib/window.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
module Repla
|
2
|
+
# Window
|
2
3
|
class Window
|
3
|
-
require_relative
|
4
|
+
require_relative 'constants'
|
4
5
|
|
5
6
|
attr_accessor :root_access_directory_path
|
6
7
|
def initialize(window_id = nil)
|
@@ -10,13 +11,16 @@ module Repla
|
|
10
11
|
# Properties
|
11
12
|
|
12
13
|
def window_id
|
13
|
-
|
14
|
+
key = WINDOW_ID_KEY
|
15
|
+
@window_id ||= ENV.key?(key) ? ENV[key] : Repla.create_window
|
14
16
|
end
|
15
17
|
|
16
18
|
# Web
|
17
19
|
|
18
|
-
LOAD_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
19
|
-
LOADWITHROOTACCESSDIRECTORY_SCRIPT = File.join(
|
20
|
+
LOAD_SCRIPT = File.join(APPLESCRIPT_DIRECTORY, 'load.scpt')
|
21
|
+
LOADWITHROOTACCESSDIRECTORY_SCRIPT = File.join(
|
22
|
+
APPLESCRIPT_DIRECTORY, 'load_with_root_access_directory.scpt'
|
23
|
+
)
|
20
24
|
def load_file(file)
|
21
25
|
arguments = [file]
|
22
26
|
|
@@ -30,41 +34,41 @@ module Repla
|
|
30
34
|
run_script(script, arguments)
|
31
35
|
end
|
32
36
|
|
33
|
-
DOJAVASCRIPT_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
37
|
+
DOJAVASCRIPT_SCRIPT = File.join(APPLESCRIPT_DIRECTORY, 'do_javascript.scpt')
|
34
38
|
def do_javascript(javascript)
|
35
39
|
run_script(DOJAVASCRIPT_SCRIPT, [javascript])
|
36
40
|
end
|
37
41
|
|
38
|
-
READ_FROM_STANDARD_INPUT_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
42
|
+
READ_FROM_STANDARD_INPUT_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
43
|
+
'read_from_standard_input.scpt')
|
39
44
|
def read_from_standard_input(text)
|
40
45
|
run_script(READ_FROM_STANDARD_INPUT_SCRIPT, [text])
|
41
46
|
end
|
42
47
|
|
43
48
|
# Window
|
44
49
|
|
45
|
-
CLOSEWINDOW_SCRIPT = File.join(APPLESCRIPT_DIRECTORY,
|
50
|
+
CLOSEWINDOW_SCRIPT = File.join(APPLESCRIPT_DIRECTORY, 'close_window.scpt')
|
46
51
|
def close
|
47
|
-
Repla
|
52
|
+
Repla.run_applescript(CLOSEWINDOW_SCRIPT, [window_id])
|
48
53
|
end
|
49
54
|
|
50
55
|
def split_id
|
51
|
-
Repla
|
56
|
+
Repla.split_id_in_window(window_id)
|
52
57
|
end
|
53
58
|
|
54
59
|
def split_id_last
|
55
|
-
Repla
|
60
|
+
Repla.split_id_in_window_last(window_id)
|
56
61
|
end
|
57
62
|
|
58
63
|
private
|
59
64
|
|
60
65
|
def run_script(script, arguments = [])
|
61
66
|
arguments = arguments_with_target(arguments)
|
62
|
-
Repla
|
67
|
+
Repla.run_applescript(script, arguments)
|
63
68
|
end
|
64
69
|
|
65
70
|
def arguments_with_target(arguments)
|
66
71
|
arguments.push(window_id)
|
67
72
|
end
|
68
|
-
|
69
73
|
end
|
70
74
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require_relative
|
1
|
+
require_relative '../../../test'
|
2
2
|
require Repla::Test::HELPER_FILE
|
3
3
|
require Repla::Test::REPLA_FILE
|
4
4
|
|
@@ -7,4 +7,5 @@ TEST_MESSAGE_JAVASCRIPT = 'document.body.lastChild.innerText'.freeze
|
|
7
7
|
TEST_MESSAGE_COUNT_JAVASCRIPT = 'document.body.children.length'.freeze
|
8
8
|
|
9
9
|
TEST_JAVASCRIPT_DIRECTORY = File.join(File.dirname(__FILE__), '..', 'js')
|
10
|
-
TEST_JAVASCRIPT_FILE = File.join(TEST_JAVASCRIPT_DIRECTORY,
|
10
|
+
TEST_JAVASCRIPT_FILE = File.join(TEST_JAVASCRIPT_DIRECTORY,
|
11
|
+
'test_view_helper.js')
|