licit 0.1 → 0.2

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/lib/licit/command.rb CHANGED
@@ -11,9 +11,12 @@ class Licit::Command
11
11
  end
12
12
 
13
13
  def check(licenser)
14
+ has_errors = false
14
15
  (licenser.check_files | licenser.check_headers).each do |severity, file, message|
15
16
  puts message
17
+ has_errors = true if severity == :error
16
18
  end
19
+ exit (has_errors ? 1 : 0)
17
20
  end
18
21
 
19
22
  def fix(licenser)
@@ -49,13 +49,21 @@ class Licit::Licenser
49
49
  def fix_headers
50
50
  each_source_file do |source_file|
51
51
  if not check_file_header(source_file)
52
- source = File.read source_file
52
+ source_lines = File.readlines source_file
53
+
54
+
55
+
53
56
  File.open source_file, 'w' do |f|
57
+ while should_skip? source_lines.first
58
+ f.write source_lines.shift
59
+ end
54
60
  header.each_line do |header_line|
55
61
  f.write "# #{header_line}"
56
62
  end
57
63
  f.write "\n"
58
- f.write source
64
+ source_lines.each do |line|
65
+ f.write line
66
+ end
59
67
  end
60
68
  end
61
69
  end
@@ -71,10 +79,15 @@ class Licit::Licenser
71
79
  end
72
80
 
73
81
  def check_file_header(file)
82
+ at_beginning = true
74
83
  File.open(file, 'r') do |f|
75
84
  begin
76
85
  header.each_line do |header_line|
77
- file_line = f.readline
86
+ begin
87
+ file_line = f.readline
88
+ end while at_beginning && should_skip?(file_line)
89
+ at_beginning = false
90
+
78
91
  return false unless file_line.start_with? '#'
79
92
  file_line = file_line[1..-1].strip
80
93
  return false if file_line != header_line.chomp
@@ -86,6 +99,13 @@ class Licit::Licenser
86
99
  true
87
100
  end
88
101
 
102
+ def should_skip? line
103
+ line = line.strip
104
+ return true if line.empty?
105
+ return true if line.start_with? '#!'
106
+ return line =~ /^#\s*(encoding|coding)/
107
+ end
108
+
89
109
  def files
90
110
  Dir.chdir(files_dir) do
91
111
  return Dir['**']
data/lib/licit/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Licit
2
- VERSION = "0.1"
2
+ VERSION = "0.2"
3
3
  end
@@ -0,0 +1,21 @@
1
+ #!/bin/env ruby
2
+ #encoding: utf8
3
+
4
+ # Copyright Line
5
+ #
6
+ # This file is part of FooBar.
7
+ #
8
+ # FooBar is free software: you can redistribute it and/or modify
9
+ # it under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation, either version 3 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # FooBar is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU General Public License
19
+ # along with FooBar. If not, see <http://www.gnu.org/licenses/>.
20
+
21
+ puts "Hello world"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: licit
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: '0.2'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-31 00:00:00.000000000 Z
12
+ date: 2012-06-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70171008169820 !ruby/object:Gem::Requirement
16
+ requirement: &70251677218640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70171008169820
24
+ version_requirements: *70251677218640
25
25
  description: Apply public licenses to files in ruby projects
26
26
  email:
27
27
  - jwajnerman@manas.com.ar
@@ -45,6 +45,7 @@ files:
45
45
  - spec/command_spec.rb
46
46
  - spec/dir2/subdir/test1.rb
47
47
  - spec/dir2/subdir/test2.rb
48
+ - spec/dir2/subdir/test3.rb
48
49
  - spec/dir2/test.rb
49
50
  - spec/dir3/licit.yml
50
51
  - spec/licenser_spec.rb
@@ -80,6 +81,7 @@ test_files:
80
81
  - spec/command_spec.rb
81
82
  - spec/dir2/subdir/test1.rb
82
83
  - spec/dir2/subdir/test2.rb
84
+ - spec/dir2/subdir/test3.rb
83
85
  - spec/dir2/test.rb
84
86
  - spec/dir3/licit.yml
85
87
  - spec/licenser_spec.rb