nutella_framework 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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