prepend_code 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,13 +1,15 @@
1
1
  # prepend_code
2
2
 
3
3
  prepend_code will prepend context on your files.
4
+ coding directive, copy right etc..
5
+ Because Files that has been generated by scaffold function, does'nt have conding directive.
4
6
 
5
7
  prepend_code mainly supports:
6
8
 
7
9
  * It handles recursively to the directory.
8
10
 
9
11
  ## Supported Ruby versions and implementations
10
- I've tested on:(maybe move on 1.8.7, 1.9.2 too)
12
+ I've tested on:
11
13
 
12
14
  * Ruby 1.9.3
13
15
 
@@ -18,19 +20,15 @@ I've tested on:(maybe move on 1.8.7, 1.9.2 too)
18
20
  ## Usage
19
21
 
20
22
  ### on your rails project directory
21
- $ prepend_code
23
+ $ prepend_code target_director context
24
+
25
+ # example
26
+ $ prepend_code ./app "# coding: utf-8"
27
+ $ prepend_code ./lib "# Copyright (c) 2013 ryooo321"
22
28
 
23
29
  ### view all options by --help.
24
30
  $ prepend_code --help
25
31
 
26
- ### specify context.
27
- $ prepend_code -t "# Copyright (c) 2013 ryooo321."
28
- # default is # coding: utf-8
29
-
30
- ### specify target directory.
31
- $ prepend_code -d ./lib
32
- # default is ./app
33
-
34
32
  ### specify target file extension.
35
33
  $ prepend_code -e .erb
36
34
  # default is .rb
@@ -51,7 +49,7 @@ I've tested on:(maybe move on 1.8.7, 1.9.2 too)
51
49
 
52
50
  ### Other
53
51
 
54
- ## Contributing to Lapidary
52
+ ## Contributing to prepend_code
55
53
 
56
54
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
57
55
  * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
@@ -1,3 +1,3 @@
1
1
  module PrependCode
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/prepend_code.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "prepend_code/version"
2
+ require "readline"
2
3
  begin
3
4
  require "pry"
4
5
  rescue LoadError
@@ -6,25 +7,40 @@ end
6
7
 
7
8
  module PrependCode
8
9
  module Application
10
+ def self.exit_with_usage
11
+ puts @opts.to_s
12
+ return 0
13
+ end
14
+
9
15
  def self.run!(*arguments)
10
- dir_base = './app'
11
16
  ext = '.rb'
12
- code = '# coding: utf-8'
13
- opts = OptionParser.new
14
- opts.on("-d target directory. default: ./app."){|v| dir_base = v }
15
- opts.on("-e target file extension. default: .rb"){|v| ext = v }
16
- opts.on("-t prepend context. default: # coding: utf-8"){|v| code = v }
17
- opts.parse!(arguments)
17
+ banner = "Usage: prepend_code target_directory context [options]"
18
+ @opts = OptionParser.new(banner)
19
+ @opts.on("-e [extension]", "target file extension. (default: .rb)"){|v| ext = v }
20
+ @opts.parse!(arguments)
21
+ dir_base = arguments[0]
22
+ context = arguments[1]
23
+ return self.exit_with_usage if context.nil?
24
+ return self.exit_with_usage if dir_base.nil?
18
25
 
19
26
  file_paths = find_file_paths(dir_base, ext)
27
+ loop do
28
+ messages = []
29
+ messages << sprintf("Target directory is %s", dir_base)
30
+ messages << sprintf("Context is %s", context)
31
+ messages << sprintf("Target file count is %s. Are yor sure?[Y/n]", file_paths.count)
32
+ input = Readline.readline(messages.join("\n"))
33
+ break if input == 'Y'
34
+ return 0 if input == 'n'
35
+ end
20
36
 
21
37
  count = 0
22
38
  file_paths.each do |file_path|
23
- result = prepend_on_file!(file_path, code)
39
+ result = prepend_on_file!(file_path, context)
24
40
  count += 1 if result
25
41
  end
26
42
  puts sprintf('%s files has been matched.', file_paths.count)
27
- puts sprintf('%s files has been saved.', count)
43
+ puts sprintf('%s files has been updated.', count)
28
44
  return 1
29
45
  end
30
46
 
@@ -48,13 +64,13 @@ module PrependCode
48
64
  return ret
49
65
  end
50
66
 
51
- def self.prepend_on_file!(file_path, code)
67
+ def self.prepend_on_file!(file_path, context)
52
68
  f = File.open(file_path, "r+")
53
69
  lines = f.readlines
54
70
  f.close
55
71
 
56
- return false if lines && lines[0] == code + "\n"
57
- lines = [sprintf('%s%s', code, "\n")] + lines
72
+ return false if lines && lines[0] == context + "\n"
73
+ lines = [sprintf('%s%s', context, "\n")] + lines
58
74
  output = File.new(file_path, "w")
59
75
  lines.each { |line| output.write line }
60
76
  output.close
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prepend_code
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-16 00:00:00.000000000 Z
12
+ date: 2013-02-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: OptionParser
@@ -101,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
101
101
  version: '0'
102
102
  requirements: []
103
103
  rubyforge_project:
104
- rubygems_version: 1.8.24
104
+ rubygems_version: 1.8.25
105
105
  signing_key:
106
106
  specification_version: 3
107
107
  summary: Prepend context on all app ruby files.