vedeu 0.5.8 → 0.5.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c62441c6579d781c59c825d69511b5d3705f6014
4
- data.tar.gz: b944ba4c7e976e70968d18b2bf758887b83b3516
3
+ metadata.gz: d9f471ab14ab7f5b69de2e0b0c250002f3f1775a
4
+ data.tar.gz: 471ca4b7ef85a507cf71c0fa64e11844e464f7b0
5
5
  SHA512:
6
- metadata.gz: abb5508cfafc005658e04093bf5b0c4ba39e44cbdcc5830658d05b6b58804e259b95d57d236981a851b95db6bf3771852788e0690ab9740b29cae3254db12feb
7
- data.tar.gz: 86f47fa933d1ac72ab151aa968b8a7c2ef830e007fda1d4d5631e66a128ed054a11cf989cf852674968f0b79436f76a7f2f38f83a9891f1913a7969e4f51e7c6
6
+ metadata.gz: 9e68cd9602da230d9b4c38efabaa2c8368d0e2659b6e3d1cbdf2a64522d81d5b5373b48c92ab9e9a86e6631b5fffedadaf1fecc7e3d8f5fc7795b98c4bd9f9db
7
+ data.tar.gz: d7981f0948f3d7b0521d5cac304deee8f7282601a4c5d71961cd76381e5be7e2c569499292872d5fd94c2c45013c939871584f5e017c6667c8fbed5d2409dc1b
data/Dockerfile CHANGED
@@ -60,8 +60,10 @@ ENV PATH /opt/rubies/ruby-2.2.2/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/u
60
60
  RUN gem install bundler
61
61
 
62
62
  ADD . /home/vedeu/gem/
63
- WORKDIR /home/vedeu
63
+ WORKDIR /home/vedeu/gem
64
64
  USER vedeu
65
+ RUN bundle
66
+ WORKDIR /home/vedeu
65
67
 
66
68
  # To build this file:
67
69
  #
@@ -20,8 +20,9 @@ for your desired application name.
20
20
 
21
21
  vedeu new your_app_name
22
22
 
23
- The generated files are a skeleton Vedeu client application. Let's take a look
24
- at these files individually.
23
+ If `your_app_name` already exists, Vedeu will only write new files that do not
24
+ exist at the file path. The generated files are a skeleton Vedeu client
25
+ application. Let's take a look at these files individually.
25
26
 
