caracara 0.2.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d50c26f77f84e931ddaebccefcf04be5719db1d2
4
- data.tar.gz: a47824aa31549922404bbf7e8db756d1a5863d0b
3
+ metadata.gz: 1e6b75d677c18a7a16ae131f4db608651df8e9af
4
+ data.tar.gz: e166ae41ca6419c679fa90a5268de608bcbfc66e
5
5
  SHA512:
6
- metadata.gz: 99d8b2ca1a4dbf51238c9afab8bac90975cf56acb54be4c8c2de8d8c8a8b7207ec16b47f14352a73443cf0482a32b377e797e1badba2f7c273f8c884519d252c
7
- data.tar.gz: becec1267fed45c615b97e4c0f65b213d96bee7d89ee415d84063bf11b3d39e7a4b2bfccb5f1e39ee75b078cbf2b4834ee9ad037c74fd653d24edf9013abc247
6
+ metadata.gz: c3be139eb8c16ce3b4d20768b3a7ded1f7331b9d80c75b71694782c4198e53cc7180334400e1cb98a5e35659ef425ab46daf7b1095b45021a2d6ab24879a40c6
7
+ data.tar.gz: 573a95094a1d476209cffb7a3b4f2063cd7988fdfc1fc5afd46c5ab1430b4095bb07f5cae26097a6e0a5e4eef4e2366f7790a3471c0baaef07ededba182379d2
data/Gemfile.lock CHANGED
@@ -1,16 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- caracara (0.1.0)
4
+ caracara (0.2.0)
5
5
  mustache (~> 1.0)
6
- rake
7
6
 
8
7
  GEM
9
8
  remote: https://rubygems.org/
10
9
  specs:
11
10
  diff-lcs (1.2.5)
12
11
  mustache (1.0.2)
13
- rake (10.4.2)
14
12
  rspec (3.0.0)
15
13
  rspec-core (~> 3.0.0)
16
14
  rspec-expectations (~> 3.0.0)
data/lib/caracara/task.rb CHANGED
@@ -59,7 +59,12 @@ module Caracara
59
59
  @steps = [] if @steps.nil?
60
60
 
61
61
  # Add a new step
62
- @steps.push cmd
62
+ return @steps.push(cmd) if cmd.is_a?(String)
63
+
64
+ # If it is another task
65
+ cmd.steps.each do |task_cmd|
66
+ @steps.push task_cmd
67
+ end
63
68
  end
64
69
 
65
70
  # Initialize a task
@@ -1,5 +1,5 @@
1
1
  module Caracara
2
2
  def self.version
3
- '0.2.0'
3
+ '0.3.0'
4
4
  end
5
5
  end
@@ -1,23 +1,24 @@
1
1
  # Include the helper
2
2
  require 'spec_helper'
3
3
 
4
+ class SharedTask < Caracara::Task
5
+ step 'echo "Im doing some tasks with Caracara"'
6
+ end
7
+
4
8
  # Class definitions
5
9
  class TaskSpec < Caracara::Task
10
+ step SharedTask
11
+
6
12
  step 'mkdir {{folder.name}}/'
7
13
  step 'chown -R {{user}} {{folder.name}}'
8
14
  step 'chmod -R {{folder.permission}} {{folder.name}}/'
9
15
 
10
16
  dir '{{folder.name}}' do
17
+ step SharedTask
11
18
  step 'echo "{{text}}" > file.txt'
12
19
  end
13
20
  end
14
21
 
15
- class TaskTwoSpec < Caracara::Task
16
- step 'mkdir {{folder.name}}/'
17
- step 'chown -R {{user}} {{folder.name}}'
18
- step 'chmod -R {{folder.permission}} {{folder.name}}/'
19
- end
20
-
21
22
  # Tests
22
23
  describe 'Task' do
23
24
  # Initialize the task
@@ -35,10 +36,11 @@ describe 'Task' do
35
36
  steps = task.steps
36
37
 
37
38
  # Assertions
