web-puc 0.4.0 → 0.4.1

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.
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