pointrb 0.0.1 → 0.1.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 (69) hide show
  1. data/.gitignore +16 -0
  2. data/.rspec +1 -0
  3. data/.ruby-version +1 -0
  4. data/Gemfile +2 -1
  5. data/Gemfile.lock +40 -26
  6. data/README.md +1 -86
  7. data/Rakefile +5 -0
  8. data/TODO.md +35 -1
  9. data/bin/pointrb +35 -0
  10. data/cucumber.yml +3 -0
  11. data/features/create_layout.feature +96 -0
  12. data/features/create_new_project.feature +29 -0
  13. data/features/pointrb_setup.feature +22 -0
  14. data/features/step_definitions.rb +96 -0
  15. data/features/support/env.rb +26 -0
  16. data/features/support/helper.rb +62 -0
  17. data/features/test.feature +0 -0
  18. data/gemfiles/Gemfile.default +2 -1
  19. data/lib/bob_the_helper/command/command_result.rb +12 -0
  20. data/lib/bob_the_helper/command.rb +49 -0
  21. data/lib/bob_the_helper/environment.rb +27 -0
  22. data/lib/bob_the_helper/file_system/exceptions.rb +11 -0
  23. data/lib/bob_the_helper/file_system.rb +245 -0
  24. data/lib/bob_the_helper.rb +5 -0
  25. data/lib/pointrb/actions/check_if_pointrb_has_already_been_initialized.rb +15 -0
  26. data/lib/pointrb/actions/check_project_path.rb +15 -0
  27. data/lib/pointrb/actions/create_layout.rb +16 -0
  28. data/lib/pointrb/actions/create_project_wrapper.rb +15 -0
  29. data/lib/pointrb/actions/determine_layout_directory.rb +14 -0
  30. data/lib/pointrb/actions/error_handler_commandline.rb +39 -0
  31. data/lib/pointrb/actions/initialize_pointrb.rb +15 -0
  32. data/lib/pointrb/actions/retrieve_layout_files.rb +16 -0
  33. data/lib/pointrb/actions/retrieve_parsed_layout.rb +17 -0
  34. data/lib/pointrb/actions/set_project_name.rb +15 -0
  35. data/lib/pointrb/actions/show_pointrb_version.rb +14 -0
  36. data/lib/pointrb/api.rb +36 -0
  37. data/lib/pointrb/directory.rb +25 -0
  38. data/lib/pointrb/exceptions.rb +22 -0
  39. data/lib/pointrb/layout.rb +16 -0
  40. data/lib/pointrb/layout_constructor.rb +58 -0
  41. data/lib/pointrb/layout_file.rb +24 -0
  42. data/lib/pointrb/layout_manager.rb +32 -0
  43. data/lib/pointrb/layout_storage_manager.rb +40 -0
  44. data/lib/pointrb/layout_tree.rb +45 -0
  45. data/lib/pointrb/pointrb_file.rb +33 -0
  46. data/lib/pointrb/project.rb +11 -0
  47. data/lib/pointrb/version.rb +1 -1
  48. data/lib/pointrb.rb +32 -0
  49. data/pointrb.gemspec +3 -2
  50. data/script/terminal +1 -0
  51. data/spec/bob_the_helper/command/command_spec.rb +55 -0
  52. data/spec/bob_the_helper/environment/environment_spec.rb +15 -0
  53. data/spec/bob_the_helper/file_system/file_system_spec.rb +279 -0
  54. data/spec/directory/directory_spec.rb +30 -0
  55. data/spec/hooks.rb +5 -0
  56. data/spec/layout/layout_spec.rb +20 -0
  57. data/spec/layout_constructor/layout_constructor_spec.rb +122 -0
  58. data/spec/layout_file/layout_file_spec.rb +49 -0
  59. data/spec/layout_manager/layout_manager_spec.rb +47 -0
  60. data/spec/layout_storage_manager/layout_storage_manager_spec.rb +58 -0
  61. data/spec/layout_tree/layout_tree_spec.rb +70 -0
  62. data/spec/pointrb_file/pointrb_file_spec.rb +34 -0
  63. data/spec/project/project_spec.rb +19 -0
  64. data/spec/spec_helper.rb +9 -13
  65. data/spec/support/capture.rb +19 -0
  66. data/spec/support/env.rb +0 -0
  67. data/spec/support/helper.rb +8 -0
  68. data/spec/support/hooks.rb +5 -0
  69. metadata +104 -5
data/.gitignore ADDED
@@ -0,0 +1,16 @@
1
+ .$*$
2
+ .bundle
3
+ coverage/
4
+ doc/yardoc/
5
+ *.gem
6
+ !.git*
7
+ nohup*
8
+ *.old
9
+ *.out
10
+ pkg/
11
+ pkg/*
12
+ .rvmrc
13
+ *.s??
14
+ tmp/
15
+ doc/*
16
+ .yardoc/
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --order rand
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 1.9.3
data/Gemfile CHANGED
@@ -22,9 +22,10 @@ group :development do
22
22
  gem 'debugger'
23
23
  gem 'pry'
24
24
  gem 'pry-doc'
25
+ gem 'pry-debugger'
26
+ gem 'debugger-completion'
25
27
  gem 'awesome_print'
26
28
  gem 'travis-lint'
27
- gem 'activesupport'
28
29
  gem 'fuubar'
29
30
  gem 'churn'
30
31
  end
data/Gemfile.lock CHANGED
@@ -2,25 +2,27 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  pointrb (0.0.1)
5
- active_support
5
+ activesupport
6
6
  middleware
7
+ rubytree
7
8
 
8
9
  GEM
9
10
  remote: http://rubygems.org/
10
11
  specs:
11
- active_support (3.0.0)
12
- activesupport (= 3.0.0)
13
- activesupport (3.0.0)
12
+ activesupport (3.2.12)
13
+ i18n (~> 0.6)
14
+ multi_json (~> 1.0)
14
15
  arrayfields (4.7.4)
15
16
  aruba (0.5.1)
16
17
  childprocess (~> 0.3.6)
17
18
  cucumber (>= 1.1.1)
18
19
  rspec-expectations (>= 2.7.0)
19
20
  awesome_print (1.1.0)
20
- builder (3.1.4)
21
- childprocess (0.3.8)
21
+ bond (0.4.3)
22
+ builder (3.2.0)
23
+ childprocess (0.3.9)
22
24
  ffi (~> 1.0, >= 1.0.11)
23
- chronic (0.9.0)
25
+ chronic (0.9.1)
24
26
  churn (0.0.28)
25
27
  chronic (>= 0.2.3)
26
28
  hirb
@@ -30,19 +32,22 @@ GEM
30
32
  sexp_processor (~> 4.1)
31
33
  coderay (1.0.9)
32
34
  columnize (0.3.6)
33
- cucumber (1.2.1)
35
+ cucumber (1.2.3)
34
36
  builder (>= 2.1.2)
35
37
  diff-lcs (>= 1.1.3)
36
- gherkin (~> 2.11.0)
37
- json (>= 1.4.6)
38
- debugger (1.3.1)
38
+ gherkin (~> 2.11.6)
39
+ multi_json (~> 1.3)
40
+ debugger (1.4.0)
39
41
  columnize (>= 0.3.1)
40
42
  debugger-linecache (~> 1.1.1)
41
- debugger-ruby_core_source (~> 1.1.8)
43
+ debugger-ruby_core_source (~> 1.2.0)
44
+ debugger-completion (1.0.0)
45
+ bond (>= 0.4.2)
46
+ debugger (~> 1.1)
42
47
  debugger-linecache (1.1.2)
43
48
  debugger-ruby_core_source (>= 1.1.1)
44
- debugger-ruby_core_source (1.1.8)
45
- diff-lcs (1.1.3)
49
+ debugger-ruby_core_source (1.2.0)
50
+ diff-lcs (1.2.1)
46
51
  fattr (2.2.1)
47
52
  ffaker (1.15.0)
48
53
  ffi (1.4.0)
@@ -55,9 +60,10 @@ GEM
55
60
  github-markup (0.7.5)
56
61
  hashr (0.0.22)
57
62
  hirb (0.7.1)
63
+ i18n (0.6.4)
58
64
  json (1.7.7)
59
65
  json_pure (1.7.7)
60
- main (5.1.1)
66
+ main (5.2.0)
61
67
  arrayfields (>= 4.7.4)
62
68
  chronic (>= 0.6.2)
63
69
  fattr (>= 2.2.0)
@@ -70,50 +76,58 @@ GEM
70
76
  coderay (~> 1.0.5)
71
77
  method_source (~> 0.8)
72
78
  slop (~> 3.4)
79
+ pry-debugger (0.2.2)
80
+ debugger (~> 1.3)
81
+ pry (~> 0.9.10)
73
82
  pry-doc (0.4.4)
74
83
  pry (>= 0.9.9.6)
75
84
  yard (~> 0.8.1)
76
85
  rake (10.0.3)
77
86
  redcarpet (2.2.2)
78
- rspec (2.12.0)
79
- rspec-core (~> 2.12.0)
80
- rspec-expectations (~> 2.12.0)
81
- rspec-mocks (~> 2.12.0)
82
- rspec-core (2.12.2)
83
- rspec-expectations (2.12.1)
84
- diff-lcs (~> 1.1.3)
87
+ rspec (2.13.0)
88
+ rspec-core (~> 2.13.0)
89
+ rspec-expectations (~> 2.13.0)
90
+ rspec-mocks (~> 2.13.0)
91
+ rspec-core (2.13.1)
92
+ rspec-expectations (2.13.0)
93
+ diff-lcs (>= 1.1.3, < 2.0)
85
94
  rspec-instafail (0.2.4)
86
- rspec-mocks (2.12.2)
95
+ rspec-mocks (2.13.0)
87
96
  ruby-progressbar (1.0.2)
88
97
  ruby_parser (3.1.1)
89
98
  sexp_processor (~> 4.1)
99
+ rubytree (0.8.3)
100
+ json (>= 1.7.5)
101
+ structured_warnings (>= 0.1.3)
90
102
  sexp_processor (4.1.5)
91
103
  simplecov (0.7.1)
92
104
  multi_json (~> 1.0)
93
105
  simplecov-html (~> 0.7.1)
94
106
  simplecov-html (0.7.1)
95
- slop (3.4.3)
107
+ slop (3.4.4)
108
+ structured_warnings (0.1.3)
96
109
  thor (0.17.0)
97
110
  tmrb (1.2.7)
98
111
  thor
99
112
  travis-lint (1.6.0)
100
113
  hashr (~> 0.0.22)
101
- yard (0.8.4.1)
114
+ yard (0.8.5.2)
102
115
 
103
116
  PLATFORMS
104
117
  ruby
105
118
 
106
119
  DEPENDENCIES
107
- activesupport
108
120
  aruba
109
121
  awesome_print
110
122
  churn
111
123
  debugger
124
+ debugger-completion
112
125
  ffaker
113
126
  fuubar
114
127
  github-markup
115
128
  pointrb!
116
129
  pry
130
+ pry-debugger
117
131
  pry-doc
118
132
  rake
119
133
  redcarpet
data/README.md CHANGED
@@ -20,100 +20,15 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- Currently the following strategies are supported
24
- <table>
25
- <tr>
26
- <th>Strategy</th>
27
- <th>Description</th>
28
- </tr>
29
- <tr>
30
- <td>:contains_all</td>
31
- <td>True if all of the given keywords are part of the data</td>
32
- </tr>
33
- <tr>
34
- <td>:contains_any</td>
35
- <td>True if any of the given keywords are part of the data</td>
36
- </tr>
37
- <tr>
38
- <td>:not_contains</td>
39
- <td>True if the given keywords are not part of the data</td>
40
- </tr>
41
- <tr>
42
- <td>:contains_all_as_substring</td>
43
- <td>True if all given keywords are a substring of an data element</td>
44
- </tr>
45
- <tr>
46
- <td>:contains_any_as_substring</td>
47
- <td>True if any given keyword are a substring of an data element</td>
48
- </tr>
49
- <tr>
50
- <td>:not_contains_substring</td>
51
- <td>True if none of the given keywords is a substring of an data element</td>
52
- </tr>
53
- <tr>
54
- <td>:is_equal</td>
55
- <td>True if both, the keywords and the data, are identical</td>
56
- </tr>
57
- <tr>
58
- <td>:is_not_equal</td>
59
- <td>True if the keywords are didfferent from the data</td>
60
- </tr>
61
- </table>
62
23
 
63
24
  ### Simple example
64
25
 
65
- ```ruby
66
- require 'the_array_comparator'
67
- comparator = TheArrayComparator::Comparator.new
68
- data = %w{ a b c d }
69
- keyword_overlap = %w{ a b }
70
-
71
- comparator.add_check data , :contains_all , keyword_overlap
72
-
73
- result = comparator.success?
74
- puts result #should be true
75
- ```
76
-
77
- ### Example with substrings
78
-
79
- ```ruby
80
- require 'the_array_comparator'
81
- comparator = TheArrayComparator::Comparator.new
82
- data = %w{ acd b }
83
- keyword_overlap = %w{ cd b }
84
-
85
- comparator.add_check data , :contains_all_as_substring, keyword_overlap
86
-
87
- result = comparator.success?
88
- puts result #should be true
89
- ```
90
-
91
- ### Example with exceptions
92
-
93
- ```ruby
94
- require 'the_array_comparator'
95
- comparator = TheArrayComparator::Comparator.new
96
- data = %w{ acd b }
97
- keyword_overlap = %w{ a b }
98
- exceptions = %w{ cd }
99
-
100
- comparator.add_check data , :contains_all_as_substring, keyword_overlap, exceptions
101
-
102
- result = comparator.success?
103
- puts result #should be false
104
- ```
105
26
 
106
27
  ### Extend the library
107
28
 
108
- If you wish to write your own comparators you can do so. Just register those classes with a keyword.
109
-
110
- ```ruby
111
- TheArrayComparator::Comparator.register :my_contains, Strategies::MyContains
112
- ```
113
-
114
29
  ## Further reading
115
30
 
116
- Please the the full api-documentation on [rdoc info](http://rdoc.info/github/maxmeyer/the_array_comparator/frames) for further reading.
31
+ Please the the full api-documentation on [rdoc info](http://rdoc.info/github/maxmeyer/pointrb) for further reading.
117
32
  I just give you a brief overview of all the available methods. There's also a brief [guide](API-GUIDE.md) about howto discover the API.
118
33
 
119
34
  ## Contributing
data/Rakefile CHANGED
@@ -81,6 +81,11 @@ namespace :test do
81
81
  sh 'bundle exec rspec spec'
82
82
  end
83
83
 
84
+ desc 'Run features'
85
+ task :features do
86
+ sh 'bundle exec cucumber'
87
+ end
88
+
84
89
  desc 'Run tests in "travis mode"'
85
90
  task :travis_specs do
86
91
  ENV['TRAVIS_CI'] = 'true'
data/TODO.md CHANGED
@@ -1,2 +1,36 @@
1
- * Cache -> only check if there are __no__ new objects
1
+ # Features
2
+ * Create directory structure
3
+ * Support dry run
4
+ * Check for existing files
5
+ * Support file fetcher
6
+ * git
7
+ * scp
8
+ * local file
9
+ * DSL
10
+ * Create file (with support for file content in dsl)
11
+ * Create directory
12
+ * View created directory structure as tree
13
+ * Setting file system permissions for files (file, executable)
14
+ * List available layouts
15
+ * Implode pointrb
16
+ * Output license and copyright
17
+ * Force initialize
18
+ * Add some default templates
2
19
 
20
+ # Internals
21
+ * Use middleware pattern to make library easy to extend
22
+ * ParseOptions
23
+ * ParseDSL
24
+
25
+ Build array of Files and Directories
26
+
27
+ * CreateAbstractDirectoryTree
28
+
29
+ Split up path to create nodes in directory tree. Leafs nodes are the files to be
30
+ created. Parent nodes are directories to be created.
31
+
32
+ * CheckDirectoryTreeForExistingFiles
33
+ * CreateObjectsInFileSystem
34
+ * OutputCreatedDirectoryStructure
35
+ * DirectoryTree (based on RubyTree)
36
+
data/bin/pointrb ADDED
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'fileutils'
4
+ require 'thor'
5
+ require 'pointrb'
6
+ require 'pry'
7
+ require 'debugger'
8
+
9
+ class Default < Thor
10
+ map '--version' => :version
11
+
12
+ desc "new <project>", "create directories and files for new project"
13
+ method_option :verbose, type: :boolean, default: false, aliases: '-v'
14
+ method_option :layout, type: :string, default: 'default', aliases: '-l'
15
+ def new(project_name)
16
+ env = OpenStruct.new
17
+ env.project_name = project_name
18
+ env.command_line_options = options
19
+
20
+ PointRb::Api.create_layout(env)
21
+ end
22
+
23
+ desc "init", "initialize directory structures in system for use of pointrb"
24
+ def init
25
+ env = OpenStruct.new
26
+ PointRb::Api.initialize_pointrb(env)
27
+ end
28
+
29
+ desc "version", "show version of library"
30
+ def version
31
+ PointRb::Api.show_version
32
+ end
33
+ end
34
+
35
+ Default.start
data/cucumber.yml ADDED
@@ -0,0 +1,3 @@
1
+ ---
2
+ default: --require features --tags ~@wip
3
+ steps: --format stepdefs
@@ -0,0 +1,96 @@
1
+ Feature: Create layout
2
+ As a developer
3
+ I would like to define a layout
4
+ In order to start a new project
5
+
6
+ # @cmd_debug
7
+ # @cmd_output
8
+ Scenario: Existing layout
9
+ Given a layout file named "new_layout.layout" exists with:
10
+ """
11
+ layout :name do
12
+ end
13
+ """
14
+ When I run `pointrb new new_project --layout name`
15
+ Then an information occured:
16
+ """
17
+ [Information] Layout 'name' for project 'new_project' created.
18
+ """
19
+
20
+ Scenario: layout with directory
21
+ Given a layout file named "new_layout.layout" exists with:
22
+ """
23
+ layout :name do
24
+ directory 'new_directory'
25
+ end
26
+ """
27
+ When I run `pointrb new new_project --layout name`
28
+ Then a directory named 'new_project/new_directory' should exist
29
+
30
+ Scenario: layout with nested directory
31
+ Given a layout file named "new_layout.layout" exists with:
32
+ """
33
+ layout :name do
34
+ directory 'new_directory' do
35
+ directory 'subdirectory' do
36
+ directory 'subdirectory'
37
+ end
38
+ end
39
+ end
40
+ """
41
+ When I run `pointrb new new_project --layout name`
42
+ Then a directory named 'new_project/new_directory' exists with:
43
+ |Objects |
44
+ |subdirectory |
45
+ |subdirectory/subdirectory|
46
+
47
+ Scenario: layout with a file
48
+ Given a layout file named "new_layout.layout" exists with:
49
+ """
50
+ layout :new_layout do
51
+ file 'new_file' do
52
+ <<-EOF
53
+ this is content
54
+ this is content
55
+ EOF
56
+ end
57
+ end
58
+ """
59
+ When I run `pointrb new new_project --layout new_layout`
60
+ Then a file named 'new_project/new_file' exists with:
61
+ """
62
+ this is content
63
+ this is content
64
+
65
+ """
66
+
67
+ Scenario: layout with a file which is different from layout name
68
+ Given a layout file named "new_layout.layout" exists with:
69
+ """
70
+ layout :name do
71
+ file 'new_file' do
72
+ <<-EOF
73
+ this is content
74
+ this is content
75
+ EOF
76
+ end
77
+ end
78
+ """
79
+ When I run `pointrb new new_project --layout name`
80
+ Then a file named 'new_project/new_file' exists with:
81
+ """
82
+ this is content
83
+ this is content
84
+
85
+ """
86
+
87
+ Scenario: layout with syntax error
88
+ Given a layout file named "new_layout.layout" exists with:
89
+ """
90
+ garbage
91
+ """
92
+ When I run `pointrb new new_project --layout name`
93
+ Then an error occured:
94
+ """
95
+ Syntax error in layout-file
96
+ """
@@ -0,0 +1,29 @@
1
+ Feature: Create new project
2
+
3
+ As a developer
4
+ I need to create a directory structure
5
+ In order to start a new project
6
+
7
+ Background:
8
+ Given a layout file named "default.layout" exists with:
9
+ """
10
+ layout :default do
11
+ end
12
+ """
13
+
14
+ Scenario: Non existing directory
15
+ Given the directory 'new_project' does not exist
16
+ When I successfully run `pointrb new new_project`
17
+ Then a directory named 'new_project' should exist
18
+ And an information occured:
19
+ """
20
+ [Information] Layout 'default' for project 'new_project' created.
21
+ """
22
+
23
+ Scenario: Existing directory
24
+ Given the directory 'new_project' exists
25
+ When I run `pointrb new new_project`
26
+ Then an error occured:
27
+ """
28
+ [Error] Directory 'new_project' exists. Exit!
29
+ """
@@ -0,0 +1,22 @@
1
+ Feature: Setup system for use with pointrb
2
+
3
+ As a developer
4
+ I want all needed files to be placed at the correct place
5
+ In order to get started with pointrb at rapid speed
6
+
7
+ Scenario: Non setup system
8
+ Given pointrb has never been used on this host
9
+ When I successfully run `pointrb init`
10
+ Then a directory named '~/.config/pointrb' exists with:
11
+ |Objects|
12
+ |layouts|
13
+
14
+ #@cmd_debug
15
+ # @cmd_output
16
+ Scenario: System which is already setup
17
+ Given pointrb has already been used on this host
18
+ When I run `pointrb init`
19
+ Then an error occured:
20
+ """
21
+ [Error] This system has already been setup. Exit!
22
+ """
@@ -0,0 +1,96 @@
1
+ #encoding: utf-8
2
+ Before do
3
+ cleanup_working_directory
4
+ end
5
+
6
+ Before('@cmd_output') do
7
+ @cmd_output = true
8
+ end
9
+
10
+ Before('@cmd_debug') do
11
+ @cmd_debug = true
12
+ end
13
+
14
+ Given /^the directory '([^']+)' does not exist$/ do |path|
15
+ result = path_exists?(path)
16
+ expect(result).to eq(false)
17
+ end
18
+
19
+ Given /^the directory '([^']+)' exists$/ do |path|
20
+ create_directory(path)
21
+ end
22
+
23
+ When /^I successfully run `([^`]+)`$/ do |command|
24
+ @result = run_this_command command
25
+
26
+ if @cmd_output == true
27
+ puts "_stdout_:\n" + @result.stdout unless @result.stdout.blank?
28
+ puts "_stderr_:\n" + @result.stderr unless @result.stderr.blank?
29
+ end
30
+
31
+ expect(@result.status.success?).to eq(true)
32
+ end
33
+
34
+ Then /^a directory named '([^']+)' should exist$/ do |path|
35
+ result = path_exists?(path)
36
+ expect(result).to eq(true)
37
+ end
38
+
39
+ When /^I run `([^`]+)`$/ do |command|
40
+ @result = run_this_command command
41
+
42
+ if @cmd_output == true
43
+ puts "_stdout_:\n" + @result.stdout unless @result.stdout.blank?
44
+ puts "_stderr_:\n" + @result.stderr unless @result.stderr.blank?
45
+ end
46
+ end
47
+
48
+ Then /^an error occured:$/ do |string|
49
+ @result = BobTheHelper::Command::CommandResult.new if @result.blank?
50
+
51
+ expect(@result.stderr.chomp[string]).to_not eq(nil)
52
+ end
53
+
54
+ Given /^pointrb has never been used on this host$/ do
55
+ result = path_does_not_exist? pointrb_config_directories
56
+ expect(result).to eq(true)
57
+ end
58
+
59
+ Given /^pointrb has already been used on this host$/ do
60
+ create_directory pointrb_config_directories
61
+ end
62
+
63
+ Then /^a directory named '([^']+)' exists with:$/ do |base_dir,table|
64
+ directory_entries = table.rows.flatten
65
+ result = path_exists? directory_entries.map { |e| File.join(base_dir, e) }
66
+
67
+ expect(result).to eq(true)
68
+ end
69
+
70
+ Given /^a layout file named "([^"]+)" exists with:$/ do |layout_name, layout_definition|
71
+ layout_directory = File.join(ENV['HOME'],'.config', 'pointrb', 'layouts')
72
+ create_directory layout_directory
73
+
74
+ layout_file = File.join(layout_directory, layout_name)
75
+ create_file layout_file, layout_definition
76
+ end
77
+
78
+ Then /^an information occured:$/ do |output|
79
+ @result = BobTheHelper::Command::CommandResult.new if @result.blank?
80
+
81
+ expect(@result.stdout.chomp).to eq(output)
82
+ end
83
+
84
+ Then /^the run is successful$/ do
85
+ @result = BobTheHelper::Command::CommandResult.new if @result.blank?
86
+
87
+ expect(@result.status.success?).to eq(true)
88
+ end
89
+
90
+ Then /^a file named '([^']+)' exists with:$/ do |path,content|
91
+ exists = path_exists?(path)
92
+ expect(exists).to eq(true)
93
+
94
+ file_content = read_file path
95
+ expect(file_content).to eq(content)
96
+ end
@@ -0,0 +1,26 @@
1
+ #encoding: utf-8
2
+ $LOAD_PATH << File.expand_path('../../lib' , File.dirname(__FILE__))
3
+
4
+ unless ENV['TRAVIS_CI'] == 'true'
5
+ require 'pry'
6
+ require 'ap'
7
+ require 'ffaker'
8
+ require 'benchmark'
9
+
10
+ require 'debugger'
11
+ require 'debugger/completion'
12
+ end
13
+
14
+ require 'stringio'
15
+ require 'tempfile'
16
+
17
+ require 'active_support/core_ext/object/blank'
18
+ require 'active_support/core_ext/numeric/time'
19
+ #require 'active_support/core_ext/kernel/reporting'
20
+
21
+ unless ENV['TRAVIS_CI'] == 'true'
22
+ require 'simplecov'
23
+ SimpleCov.start
24
+ end
25
+
26
+ require 'pointrb'