26
27
  ```bash
27
28
  |
@@ -150,7 +151,9 @@ might want to do something special.
150
151
  ## Adding a new view to your application
151
152
 
152
153
  The following command will build a new view within your application.
153
- Substitute `some_view_name` for your desired application name.
154
+ Substitute `some_view_name` for your desired application name. As with
155
+ generating a new application, If `some_view_name` already exists, Vedeu will
156
+ only write new files that do not exist at the file path.
154
157
 
155
158
  cd your_app_name
156
159
  vedeu view some_view_name
@@ -31,7 +31,7 @@ require 'vedeu/repositories/store'
31
31
  require 'vedeu/repositories/registerable'
32
32
  require 'vedeu/repositories/repository'
33
33
 
34
- require 'vedeu/null'
34
+ require 'vedeu/null/null'
35
35
  require 'vedeu/null/border'
36
36
  require 'vedeu/null/buffer'
37
37
  require 'vedeu/null/generic'
@@ -48,7 +48,6 @@ require 'vedeu/geometry/geometries'
48
48
  require 'vedeu/geometry/grid'
49
49
  require 'vedeu/geometry/position'
50
50
 
51
- require 'vedeu/colours/escape_sequences'
52
51
  require 'vedeu/colours/colours'
53
52
  require 'vedeu/colours/backgrounds'
54
53
  require 'vedeu/colours/foregrounds'
@@ -66,6 +65,11 @@ require 'vedeu/cursor/move'
66
65
  require 'vedeu/cursor/refresh_cursor'
67
66
  require 'vedeu/cursor/reposition'
68
67
 
68
+ require 'vedeu/esc/actions'
69
+ require 'vedeu/esc/borders'
70
+ require 'vedeu/esc/colours'
71
+ require 'vedeu/esc/esc'
72
+
69
73
  require 'vedeu/output/renderers/renderer_options'
70
74
  require 'vedeu/output/renderers/escape_sequence'
71
75
  require 'vedeu/output/renderers/file'
@@ -146,7 +150,6 @@ require 'vedeu/borders/borders'
146
150
 
147
151
  require 'vedeu/output/clear/named_group'
148
152
  require 'vedeu/output/clear/named_interface'
149
- require 'vedeu/output/esc'
150
153
  require 'vedeu/output/presentation'
151
154
  require 'vedeu/output/compressor'
152
155
  require 'vedeu/output/style'
@@ -173,19 +173,16 @@ module Vedeu
173
173
 
174
174
  # The default values for a new instance of this class.
175
175
  #
176
- # @note
177
- # Using the '\uXXXX' variant produces gaps in the border, whilst the
178
- # '\xXX' renders 'nicely'.
179
- #
180
176
  # @return [Hash]
177
+ # @see Vedeu::EscapeSequences::Borders
181
178
  def defaults
182
179
  {
183
- bottom_left: "\x6D", # └ # \u2514
184
- bottom_right: "\x6A", # ┘ # \u2518
180
+ bottom_left: Vedeu::EscapeSequences::Borders.bottom_left,
181
+ bottom_right: Vedeu::EscapeSequences::Borders.bottom_right,
185
182
  client: nil,
186
183
  colour: nil,
187
184
  enabled: false,
188
- horizontal: "\x71", # ─ # \u2500
185
+ horizontal: Vedeu::EscapeSequences::Borders.horizontal,
189
186
  name: '',
190
187
  repository: Vedeu.borders,
191
188
  show_bottom: true,
@@ -194,9 +191,9 @@ module Vedeu
194
191
  show_top: true,
195
192
  style: nil,
196
193
  title: '',
197
- top_left: "\x6C", # ┌ # \u250C
198
- top_right: "\x6B", # ┐ # \u2510
199
- vertical: "\x78", # │ # \u2502
194
+ top_left: Vedeu::EscapeSequences::Borders.top_left,
195
+ top_right: Vedeu::EscapeSequences::Borders.top_right,
196
+ vertical: Vedeu::EscapeSequences::Borders.vertical,
200
197
  }
201
198
  end
202
199
 
@@ -32,11 +32,7 @@ module Vedeu
32
32
  def generate
33
33
  make_directory_structure
34
34
 
35
- copy_gemfile
36
- copy_gitignore
37
- copy_license
38
- copy_readme
39
- copy_ruby_version
35
+ copy_app_root_files
40
36
  copy_application_bootstrapper
41
37
  copy_application_controller
42
38
  copy_application_helper
@@ -56,61 +52,50 @@ module Vedeu
56
52
 
57
53
  # @return [void]
58
54
  def copy_application_bootstrapper
59
- make_file(source + '/application.erb', "#{name}/application.rb")
55
+ make_file(source + '/application.erb',
56
+ app_root_path + '/application.rb')
60
57
  end
61
58
 
62
59
  # @return [void]
63
60
  def copy_application_controller
64
61
  make_file(source + '/app/controllers/application_controller.erb',
65
- name + '/app/controllers/application_controller.rb')
62
+ app_controllers_path + 'application_controller.rb')
66
63
  end
67
64
 
68
65
  # @return [void]
69
66
  def copy_application_executable
70
- copy_file(source + '/bin/name', "#{name}/bin/#{name}")
67
+ copy_file(source + '/bin/name', app_bin_path + "#{name}")
71
68
  end
72
69
 
73
70
  # @return [void]
74
71
  def copy_application_helper
75
72
  make_file(source + '/app/helpers/application_helper.erb',
76
- name + '/app/helpers/application_helper.rb')
73
+ app_helpers_path + 'application_helper.rb')
77
74
  end
78
75
 
79
76
  # @return [void]
80
77
  def copy_configuration
81
78
  make_file(source + '/config/configuration.erb',
82
- "#{name}/config/configuration.rb")
79
+ app_config_path + 'configuration.rb')
83
80
  end
84
81
 
85
82
  # @return [void]
86
83
  def copy_app_name
87
84
  make_file(source + '/config/app_name.erb',
88
- name + '/config/app_name')
85
+ app_config_path + 'app_name')
89
86
  end
90
87
 
91
88
  # @return [void]
92
- def copy_gemfile
93
- copy_file(source + '/Gemfile', "#{name}/Gemfile")
94
- end
95
-
96
- # @return [void]
97
- def copy_gitignore
98
- copy_file(source + '/.gitignore', "#{name}/.gitignore")
99
- end
100
-
101
- # @return [void]
102
- def copy_license
103
- copy_file(source + '/LICENSE.txt', "#{name}/LICENSE.txt")
104
- end
105
-
106
- # @return [void]
107
- def copy_readme
108
- copy_file(source + '/README.md', "#{name}/README.md")
109
- end
110
-
111
- # @return [void]
112
- def copy_ruby_version
113
- copy_file(source + '/.ruby-version', "#{name}/.ruby-version")
89
+ def copy_app_root_files
90
+ [
91
+ '/Gemfile',
92
+ '/.gitignore',
93
+ '/LICENSE.txt',
94
+ '/README.md',
95
+ '/.ruby-version',
96
+ ].each do |file|
97
+ copy_file((source + file), (app_root_path + file))
98
+ end
114
99
  end
115
100
 
116
101
  # @return [void]
@@ -121,7 +106,7 @@ module Vedeu
121
106
  # @return [void]
122
107
  def copy_global_keymap
123
108
  copy_file(source + '/app/models/keymaps/_global_.rb',
124
- "#{name}/app/models/keymaps/_global_.rb")
109
+ app_keymaps_path + '_global_.rb')
125
110
  end
126
111
 
127
112
  # @return [Array<String>]
@@ -15,6 +15,41 @@ module Vedeu
15
15
  @app_name ||= File.read('./config/app_name')
16
16
  end
17
17
 
18
+ # @return [String]
19
+ def app_bin_path
20
+ name + '/bin/'
21
+ end
22
+
23
+ # @return [String]
24
+ def app_config_path
25
+ name + '/config/'
26
+ end
27
+
28
+ # @return [String]
29
+ def app_controllers_path
30
+ name + '/app/controllers/'
31
+ end
32
+
33
+ # @return [String]
34
+ def app_helpers_path
35
+ name + '/app/helpers/'
36
+ end
37
+
38
+ # @return [String]
39
+ def app_models_path
40
+ name + '/app/models/'
41
+ end
42
+
43
+ # @return [String]
44
+ def app_keymaps_path
45
+ name + '/app/models/keymaps/'
46
+ end
47
+
48
+ # @return [String]
49
+ def app_views_path
50
+ name + '/app/views/'
51
+ end
52
+
18
53
  # @param destination [String]
19
54
  # @return [void]
20
55
  def make_directory(destination)
@@ -27,18 +62,36 @@ module Vedeu
27
62
  # @param destination [String]
28
63
  # @return [void]
29
64
  def copy_file(source, destination)
30
- Vedeu.log_stdout(type: :create, message: "#{destination}")
65
+ if File.exist?(destination)
66
+ skipped_file(destination)
31
67
 
32
- FileUtils.cp(source, destination)
68
+ else
69
+ Vedeu.log_stdout(type: :create, message: "#{destination}")
70
+
71
+ FileUtils.cp(source, destination)
72
+ end
33
73
  end
34
74
 
35
75
  # @param source [String]
36
76
  # @param destination [String]
37
77
  # @return [void]
38
78
  def make_file(source, destination)
39
- Vedeu.log_stdout(type: :create, message: "#{destination}")
79
+ if File.exist?(destination)
80
+ skipped_file(destination)
40
81
 
41
- File.write(destination, parse(source))
82
+ else
83
+ Vedeu.log_stdout(type: :create, message: "#{destination}")
84
+
85
+ File.write(destination, parse(source))
86
+ end
87
+ end
88
+
89
+ # @param destination [String]
90
+ # @return [void]
91
+ def skipped_file(destination)
92
+ Vedeu.log_stdout(type: :create,
93
+ message: "#{destination} " +
94
+ Esc.red { 'already exists, skipped.' })
42
95
  end
43
96
 
44
97
  # @param destination [String]
@@ -53,6 +106,7 @@ module Vedeu
53
106
  def name
54
107
  @_name ||= @name.downcase
55
108
  end
109
+ alias_method :app_root_path, :name
56
110
 
57
111
  # @return [String]
58
112
  def name_as_class
@@ -92,13 +92,9 @@ module Vedeu
92
92
 
93
93
  # @return [String]
94
94
  def to_html
95
- if rgb?
96
- colour
97
-
98
- else
99
- ''
95
+ return colour if rgb?
100
96
 
101
- end
97
+ ''
102
98
  end
103
99
 
104
100
  private
@@ -0,0 +1,52 @@
1
+ module Vedeu
2
+
3
+ # Provides escape sequence strings.
4
+ #
5
+ module EscapeSequences
6
+
7
+ # Provides action related escape sequences.
8
+ #
9
+ module Actions
10
+
11
+ extend self
12
+
13
+ # @return [Hash<Symbol => String>]
14
+ def characters
15
+ {
16
+ hide_cursor: "\e[?25l",
17
+ show_cursor: "\e[?25h",
18
+ cursor_position: "\e[6n",
19
+ bg_reset: "\e[49m",
20
+ blink: "\e[5m",
21
+ blink_off: "\e[25m",
22
+ bold: "\e[1m",
23
+ bold_off: "\e[22m",
24
+ dim: "\e[2m",
25
+ fg_reset: "\e[39m",
26
+ negative: "\e[7m",
27
+ positive: "\e[27m",
28
+ reset: "\e[0m",
29
+ underline: "\e[4m",
30
+ underline_off: "\e[24m",
31
+ }
32
+ end
33
+
34
+ # @return [void]
35
+ def setup!
36
+ define_actions!
37
+ end
38
+
39
+ private
40
+
41
+ # @return [void]
42
+ def define_actions!
43
+ characters.each { |key, code| define_method(key) { code } }
44
+ end
45
+
46
+ end # Actions
47
+
48
+ end # EscapeSequences
49
+
50
+ Vedeu::EscapeSequences::Actions.setup!
51
+
52
+ end # Vedeu
@@ -0,0 +1,70 @@
1
+ module Vedeu
2
+
3
+ # Provides escape sequence strings.
4
+ #
5
+ module EscapeSequences
6
+
7
+ # Provides border/box related escape sequences.
8
+ #
9
+ # @note
10
+ # Refer to UTF-8 U+2500 to U+257F for border characters. More details can
11
+ # be found at: http://en.wikipedia.org/wiki/Box-drawing_character
12
+ #
13
+ # Using the '\uXXXX' variant produces gaps in the border, whilst the
14
+ # '\xXX' renders 'nicely'.
15
+ #
16
+ module Borders
17
+
18
+ extend self
19
+
20
+ # @return [String]
21
+ def border_on
22
+ "\e(0"
23
+ end
24
+
25
+ # @return [String]
26
+ def border_off
27
+ "\e(B"
28
+ end
29
+
30
+ # Provides all the semigraphic characters.
31
+ #
32
+ # # 0 1 2 3 4 5 6 7 8 9 A B C D E F
33
+ # 6 ┘ ┐ ┌ └ ┼
34
+ # 7 ─ ├ ┤ ┴ ┬ │
35
+ #
36
+ # @return [Hash<Symbol => String>]
37
+ def characters
38
+ {
39
+ bottom_right: "\x6A", # ┘ # \u2518
40
+ top_right: "\x6B", # ┐ # \u2510
41
+ top_left: "\x6C", # ┌ # \u250C
42
+ bottom_left: "\x6D", # └ # \u2514
43
+ horizontal: "\x71", # ─ # \u2500
44
+ vertical_left: "\x74", # ├ # \u251C
45
+ vertical_right: "\x75", # ┤ # \u2524
46
+ horizontal_bottom: "\x76", # ┴ # \u2534
47
+ horizontal_top: "\x77", # ┬ # \u252C
48
+ vertical: "\x78", # │ # \u2502
49
+ }
50
+ end
51
+
52
+ # @return [void]
53
+ def setup!
54
+ define_borders!
55
+ end
56
+
57
+ private
58
+
59
+ # @return [void]
60
+ def define_borders!
61
+ characters.each { |key, code| define_method(key) { code } }
62
+ end
63
+
64
+ end # Borders
65
+
66
+ end # EscapeSequences
67
+
68
+ Vedeu::EscapeSequences::Borders.setup!
69
+
70
+ end # Vedeu