license_header 0.0.2 → 0.0.3

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.
data/bin/license_header CHANGED
@@ -64,14 +64,14 @@ opts = OptionParser.new do |opts|
64
64
 
65
65
  opts.on_tail('-h', '--help', "Show this message") do
66
66
  puts opts
67
- exit
67
+ exit 1
68
68
  end
69
69
  end
70
70
  opts.parse!
71
71
 
72
- if command.nil? or options[:header].nil? or ARGV.empty?
72
+ if command.nil? or ARGV.empty?
73
73
  puts opts
74
- exit
74
+ exit 1
75
75
  end
76
76
 
77
77
  targets = ARGV.collect do |spec|
@@ -91,6 +91,10 @@ when :audit
91
91
  $stderr.puts "#{files[:invalid].length} files have invalid headers"
92
92
  $stderr.puts files[:invalid].join("\n") if options[:verbose]
93
93
  when :update
94
+ if options[:header].nil?
95
+ put opts
96
+ exit 1
97
+ end
94
98
  $stderr.puts "#{invalid.length} files have missing or incorrect headers"
95
99
  auditor.process_files(:update, * invalid) do |file, format|
96
100
  response = getYyn("Update header in #{file}?")
@@ -4,21 +4,23 @@ require 'fileutils'
4
4
  # block as a header.
5
5
 
6
6
  module LicenseHeader
7
- # For each language you can define three variables
7
+ # For each language you can define five variables
8
8
  #
9
9
  # :pre will be prepended to the header
10
10
  # :each will be prepended to each line of the header
11
11
  # :post will be appended to the end of the file
12
+ # :sep determines whether an empty line should separate the header from the body
13
+ # :exts lists the extensions the syntax will apply to
12
14
  #
13
15
  # Only :each is required; if the other two are not provided they will be
14
16
  # ignored
15
17
  LANGUAGE_SYNTAX = {
16
- :css => { :pre => '/* ', :each => ' * ', :post => '*/', :exts => %w(.css .scss) },
17
- :erb => { :pre => '<%#', :each => '', :post => '%>', :exts => %w(.erb) },
18
- :haml => { :pre => '-#', :each => ' ', :exts => %w(.haml) },
19
- :html => { :pre => '<!--', :each => '', :post => '-->', :exts => %w(.html) },
20
- :javascript => { :pre => '/* ', :each => ' * ', :post => '*/', :exts => %w(.js .json) },
21
- :ruby => { :each => '# ', :exts => %w(.rb .rake .coffee .pp) },
18
+ :css => { :pre => '/* ', :each => ' * ', :post => '*/', :sep => true, :exts => %w(.css .scss) },
19
+ :erb => { :pre => '<%#', :each => '', :post => '%>', :sep => false, :exts => %w(.erb) },
20
+ :haml => { :pre => '-#', :each => ' ', :sep => true, :exts => %w(.haml) },
21
+ :html => { :pre => '<!--', :each => '', :post => '-->', :sep => false, :exts => %w(.html) },
22
+ :javascript => { :pre => '/* ', :each => ' * ', :post => '*/', :sep => true, :exts => %w(.js .json) },
23
+ :ruby => { :each => '# ', :sep => true, :exts => %w(.rb .rake .coffee .pp) },
22
24
  }
23
25
 
24
26
  class Auditor
@@ -96,8 +98,9 @@ module LicenseHeader
96
98
  if end_of_license.nil?
97
99
  return false
98
100
  else
99
- extra_lines = format[:post].nil? ? 1 : 2
100
- source_file.shift(end_of_license+extra_lines+1)
101
+ end_of_license += 1 if format[:post]
102
+ end_of_license += 1 if format[:sep]
103
+ source_file.shift(end_of_license+1)
101
104
  return true
102
105
  end
103
106
  end
@@ -123,19 +126,18 @@ module LicenseHeader
123
126
  # Javascript that uses /* */ syntax
124
127
  def initialize_headers
125
128
  @headers = LANGUAGE_SYNTAX.clone
126
- base = File.read(@header)
129
+ base = File.read(@header) rescue nil
127
130
  # Break each line down so we can do easy manipulation to create our new
128
131
  # versions
129
- license_terms = base.split(/\n/)
132
+ license_terms = base.nil? ? [] : base.split(/\n/)
130
133
 
131
134
  @headers.each_pair do |lang,syntax|
132
135
  syntax[:header] = []
133
136
  syntax[:header] << syntax[:pre] unless syntax[:pre].nil?
134
- syntax[:header] << "#{syntax[:each]}--- BEGIN LICENSE_HEADER BLOCK ---"
135
137
  syntax[:header] += license_terms.collect {|line| syntax[:each] + line }
136
138
  syntax[:header] << "#{syntax[:each]}--- #{'E'}ND LICENSE_HEADER BLOCK ---"
137
139
  syntax[:header] << syntax[:post] unless syntax[:post].nil?
138
- syntax[:header] << ""
140
+ syntax[:header] << "" if syntax[:sep]
139
141
  end
140
142
  end
141
143
  end
@@ -1,3 +1,3 @@
1
1
  module LicenseHeader
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: license_header
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-04-18 00:00:00.000000000 Z
14
+ date: 2013-04-19 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: highline
@@ -86,18 +86,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
86
86
  - - ! '>='
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
- segments:
90
- - 0
91
- hash: 3490609554518163732
92
89
  required_rubygems_version: !ruby/object:Gem::Requirement
93
90
  none: false
94
91
  requirements:
95
92
  - - ! '>='
96
93
  - !ruby/object:Gem::Version
97
94
  version: '0'
98
- segments:
99
- - 0
100
- hash: 3490609554518163732
101
95
  requirements: []
102
96
  rubyforge_project:
103
97
  rubygems_version: 1.8.23
@@ -106,3 +100,4 @@ specification_version: 3
106
100
  summary: This gem will assist in making sure that all files have the right license
107
101
  block as a header.
108
102
  test_files: []
103
+ has_rdoc: