nutella_framework 0.3.1 → 0.4.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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/README.md +3 -4
  4. data/VERSION +1 -1
  5. data/data/startup +3 -3
  6. data/framework_components/example_framework_interface/dandelion-flowers-card.jpg +0 -0
  7. data/framework_components/example_framework_interface/index.html +18 -0
  8. data/framework_components/main_interface/main_interface_bot.rb +183 -0
  9. data/framework_components/main_interface/public/index.html +54 -0
  10. data/framework_components/main_interface/views/index.erb +63 -0
  11. data/framework_components/order.json.example +6 -0
  12. data/framework_components/runs_list_bot/app_runs_list_bot.rb +15 -0
  13. data/lib/{core/commands → commands}/broker.rb +2 -2
  14. data/lib/{core/commands → commands}/checkup.rb +2 -2
  15. data/lib/commands/compile.rb +13 -0
  16. data/lib/commands/dependencies.rb +13 -0
  17. data/lib/commands/help.rb +35 -0
  18. data/lib/{core/commands → commands}/install.rb +19 -15
  19. data/lib/commands/meta/command.rb +19 -0
  20. data/lib/commands/meta/run_command.rb +114 -0
  21. data/lib/{core → commands/meta}/template_command.rb +1 -1
  22. data/lib/commands/new.rb +60 -0
  23. data/lib/commands/runs.rb +54 -0
  24. data/lib/commands/start.rb +321 -0
  25. data/lib/commands/stop.rb +101 -0
  26. data/lib/{core/commands → commands}/template.rb +59 -39
  27. data/lib/config/current_app_utils.rb +51 -0
  28. data/lib/config/persisted_hash.rb +14 -12
  29. data/lib/config/runlist.rb +116 -16
  30. data/lib/{cli → core}/nutella_cli.rb +1 -1
  31. data/lib/core/nutella_core.rb +2 -6
  32. data/lib/nutella_framework.rb +5 -3
  33. data/lib/nutella_lib_framework/api.rb +333 -0
  34. data/lib/tmux/tmux.rb +76 -0
  35. data/nutella_framework.gemspec +42 -29
  36. data/test/commands/test_cmd_cli_params_parsing.rb +56 -0
  37. data/test/commands/test_command_template.rb +31 -0
  38. data/test/config/test_current_app_utils.rb +34 -0
  39. data/test/config/test_persisted_hash.rb +48 -0
  40. data/test/config/test_runlist.rb +15 -23
  41. data/test/framework_apis/test_framework_api.rb +74 -0
  42. metadata +74 -27
  43. data/actors/main_interface/main_interface_bot.rb +0 -163
  44. data/actors/main_interface/public/index.html +0 -51
  45. data/actors/main_interface/views/index.erb +0 -45
  46. data/lib/config/current_project.rb +0 -58
  47. data/lib/core/command.rb +0 -12
  48. data/lib/core/commands/compile.rb +0 -21
  49. data/lib/core/commands/dependencies.rb +0 -21
  50. data/lib/core/commands/help.rb +0 -28
  51. data/lib/core/commands/new.rb +0 -60
  52. data/lib/core/commands/runs.rb +0 -52
  53. data/lib/core/commands/start.rb +0 -271
  54. data/lib/core/commands/stop.rb +0 -100
  55. data/lib/core/run_command.rb +0 -106
  56. data/lib/core/tmux.rb +0 -38
  57. data/test/config/test_config.rb +0 -48
  58. data/test/config/test_project.rb +0 -34
  59. data/test/test_run_command.rb +0 -54
  60. /data/{actors → framework_components}/main_interface/startup +0 -0
  61. /data/{actors → framework_components}/main_interface/views/not_found_404.erb +0 -0