38
- expect(steps[0]).to eq('mkdir {{folder.name}}/')
39
- expect(steps[1]).to eq('chown -R {{user}} {{folder.name}}')
40
- expect(steps[2]).to eq('chmod -R {{folder.permission}} {{folder.name}}/')
41
- expect(steps[3]).to eq('(cd {{folder.name}} && (echo "{{text}}" > file.txt))')
39
+ expect(steps[0]).to eq("echo \"Im doing some tasks with Caracara\"")
40
+ expect(steps[1]).to eq('mkdir {{folder.name}}/')
41
+ expect(steps[2]).to eq('chown -R {{user}} {{folder.name}}')
42
+ expect(steps[3]).to eq('chmod -R {{folder.permission}} {{folder.name}}/')
43
+ expect(steps[4]).to eq("(cd {{folder.name}} && (echo \"Im doing some tasks with Caracara\"\\necho \"{{text}}\" > file.txt))")
42
44
  end
43
45
 
44
46
  it 'should compile the steps' do
@@ -46,10 +48,11 @@ describe 'Task' do
46
48
  steps = task.compile
47
49
 
48
50
  # Assertions
49
- expect(steps[0]).to eq('mkdir niceFolder/')
50
- expect(steps[1]).to eq('chown -R ubuntu niceFolder')
51
- expect(steps[2]).to eq('chmod -R 755 niceFolder/')
52
- expect(steps[3]).to eq('(cd niceFolder && (echo "Some nice text!" > file.txt))')
51
+ expect(steps[0]).to eq("echo \"Im doing some tasks with Caracara\"")
52
+ expect(steps[1]).to eq('mkdir niceFolder/')
53
+ expect(steps[2]).to eq('chown -R ubuntu niceFolder')
54
+ expect(steps[3]).to eq('chmod -R 755 niceFolder/')
55
+ expect(steps[4]).to eq("(cd niceFolder && (echo \"Im doing some tasks with Caracara\"\\necho \"Some nice text!\" > file.txt))")
53
56
  end
54
57
 
55
58
  it 'should compile the steps using specific args' do
@@ -61,10 +64,11 @@ describe 'Task' do
61
64
  }
62
65
 
63
66
  # Assertions
64
- expect(steps[0]).to eq('mkdir argsFolder/')
65
- expect(steps[1]).to eq('chown -R root argsFolder')
66
- expect(steps[2]).to eq('chmod -R 655 argsFolder/')
67
- expect(steps[3]).to eq('(cd argsFolder && (echo "Some nice text!" > file.txt))')
67
+ expect(steps[0]).to eq("echo \"Im doing some tasks with Caracara\"")
68
+ expect(steps[1]).to eq('mkdir argsFolder/')
69
+ expect(steps[2]).to eq('chown -R root argsFolder')
70
+ expect(steps[3]).to eq('chmod -R 655 argsFolder/')
71
+ expect(steps[4]).to eq("(cd argsFolder && (echo \"Im doing some tasks with Caracara\"\\necho \"Some nice text!\" > file.txt))")
68
72
  end
69
73
 
70
74
  it 'should generate the SSH command' do
@@ -72,6 +76,6 @@ describe 'Task' do
72
76
  command = task.command
73
77
 
74
78
  # Assertions
75
- expect(command).to eq("mkdir\\ niceFolder/'\n'chown\\ -R\\ ubuntu\\ niceFolder'\n'chmod\\ -R\\ 755\\ niceFolder/'\n'\\(cd\\ niceFolder\\ \\&\\&\\ \\(echo\\ \\\"Some\\ nice\\ text\\!\\\"\\ \\>\\ file.txt\\)\\)")
79
+ expect(command).to eq("echo\\ \\\"Im\\ doing\\ some\\ tasks\\ with\\ Caracara\\\"'\n'mkdir\\ niceFolder/'\n'chown\\ -R\\ ubuntu\\ niceFolder'\n'chmod\\ -R\\ 755\\ niceFolder/'\n'\\(cd\\ niceFolder\\ \\&\\&\\ \\(echo\\ \\\"Im\\ doing\\ some\\ tasks\\ with\\ Caracara\\\"\\\\necho\\ \\\"Some\\ nice\\ text\\!\\\"\\ \\>\\ file.txt\\)\\)")
76
80
  end
77
81
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caracara
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabriel Corado