web-puc 0.4.0 → 0.4.1

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
- SHA1:
3
- metadata.gz: 8dafbe39ec8bf7e214f0e33396b3c842b3aaaf25
4
- data.tar.gz: db6a8fd688f4bd70bb0f1bb63aaab5feb056c229
2
+ SHA256:
3
+ metadata.gz: faa1aa54bbac8dbb2fb9f771097ca6ae18f8ab4a663ef35de54400f927e309bc
4
+ data.tar.gz: f7bb4d32df03787029342f416c0b6138a8e6c8678133497e7e687af665ff218c
5
5
  SHA512:
6
- metadata.gz: 7df86d59ddf67b66a579497927fd29b00909837f7f5aeb581d4f716d4b7fe950d50e2918a9ae0bf1cf0f566758ac7c411e7c7f5a3f5c4a3c115ca57fd44a80db
7
- data.tar.gz: df6ec4c08b020436b315bfe3c0d8ec4c10b1bdaf147291131483edfa26d15da12ba5ba371515c565ac4dce0bf2e44232bee0c34f6e126247887a343e609bb2f5
6
+ metadata.gz: e5c9a6509e20d95161b84f4e615db3f230c9ddc8fd1a6fad784a30f154d07e247fced0cf66056037c9facf7bac685529d1a699bd7b86b18b38b25db5f6196cd6
7
+ data.tar.gz: 6bcb2ea40c6c3e83baff3a9ad7e019cb4df139118bd2b80dff2aa48566380f3914bede6dc38f0ae3fcd74c13c56c0cc06822174b4d53607498313e46c29e7782
data/bin/web-puc CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env ruby
2
- require 'web-puc'
2
+ require_relative '../lib/web-puc'
data/lib/web-puc.rb CHANGED
@@ -2,14 +2,23 @@
2
2
  require 'rake'
3
3
  require 'stat'
4
4
  require 'shellwords'
5
+ require 'http'
6
+ require 'yaml'
5
7
  require_relative 'version'
6
8
 
9
+ DATA_STORE_FILENAME = File.expand_path('~/.web-puc-data.yml')
10
+ CACHE_EXPIRATION_PERIOD = 7*24*60*60
11
+
12
+ class LibraryNotImplementedException < Exception
13
+ end
14
+
7
15
  class Optparse
8
16
 
9
17
  def self.parse(args)
10
18
  options = OpenStruct.new
11
19
  options.exclude = []
12
- options.update = false
20
+ options.libs = []
21
+ options.clear = false
13
22
  options.stat = false
14
23
 
15
24
  opt_parser = OptionParser.new do |opts|
@@ -19,11 +28,8 @@ class Optparse
19
28
  options.exclude = list
20
29
  end
21
30
 
22
- opts.on('-s', '--allow-supported', 'Allow supported versions even if not latest') do
23
- end
24
-
25
- opts.on('-u', '--update', 'Update web package database') do
26
- options.update = true
31
+ opts.on('-c', '--clear', 'Clear cached version data') do
32
+ options.clear = true
27
33
  end
28
34
 
29
35
  opts.on('--stat', 'Output in STAT format') do
@@ -35,6 +41,10 @@ class Optparse
35
41
  exit
36
42
  end
37
43
 
44
+ opts.on('-l', '--libs GLOB', Array, 'libs to search') do |list|
45
+ options.libs = list
46
+ end
47
+
38
48
  opts.on_tail('-v', '--version', 'Show version') do
39
49
  puts "web-puc #{WebPuc::VERSION}"
40
50
  exit
@@ -47,18 +57,24 @@ class Optparse
47
57
 
48
58
  end
49
59
 
60
+ def get_link(lib, version)
61
+ case lib
62
+ when 'twitter-bootstrap'
63
+ "//netdna.bootstrapcdn.com/bootstrap/#{version}/"
64
+ when 'font-awesome'
65
+ "//netdna.bootstrapcdn.com/font-awesome/#{version}/"
66
+ else
67
+ raise LibraryNotImplementedException
68
+ end
69
+ end
70
+
50
71
  ARGV << '-h' if ARGV.empty?
51
72
 
52
73
  options = Optparse.parse(ARGV)
53
74
 
54
- if options.update
55
- FileUtils.rm_r Dir[File.expand_path File.dirname(__FILE__) + '/packages/*']
56
-
57
- Dir[File.expand_path File.dirname(__FILE__) + '/package-spiders/*.sh'].each { |file|
58
- puts "UPDATING #{file}"
59
- puts %x[ bash #{file} ]
60
- $stdout.flush
61
- }
75
+ if options.clear
76
+ File.delete(DATA_STORE_FILENAME) if File.exists? DATA_STORE_FILENAME
77
+ puts 'Cleared'
62
78
  exit
63
79
  end
64
80
 
@@ -75,8 +91,31 @@ cmd = "find #{files.join(' ')} -type f #{exclude_block}"
75
91
  files = %x[ #{cmd}].split("\n")
76
92
  abort 'command failed' unless $?.success?
77
93
 
78
- good_files = Dir[File.expand_path File.dirname(__FILE__) + '/packages/*.good']
79
- bad_files = good_files.map { |good_file| good_file[0, good_file.length - 'good'.length] + 'bad' }
94
+ libs_versions = Hash.new
95
+ if File.exists? DATA_STORE_FILENAME
96
+ libs_cached = YAML.load_file(DATA_STORE_FILENAME)
97
+ else
98
+ libs_cached = Hash.new
99
+ end
100
+
101
+ options.libs.each { |lib|
102
+ if !libs_cached.nil? && !libs_cached[lib].nil? && libs_cached[lib]['expired'] < Time.now
103
+ libs_versions[lib] = libs_cached[lib]
104
+ else
105
+ response = JSON.parse HTTP.get("https://api.cdnjs.com/libraries/#{lib}?fields=assets").body
106
+ unless response['assets'].nil?
107
+ libs_versions[lib] = Hash.new
108
+ libs_versions[lib]['version'] = Array.new
109
+ libs_versions[lib]['expired'] = Time.now + CACHE_EXPIRATION_PERIOD
110
+ response['assets'].each_with_index { |asset, index|
111
+ # first version is a most actual
112
+ next if index == 0
113
+ libs_versions[lib]['version'].push asset['version']
114
+ }
115
+ end
116
+ end
117
+ }
118
+ File.write(DATA_STORE_FILENAME, libs_cached.merge(libs_versions).to_yaml)
80
119
 
81
120
  process = StatModule::Process.new('WebPuc')
82
121
  process.version = "#{WebPuc::VERSION}"
@@ -87,29 +126,34 @@ process.website = 'https://github.com/fulldecent/web-puc'
87
126
  process.repeatability = 'Volatile'
88
127
  stat = StatModule::Stat.new(process)
89
128
 
129
+ stat.print_header if options.stat
90
130
  files.each { |file|
91
- bad_files.each { |bad_file|
92
- file = file.shellescape
93
- bad_file = bad_file.shellescape
94
-
95
- matches = %x[ grep -o -nh -F -f #{bad_file} #{file} 2>/dev/null].lines
96
- matches.each { |match|
97
- description = match[match.index(':') + 1, match.length]
98
- line = match[0, match.index(':')].to_i
99
- location = StatModule::Location.new(file)
100
- location.begin_line = line
101
- location.end_line = line
102
-
103
- finding = StatModule::Finding.new(true, description, 'Old version')
104
- finding.location = location
105
-
106
- stat.findings.push(finding)
131
+ file = file.shellescape
132
+ libs_versions.each { |lib, val|
133
+ val['version'].each { |v|
134
+
135
+ link = get_link(lib, v)
136
+ matches = %x[ grep -nh -F #{link} #{file} 2>/dev/null].lines
137
+ matches.each { |match|
138
+ description = match[match.index(':') + 1, match.length]
139
+ line = match[0, match.index(':')].to_i
140
+ location = StatModule::Location.new(file)
141
+ location.begin_line = line
142
+ location.end_line = line
143
+
144
+ finding = StatModule::Finding.new(true, description, 'Old version')
145
+ finding.location = location
146
+
147
+ stat.findings.push(finding)
148
+
149
+ stat.print_finding if options.stat
150
+ }
107
151
  }
108
152
  }
109
153
  }
110
154
 
111
155
  if options.stat
112
- puts stat.to_json
156
+ stat.print_footer
113
157
  else
114
158
  if stat.findings.length > 0
115
159
  stat.findings.each { |finding|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web-puc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Entriken
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-23 00:00:00.000000000 Z
11
+ date: 2021-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.0.6
41
+ - !ruby/object:Gem::Dependency
42
+ name: http
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.2'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rspec
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -60,13 +74,6 @@ extensions: []
60
74
  extra_rdoc_files: []
61
75
  files:
62
76
  - bin/web-puc
63
- - lib/package-spiders/bootstrap-maxcdn.sh
64
- - lib/package-spiders/fontawesome-maxcdn.sh
65
- - lib/packages/bootstrap.bad
66
- - lib/packages/bootstrap.good
67
- - lib/packages/font-awesome.bad
68
- - lib/packages/font-awesome.good
69
- - lib/version.rb
70
77
  - lib/web-puc.rb
71
78
  homepage: https://github.com/fulldecent/web-puc
72
79
  licenses:
@@ -87,8 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
87
94
  - !ruby/object:Gem::Version
88
95
  version: '0'
89
96
  requirements: []
90
- rubyforge_project:
91
- rubygems_version: 2.6.11
97
+ rubygems_version: 3.0.3
92
98
  signing_key:
93
99
  specification_version: 4
94
100
  summary: Web Package Update Checker
@@ -1,29 +0,0 @@
1
- #!/bin/bash
2
-
3
- echo "Creating package files for bootstrap"
4
-
5
- BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
6
- BASEDIR="$(dirname "$BASEDIR")"
7
- GOODFILE=$BASEDIR/packages/bootstrap.good
8
- BADFILE=$BASEDIR/packages/bootstrap.bad
9
-
10
- # Clone or pull
11
- [ ! -d "$BASEDIR/package-spiders/maxcdn-bootstrap/.git" ] &&
12
- git clone https://github.com/MaxCDN/bootstrap-cdn.git "$BASEDIR/package-spiders/maxcdn-bootstrap" ||
13
- cd "$BASEDIR/package-spiders/maxcdn-bootstrap/" && git pull
14
-
15
- cd "$BASEDIR/package-spiders/maxcdn-bootstrap/public/twitter-bootstrap/"
16
- for VER in $(ls); do
17
- [ -L $VER ] && continue
18
- [ -f $VER ] && continue
19
- if [ "$(readlink latest)" = "$VER" ]
20
- then
21
- echo '//netdna.bootstrapcdn.com/bootstrap/'$VER'/css/bootstrap.min.css' > $GOODFILE
22
- else
23
- echo '//netdna.bootstrapcdn.com/bootstrap/'$VER'/css/bootstrap.min.css' >> $BADFILE
24
- echo "Bootstrap v$VER (http://getbootstrap.com)" >> $BADFILE
25
- fi
26
- echo '//netdna.bootstrapcdn.com/bootstrap/'$VER'/css/bootstrap.css' >> $BADFILE
27
- done
28
-
29
- sort -u -o $BADFILE $BADFILE
@@ -1,29 +0,0 @@
1
- #!/bin/bash
2
-
3
- echo "Creating package files for font-awesome"
4
-
5
- BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
6
- BASEDIR="$(dirname "$BASEDIR")"
7
- GOODFILE=$BASEDIR/packages/font-awesome.good
8
- BADFILE=$BASEDIR/packages/font-awesome.bad
9
-
10
- # Clone or pull
11
- [ ! -d "$BASEDIR/package-spiders/maxcdn-bootstrap/.git" ] &&
12
- git clone https://github.com/MaxCDN/bootstrap-cdn.git "$BASEDIR/package-spiders/maxcdn-bootstrap" ||
13
- cd "$BASEDIR/package-spiders/maxcdn-bootstrap/" && git pull
14
-
15
- cd "$BASEDIR/package-spiders/maxcdn-bootstrap/public/font-awesome/"
16
- for VER in $(ls); do
17
- [ -L $VER ] && continue
18
- [ -f $VER ] && continue
19
- if [ "$(readlink latest)" = "$VER/" ]
20
- then
21
- echo '//netdna.bootstrapcdn.com/font-awesome/'$VER'/css/font-awesome.min.css' > $GOODFILE
22
- else
23
- echo '//netdna.bootstrapcdn.com/font-awesome/'$VER'/css/font-awesome.min.css' >> $BADFILE
24
- echo "Font Awesome $VER by @davegandy" >> $BADFILE
25
- fi
26
- echo '//netdna.bootstrapcdn.com/font-awesome/'$VER'/css/font-awesome.css' >> $BADFILE
27
- done
28
-
29
- sort -u -o $BADFILE $BADFILE
@@ -1,94 +0,0 @@
1
- Bootstrap v2.0.4 (http://getbootstrap.com)
2
- Bootstrap v2.1.0 (http://getbootstrap.com)
3
- Bootstrap v2.1.1 (http://getbootstrap.com)
4
- Bootstrap v2.2.0 (http://getbootstrap.com)
5
- Bootstrap v2.2.1 (http://getbootstrap.com)
6
- Bootstrap v2.2.2 (http://getbootstrap.com)
7
- Bootstrap v2.3.0 (http://getbootstrap.com)
8
- Bootstrap v2.3.1 (http://getbootstrap.com)
9
- Bootstrap v2.3.2 (http://getbootstrap.com)
10
- Bootstrap v3.0.0 (http://getbootstrap.com)
11
- Bootstrap v3.0.0-rc1 (http://getbootstrap.com)
12
- Bootstrap v3.0.0-rc2 (http://getbootstrap.com)
13
- Bootstrap v3.0.0-wip (http://getbootstrap.com)
14
- Bootstrap v3.0.1 (http://getbootstrap.com)
15
- Bootstrap v3.0.2 (http://getbootstrap.com)
16
- Bootstrap v3.0.3 (http://getbootstrap.com)
17
- Bootstrap v3.1.0 (http://getbootstrap.com)
18
- Bootstrap v3.1.1 (http://getbootstrap.com)
19
- Bootstrap v3.2.0 (http://getbootstrap.com)
20
- Bootstrap v3.3.0 (http://getbootstrap.com)
21
- Bootstrap v3.3.1 (http://getbootstrap.com)
22
- Bootstrap v3.3.2 (http://getbootstrap.com)
23
- Bootstrap v3.3.4 (http://getbootstrap.com)
24
- Bootstrap v3.3.5 (http://getbootstrap.com)
25
- Bootstrap v3.3.6 (http://getbootstrap.com)
26
- Bootstrap v4.0.0-alpha.2 (http://getbootstrap.com)
27
- Bootstrap v4.0.0-alpha.3 (http://getbootstrap.com)
28
- Bootstrap v4.0.0-alpha.4 (http://getbootstrap.com)
29
- Bootstrap v4.0.0-alpha.5 (http://getbootstrap.com)
30
- Bootstrap v4.0.0-alpha.6 (http://getbootstrap.com)
31
- Bootstrap v4.0.0-alpha (http://getbootstrap.com)
32
- //netdna.bootstrapcdn.com/bootstrap/2.0.4/css/bootstrap.css
33
- //netdna.bootstrapcdn.com/bootstrap/2.0.4/css/bootstrap.min.css
34
- //netdna.bootstrapcdn.com/bootstrap/2.1.0/css/bootstrap.css
35
- //netdna.bootstrapcdn.com/bootstrap/2.1.0/css/bootstrap.min.css
36
- //netdna.bootstrapcdn.com/bootstrap/2.1.1/css/bootstrap.css
37
- //netdna.bootstrapcdn.com/bootstrap/2.1.1/css/bootstrap.min.css
38
- //netdna.bootstrapcdn.com/bootstrap/2.2.0/css/bootstrap.css
39
- //netdna.bootstrapcdn.com/bootstrap/2.2.0/css/bootstrap.min.css
40
- //netdna.bootstrapcdn.com/bootstrap/2.2.1/css/bootstrap.css
41
- //netdna.bootstrapcdn.com/bootstrap/2.2.1/css/bootstrap.min.css
42
- //netdna.bootstrapcdn.com/bootstrap/2.2.2/css/bootstrap.css
43
- //netdna.bootstrapcdn.com/bootstrap/2.2.2/css/bootstrap.min.css
44
- //netdna.bootstrapcdn.com/bootstrap/2.3.0/css/bootstrap.css
45
- //netdna.bootstrapcdn.com/bootstrap/2.3.0/css/bootstrap.min.css
46
- //netdna.bootstrapcdn.com/bootstrap/2.3.1/css/bootstrap.css
47
- //netdna.bootstrapcdn.com/bootstrap/2.3.1/css/bootstrap.min.css
48
- //netdna.bootstrapcdn.com/bootstrap/2.3.2/css/bootstrap.css
49
- //netdna.bootstrapcdn.com/bootstrap/2.3.2/css/bootstrap.min.css
50
- //netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.css
51
- //netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css
52
- //netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/css/bootstrap.css
53
- //netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/css/bootstrap.min.css
54
- //netdna.bootstrapcdn.com/bootstrap/3.0.0-rc2/css/bootstrap.css
55
- //netdna.bootstrapcdn.com/bootstrap/3.0.0-rc2/css/bootstrap.min.css
56
- //netdna.bootstrapcdn.com/bootstrap/3.0.0-wip/css/bootstrap.css
57
- //netdna.bootstrapcdn.com/bootstrap/3.0.0-wip/css/bootstrap.min.css
58
- //netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.css
59
- //netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css
60
- //netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.css
61
- //netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css
62
- //netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.css
63
- //netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css
64
- //netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.css
65
- //netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css
66
- //netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.css
67
- //netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css
68
- //netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.css
69
- //netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css
70
- //netdna.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.css
71
- //netdna.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css
72
- //netdna.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.css
73
- //netdna.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css
74
- //netdna.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.css
75
- //netdna.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css
76
- //netdna.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.css
77
- //netdna.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css
78
- //netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css
79
- //netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
80
- //netdna.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.css
81
- //netdna.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
82
- //netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css
83
- //netdna.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/css/bootstrap.css
84
- //netdna.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/css/bootstrap.min.css
85
- //netdna.bootstrapcdn.com/bootstrap/4.0.0-alpha.3/css/bootstrap.css
86
- //netdna.bootstrapcdn.com/bootstrap/4.0.0-alpha.3/css/bootstrap.min.css
87
- //netdna.bootstrapcdn.com/bootstrap/4.0.0-alpha.4/css/bootstrap.css
88
- //netdna.bootstrapcdn.com/bootstrap/4.0.0-alpha.4/css/bootstrap.min.css
89
- //netdna.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/css/bootstrap.css
90
- //netdna.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/css/bootstrap.min.css
91
- //netdna.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.css
92
- //netdna.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css
93
- //netdna.bootstrapcdn.com/bootstrap/4.0.0-alpha/css/bootstrap.css
94
- //netdna.bootstrapcdn.com/bootstrap/4.0.0-alpha/css/bootstrap.min.css
@@ -1 +0,0 @@
1
- //netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css
@@ -1,61 +0,0 @@
1
- Font Awesome 2.0 by @davegandy
2
- Font Awesome 3.0.2 by @davegandy
3
- Font Awesome 3.0 by @davegandy
4
- Font Awesome 3.1.0 by @davegandy
5
- Font Awesome 3.1.1 by @davegandy
6
- Font Awesome 3.2.0 by @davegandy
7
- Font Awesome 3.2.1 by @davegandy
8
- Font Awesome 4.0.0 by @davegandy
9
- Font Awesome 4.0.1 by @davegandy
10
- Font Awesome 4.0.2 by @davegandy
11
- Font Awesome 4.0.3 by @davegandy
12
- Font Awesome 4.1.0 by @davegandy
13
- Font Awesome 4.2.0 by @davegandy
14
- Font Awesome 4.3.0 by @davegandy
15
- Font Awesome 4.4.0 by @davegandy
16
- Font Awesome 4.5.0 by @davegandy
17
- Font Awesome 4.6.0 by @davegandy
18
- Font Awesome 4.6.1 by @davegandy
19
- Font Awesome 4.6.2 by @davegandy
20
- Font Awesome 4.6.3 by @davegandy
21
- //netdna.bootstrapcdn.com/font-awesome/2.0/css/font-awesome.css
22
- //netdna.bootstrapcdn.com/font-awesome/2.0/css/font-awesome.min.css
23
- //netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css
24
- //netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.min.css
25
- //netdna.bootstrapcdn.com/font-awesome/3.0/css/font-awesome.css
26
- //netdna.bootstrapcdn.com/font-awesome/3.0/css/font-awesome.min.css
27
- //netdna.bootstrapcdn.com/font-awesome/3.1.0/css/font-awesome.css
28
- //netdna.bootstrapcdn.com/font-awesome/3.1.0/css/font-awesome.min.css
29
- //netdna.bootstrapcdn.com/font-awesome/3.1.1/css/font-awesome.css
30
- //netdna.bootstrapcdn.com/font-awesome/3.1.1/css/font-awesome.min.css
31
- //netdna.bootstrapcdn.com/font-awesome/3.2.0/css/font-awesome.css
32
- //netdna.bootstrapcdn.com/font-awesome/3.2.0/css/font-awesome.min.css
33
- //netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css
34
- //netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css
35
- //netdna.bootstrapcdn.com/font-awesome/4.0.0/css/font-awesome.css
36
- //netdna.bootstrapcdn.com/font-awesome/4.0.0/css/font-awesome.min.css
37
- //netdna.bootstrapcdn.com/font-awesome/4.0.1/css/font-awesome.css
38
- //netdna.bootstrapcdn.com/font-awesome/4.0.1/css/font-awesome.min.css
39
- //netdna.bootstrapcdn.com/font-awesome/4.0.2/css/font-awesome.css
40
- //netdna.bootstrapcdn.com/font-awesome/4.0.2/css/font-awesome.min.css
41
- //netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css
42
- //netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css
43
- //netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.css
44
- //netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css
45
- //netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.css
46
- //netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css
47
- //netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.css
48
- //netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css
49
- //netdna.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.css
50
- //netdna.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css
51
- //netdna.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.css
52
- //netdna.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css
53
- //netdna.bootstrapcdn.com/font-awesome/4.6.0/css/font-awesome.css
54
- //netdna.bootstrapcdn.com/font-awesome/4.6.0/css/font-awesome.min.css
55
- //netdna.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.css
56
- //netdna.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css
57
- //netdna.bootstrapcdn.com/font-awesome/4.6.2/css/font-awesome.css
58
- //netdna.bootstrapcdn.com/font-awesome/4.6.2/css/font-awesome.min.css
59
- //netdna.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.css
60
- //netdna.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css
61
- //netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.css
@@ -1 +0,0 @@
1
- //netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css
data/lib/version.rb DELETED
@@ -1,3 +0,0 @@
1
- module WebPuc
2
- VERSION = '0.4.0'
3
- end