data/lib/core/tmux.rb DELETED
@@ -1,38 +0,0 @@
1
- module Nutella
2
-
3
- class Tmux
4
-
5
- def initialize( run_id )
6
- @run_id = run_id
7
- end
8
-
9
- def new_bot_window( bot )
10
- if defined? @sessions
11
- # If a session already exists,
12
- # simply create a new window for 'bot'.
13
- # -k destroys the window if it can't be created
14
- # Print info about creation of window
15
- `tmux new-window -kP -n #{bot} &> /dev/null`
16
- @sessions.push bot
17
- else
18
- # If there is no sessions, let's create one and, at the same time, create a new window for the bot
19
- `tmux new-session -d -s #{@run_id} -n #{bot} &> /dev/null`
20
- @sessions = [bot]
21
- end
22
- # Select window
23
- `tmux select-window -t #{@run_id}:#{@sessions.length-1} &> /dev/null`
24
- # Start bot
25
- `tmux send-keys "cd bots/#{bot};./startup #{@run_id} #{Nutella.config['broker']}" C-m`
26
- end
27
-
28
- def self.kill_session( run_id )
29
- `tmux kill-session -t #{run_id} &> /dev/null`
30
- end
31
-
32
- def self.session_exist?( run_id )
33
- system( "tmux has-session -t #{run_id} &> /dev/null" )
34
- end
35
-
36
- end
37
-
38
- end
@@ -1,48 +0,0 @@
1
- require 'helper'
2
-
3
- module Nutella
4
-
5
- class TestNutellaConfig < MiniTest::Test
6
-
7
- def setup
8
- Nutella.config.send(:remove_file)
9
- end
10
-
11
-
12
- should 'set a key value' do
13
- assert_equal 'value1', Nutella.config['key1']='value1'
14
- end
15
-
16
- should 'return \'nil\' if a key doesn\'t exist' do
17
- assert_nil Nutella.config['fakekey']
18
- end
19
-
20
- should 'return the value associated with a key whenever that key exists' do
21
- Nutella.config['key2']='value2'
22
- assert_equal 'value2', Nutella.config['key2']
23
- end
24
-
25
- should 'retun true if a key exists' do
26
- Nutella.config['key3']='value3'
27
- assert Nutella.config.has_key?('key3')
28
- end
29
-
30
- should 'retun false if a key doens\'t exist' do
31
- refute Nutella.config.has_key?('key4')
32
- end
33
-
34
- should 'access nested hashes' do
35
- Nutella.config['key5']={'k55' => 'v55'}
36
- assert_equal 'v55', Nutella.config['key5']['k55']
37
- end
38
-
39
-
40
- def teardown
41
- Nutella.config.send(:remove_file)
42
- end
43
-
44
- end
45
-
46
- end
47
-
48
-
@@ -1,34 +0,0 @@
1
- require 'helper'
2
-
3
- module Nutella
4
-
5
- class TestProject < MiniTest::Test
6
-
7
- def setup
8
- Dir.chdir NUTELLA_HOME
9
- Nutella.execute_command( 'new', ['test_project'] )
10
- Dir.chdir "#{NUTELLA_HOME}test_project"
11
- end
12
-
13
-
14
- should 'return true if the dir is a nutella project' do
15
- assert Nutella.current_project.exist?
16
- end
17
-
18
- should 'return false if the dir is not a nutella project' do
19
- Dir.chdir NUTELLA_HOME
20
- refute Nutella.current_project.exist?
21
- end
22
-
23
- should 'return the correct version of nutella as read from the project configuration file' do
24
- assert_equal File.open("#{NUTELLA_HOME}VERSION", "rb").read, Nutella.current_project.config['nutella_version']
25
- end
26
-
27
-
28
- def teardown
29
- FileUtils.rm_rf "#{NUTELLA_HOME}test_project"
30
- Dir.chdir NUTELLA_HOME
31
- end
32
-
33
- end
34
- end
@@ -1,54 +0,0 @@
1
- require 'helper'
2
-
3
- module Nutella
4
-
5
- class TestRunCommand < MiniTest::Test
6
-
7
- @@run_cmd = RunCommand.new
8
-
9
-
10
- should 'parse app long argument' do
11
- params = @@run_cmd.send( :extract_parameters, ['--with=bot1,bot2,bot3'] )
12
- assert_equal ['bot1', 'bot2', 'bot3'], params[:with]
13
- end
14
-
15
- should 'parse without long argument' do
16
- params = @@run_cmd.send( :extract_parameters, ['--without=botA,botB,botC'] )
17
- assert_equal ['botA', 'botB', 'botC'], params[:without]
18
- end
19
-
20
- should 'parse with long argument' do
21
- params = @@run_cmd.send( :extract_parameters, ['--with=botX,botY,botZ'] )
22
- assert_equal ['botX', 'botY', 'botZ'], params[:with]
23
- end
24
-
25
- should 'parse one short argument' do
26
- params = @@run_cmd.send( :extract_parameters, ['-w=bot1,bot2,bot3'] )
27
- assert_equal ['bot1', 'bot2', 'bot3'], params[:with]
28
- end
29
-
30
- should 'parse two long arguments' do
31
- params = @@run_cmd.send( :extract_parameters, ['--with=bot1,bot2,bot3', '--without=botA,botB,botC'] )
32
- assert_equal ['bot1', 'bot2', 'bot3'], params[:with]
33
- assert_equal ['botA', 'botB', 'botC'], params[:without]
34
- end
35
-
36
- should 'parse two short arguments' do
37
- params = @@run_cmd.send( :extract_parameters, ['-wo=bot1,bot2,bot3', '-w=botA,botB,botC'] )
38
- assert_equal ['bot1', 'bot2', 'bot3'], params[:without]
39
- assert_equal ['botA', 'botB', 'botC'], params[:with]
40
- end
41
-
42
- should 'parse one short and one long argument' do
43
- params = @@run_cmd.send( :extract_parameters, ['--with=bot1,bot2,bot3', '-wo=botA,botB,botC'] )
44
- assert_equal ['bot1', 'bot2', 'bot3'], params[:with]
45
- assert_equal ['botA', 'botB', 'botC'], params[:without]
46
- end
47
-
48
- should 'raise an exception when trying to parse params that do not exist' do
49
- assert_raises (Slop::UnknownOption) { @@run_cmd.send( :extract_parameters, ['--wit=bot1,bot2,bot3', '-o=botA,botB,botC'] ) }
50
- end
51
-
52
- end
53
-
54
- end