entreprise7pro-bootstrap-sass 3.4.6
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 +7 -0
- data/.gitignore +20 -0
- data/.travis.yml +19 -0
- data/CHANGELOG.md +233 -0
- data/CONTRIBUTING.md +86 -0
- data/Gemfile +7 -0
- data/LICENSE +22 -0
- data/README.md +376 -0
- data/Rakefile +98 -0
- data/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
- data/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +288 -0
- data/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- data/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- data/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
- data/assets/images/.keep +0 -0
- data/assets/javascripts/bootstrap/affix.js +166 -0
- data/assets/javascripts/bootstrap/alert.js +97 -0
- data/assets/javascripts/bootstrap/button.js +136 -0
- data/assets/javascripts/bootstrap/carousel.js +248 -0
- data/assets/javascripts/bootstrap/collapse.js +214 -0
- data/assets/javascripts/bootstrap/dropdown.js +167 -0
- data/assets/javascripts/bootstrap/modal.js +356 -0
- data/assets/javascripts/bootstrap/popover.js +123 -0
- data/assets/javascripts/bootstrap/scrollspy.js +174 -0
- data/assets/javascripts/bootstrap/tab.js +157 -0
- data/assets/javascripts/bootstrap/tooltip.js +679 -0
- data/assets/javascripts/bootstrap/transition.js +61 -0
- data/assets/javascripts/bootstrap-sprockets.js +12 -0
- data/assets/javascripts/bootstrap.js +2611 -0
- data/assets/javascripts/bootstrap.min.js +7 -0
- data/assets/javascripts/jquery.min.js +2 -0
- data/assets/stylesheets/_bootstrap-compass.scss +9 -0
- data/assets/stylesheets/_bootstrap-mincer.scss +19 -0
- data/assets/stylesheets/_bootstrap-sprockets.scss +9 -0
- data/assets/stylesheets/_bootstrap.scss +56 -0
- data/assets/stylesheets/bootstrap/_alerts.scss +73 -0
- data/assets/stylesheets/bootstrap/_badges.scss +68 -0
- data/assets/stylesheets/bootstrap/_breadcrumbs.scss +28 -0
- data/assets/stylesheets/bootstrap/_button-groups.scss +244 -0
- data/assets/stylesheets/bootstrap/_buttons.scss +168 -0
- data/assets/stylesheets/bootstrap/_carousel.scss +263 -0
- data/assets/stylesheets/bootstrap/_close.scss +37 -0
- data/assets/stylesheets/bootstrap/_code.scss +70 -0
- data/assets/stylesheets/bootstrap/_component-animations.scss +38 -0
- data/assets/stylesheets/bootstrap/_dropdowns.scss +212 -0
- data/assets/stylesheets/bootstrap/_forms.scss +602 -0
- data/assets/stylesheets/bootstrap/_glyphicons.scss +307 -0
- data/assets/stylesheets/bootstrap/_grid.scss +94 -0
- data/assets/stylesheets/bootstrap/_input-groups.scss +166 -0
- data/assets/stylesheets/bootstrap/_jumbotron.scss +55 -0
- data/assets/stylesheets/bootstrap/_labels.scss +66 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +128 -0
- data/assets/stylesheets/bootstrap/_media.scss +66 -0
- data/assets/stylesheets/bootstrap/_mixins.scss +39 -0
- data/assets/stylesheets/bootstrap/_modals.scss +150 -0
- data/assets/stylesheets/bootstrap/_navbar.scss +657 -0
- data/assets/stylesheets/bootstrap/_navs.scss +242 -0
- data/assets/stylesheets/bootstrap/_normalize.scss +422 -0
- data/assets/stylesheets/bootstrap/_pager.scss +54 -0
- data/assets/stylesheets/bootstrap/_pagination.scss +86 -0
- data/assets/stylesheets/bootstrap/_panels.scss +271 -0
- data/assets/stylesheets/bootstrap/_popovers.scss +126 -0
- data/assets/stylesheets/bootstrap/_print.scss +99 -0
- data/assets/stylesheets/bootstrap/_progress-bars.scss +87 -0
- data/assets/stylesheets/bootstrap/_responsive-embed.scss +35 -0
- data/assets/stylesheets/bootstrap/_responsive-utilities.scss +157 -0
- data/assets/stylesheets/bootstrap/_scaffolding.scss +161 -0
- data/assets/stylesheets/bootstrap/_tables.scss +233 -0
- data/assets/stylesheets/bootstrap/_theme.scss +293 -0
- data/assets/stylesheets/bootstrap/_thumbnails.scss +38 -0
- data/assets/stylesheets/bootstrap/_tooltip.scss +112 -0
- data/assets/stylesheets/bootstrap/_type.scss +299 -0
- data/assets/stylesheets/bootstrap/_utilities.scss +55 -0
- data/assets/stylesheets/bootstrap/_variables.scss +875 -0
- data/assets/stylesheets/bootstrap/_wells.scss +29 -0
- data/assets/stylesheets/bootstrap/mixins/_alerts.scss +15 -0
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +12 -0
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +18 -0
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +61 -0
- data/assets/stylesheets/bootstrap/mixins/_center-block.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +22 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +88 -0
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +50 -0
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +82 -0
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +123 -0
- data/assets/stylesheets/bootstrap/mixins/_hide-text.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_image.scss +28 -0
- data/assets/stylesheets/bootstrap/mixins/_labels.scss +12 -0
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +32 -0
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +11 -0
- data/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +10 -0
- data/assets/stylesheets/bootstrap/mixins/_opacity.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +24 -0
- data/assets/stylesheets/bootstrap/mixins/_panels.scss +24 -0
- data/assets/stylesheets/bootstrap/mixins/_progress-bar.scss +10 -0
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +18 -0
- data/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
- data/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +17 -0
- data/assets/stylesheets/bootstrap/mixins/_size.scss +10 -0
- data/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +9 -0
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +28 -0
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +12 -0
- data/assets/stylesheets/bootstrap/mixins/_text-overflow.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +210 -0
- data/bower.json +38 -0
- data/composer.json +21 -0
- data/entreprise7pro-bootstrap-sass.gemspec +37 -0
- data/eyeglass-exports.js +7 -0
- data/lib/entreprise7pro-bootstrap-sass/engine.rb +17 -0
- data/lib/entreprise7pro-bootstrap-sass/version.rb +4 -0
- data/lib/entreprise7pro-bootstrap-sass.rb +91 -0
- data/package-lock.json +1011 -0
- data/package.json +48 -0
- data/sache.json +5 -0
- data/tasks/bower.rake +31 -0
- data/tasks/converter/char_string_scanner.rb +38 -0
- data/tasks/converter/fonts_conversion.rb +16 -0
- data/tasks/converter/js_conversion.rb +47 -0
- data/tasks/converter/less_conversion.rb +752 -0
- data/tasks/converter/logger.rb +57 -0
- data/tasks/converter/network.rb +97 -0
- data/tasks/converter.rb +80 -0
- data/templates/project/_bootstrap-variables.sass +876 -0
- data/templates/project/manifest.rb +20 -0
- data/templates/project/styles.sass +6 -0
- data/test/compilation_test.rb +30 -0
- data/test/dummy_node_mincer/apple-touch-icon-144-precomposed.png +0 -0
- data/test/dummy_node_mincer/application.css.ejs.scss +6 -0
- data/test/dummy_node_mincer/manifest.js +87 -0
- data/test/dummy_rails/README.rdoc +3 -0
- data/test/dummy_rails/Rakefile +6 -0
- data/test/dummy_rails/app/assets/images/.keep +0 -0
- data/test/dummy_rails/app/assets/javascripts/application.js +2 -0
- data/test/dummy_rails/app/assets/stylesheets/application.sass +2 -0
- data/test/dummy_rails/app/controllers/application_controller.rb +5 -0
- data/test/dummy_rails/app/controllers/pages_controller.rb +4 -0
- data/test/dummy_rails/app/helpers/application_helper.rb +2 -0
- data/test/dummy_rails/app/views/layouts/application.html.erb +14 -0
- data/test/dummy_rails/app/views/pages/root.html.slim +84 -0
- data/test/dummy_rails/config/application.rb +31 -0
- data/test/dummy_rails/config/boot.rb +5 -0
- data/test/dummy_rails/config/environment.rb +5 -0
- data/test/dummy_rails/config/environments/development.rb +23 -0
- data/test/dummy_rails/config/environments/production.rb +82 -0
- data/test/dummy_rails/config/environments/test.rb +38 -0
- data/test/dummy_rails/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy_rails/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy_rails/config/initializers/inflections.rb +16 -0
- data/test/dummy_rails/config/initializers/mime_types.rb +5 -0
- data/test/dummy_rails/config/initializers/secret_token.rb +18 -0
- data/test/dummy_rails/config/initializers/session_store.rb +3 -0
- data/test/dummy_rails/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy_rails/config/locales/en.yml +3 -0
- data/test/dummy_rails/config/locales/es.yml +3 -0
- data/test/dummy_rails/config/routes.rb +3 -0
- data/test/dummy_rails/config.ru +4 -0
- data/test/dummy_rails/log/.keep +0 -0
- data/test/dummy_sass_only/Gemfile +4 -0
- data/test/dummy_sass_only/compile.rb +20 -0
- data/test/dummy_sass_only/import_all.scss +2 -0
- data/test/gemfiles/default.gemfile +3 -0
- data/test/node_mincer_test.rb +35 -0
- data/test/node_sass_compile_test.sh +9 -0
- data/test/pages_test.rb +14 -0
- data/test/sass_test.rb +29 -0
- data/test/sprockets_rails_test.rb +31 -0
- data/test/support/dummy_rails_integration.rb +22 -0
- data/test/support/reporting.rb +27 -0
- data/test/test_helper.rb +36 -0
- data/test/test_helper_rails.rb +6 -0
- metadata +467 -0
@@ -0,0 +1,57 @@
|
|
1
|
+
class Converter
|
2
|
+
class Logger
|
3
|
+
include Term::ANSIColor
|
4
|
+
|
5
|
+
def log_status(status)
|
6
|
+
puts bold status
|
7
|
+
end
|
8
|
+
|
9
|
+
def log_file_info(s)
|
10
|
+
puts " #{magenta s}"
|
11
|
+
end
|
12
|
+
|
13
|
+
def log_transform(*args, from: caller[1][/`.*'/][1..-2].sub(/^block in /, ''))
|
14
|
+
puts " #{cyan from}#{cyan ": #{args * ', '}" unless args.empty?}"
|
15
|
+
end
|
16
|
+
|
17
|
+
def log_processing(name)
|
18
|
+
puts yellow " #{File.basename(name)}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def log_processed(name)
|
22
|
+
puts green " #{name}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def log_http_get_file(url, cached = false)
|
26
|
+
s = " #{'CACHED ' if cached}GET #{url}..."
|
27
|
+
if cached
|
28
|
+
puts dark green s
|
29
|
+
else
|
30
|
+
puts dark cyan s
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def log_http_get_files(files, from, cached = false)
|
35
|
+
return if files.empty?
|
36
|
+
s = " #{'CACHED ' if cached}GET #{files.length} files from #{from} #{files * ' '}..."
|
37
|
+
if cached
|
38
|
+
puts dark green s
|
39
|
+
else
|
40
|
+
puts dark cyan s
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def puts(*args)
|
45
|
+
STDERR.puts *args unless @silence
|
46
|
+
end
|
47
|
+
|
48
|
+
alias log puts
|
49
|
+
|
50
|
+
def silence_log
|
51
|
+
@silence = true
|
52
|
+
yield
|
53
|
+
ensure
|
54
|
+
@silence = false
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
require 'shellwords'
|
2
|
+
class Converter
|
3
|
+
module Network
|
4
|
+
protected
|
5
|
+
|
6
|
+
def get_paths_by_type(dir, file_re, recursive = true)
|
7
|
+
get_file_paths(dir, recursive).select { |path| path =~ file_re }
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_file_paths(dir, recursive = true)
|
11
|
+
get_tree(get_tree_sha(dir), recursive)['tree'].select { |f| f['type'] == 'blob' }.map { |f| f['path'] }
|
12
|
+
end
|
13
|
+
|
14
|
+
def read_files(path, files)
|
15
|
+
full_path = "https://raw.githubusercontent.com/#@repo/#@branch_sha/#{path}"
|
16
|
+
contents = read_cached_files(path, files)
|
17
|
+
log_http_get_files contents.keys, full_path, true if contents.keys
|
18
|
+
files -= contents.keys
|
19
|
+
log_http_get_files files, full_path, false
|
20
|
+
files.map do |name|
|
21
|
+
Thread.start {
|
22
|
+
contents[name] = URI.open("#{full_path}/#{name}").read
|
23
|
+
Thread.exclusive { write_cached_files path, name => contents[name] }
|
24
|
+
}
|
25
|
+
end.each(&:join)
|
26
|
+
contents
|
27
|
+
end
|
28
|
+
|
29
|
+
def read_cached_files(path, files)
|
30
|
+
full_path = "#@cache_path/#@branch_sha/#{path}"
|
31
|
+
contents = {}
|
32
|
+
if File.directory?(full_path)
|
33
|
+
files.each do |name|
|
34
|
+
path = "#{full_path}/#{name}"
|
35
|
+
contents[name] = File.read(path, mode: 'rb') if File.exist?(path)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
contents
|
39
|
+
end
|
40
|
+
|
41
|
+
def write_cached_files(path, files)
|
42
|
+
full_path = "./#@cache_path/#@branch_sha/#{path}"
|
43
|
+
files.each do |name, content|
|
44
|
+
FileUtils.mkdir_p File.dirname(File.join(full_path, name))
|
45
|
+
File.open("#{full_path}/#{name}", 'wb') { |f| f.write content }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
def get_file(url)
|
51
|
+
uri = URI(url)
|
52
|
+
cache_path = "./#@cache_path#{uri.path}#{uri.query.tr('?&=', '-') if uri.query}"
|
53
|
+
FileUtils.mkdir_p File.dirname(cache_path)
|
54
|
+
if File.exist?(cache_path)
|
55
|
+
log_http_get_file url, true
|
56
|
+
File.read(cache_path, mode: 'rb')
|
57
|
+
else
|
58
|
+
log_http_get_file url, false
|
59
|
+
content = URI.open(url).read
|
60
|
+
File.open(cache_path, 'wb') { |f| f.write content }
|
61
|
+
content
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# get sha of the branch (= the latest commit)
|
66
|
+
def get_branch_sha
|
67
|
+
@branch_sha ||= begin
|
68
|
+
if @branch + "\n" == %x[git rev-parse #@branch]
|
69
|
+
@branch
|
70
|
+
else
|
71
|
+
cmd = "git ls-remote #{Shellwords.escape "https://github.com/#@repo"} #@branch"
|
72
|
+
log cmd
|
73
|
+
result = %x[#{cmd}]
|
74
|
+
raise 'Could not get branch sha!' unless $?.success? && !result.empty?
|
75
|
+
result.split(/\s+/).first
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
# Get the sha of a dir
|
81
|
+
def get_tree_sha(dir, tree = get_trees)
|
82
|
+
tree['tree'].find { |t| t['path'] == dir }['sha']
|
83
|
+
end
|
84
|
+
|
85
|
+
def get_trees
|
86
|
+
@trees ||= get_tree(@branch_sha)
|
87
|
+
end
|
88
|
+
|
89
|
+
def get_tree(sha, recursive = true)
|
90
|
+
get_json("https://api.github.com/repos/#@repo/git/trees/#{sha}#{'?recursive=1' if recursive}")
|
91
|
+
end
|
92
|
+
|
93
|
+
def get_json(url)
|
94
|
+
JSON.parse get_file(url)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
data/tasks/converter.rb
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
# Based on convert script from vwall/compass-twitter-bootstrap gem.
|
3
|
+
# https://github.com/vwall/compass-twitter-bootstrap/blob/master/build/convert.rb
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this work except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License in the LICENSE file, or at:
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
require 'open-uri'
|
18
|
+
require 'json'
|
19
|
+
require 'strscan'
|
20
|
+
require 'forwardable'
|
21
|
+
require 'term/ansicolor'
|
22
|
+
require 'fileutils'
|
23
|
+
|
24
|
+
require_relative 'converter/fonts_conversion'
|
25
|
+
require_relative 'converter/less_conversion'
|
26
|
+
require_relative 'converter/js_conversion'
|
27
|
+
require_relative 'converter/logger'
|
28
|
+
require_relative 'converter/network'
|
29
|
+
|
30
|
+
class Converter
|
31
|
+
extend Forwardable
|
32
|
+
include Network
|
33
|
+
include LessConversion
|
34
|
+
include JsConversion
|
35
|
+
include FontsConversion
|
36
|
+
|
37
|
+
def initialize(repo: 'entreprise7pro/bootstrap', branch: 'master', save_to: {}, cache_path: 'tmp/converter-cache-bootstrap')
|
38
|
+
@logger = Logger.new
|
39
|
+
@repo = repo
|
40
|
+
@branch = branch || 'master'
|
41
|
+
@branch_sha = get_branch_sha
|
42
|
+
@cache_path = cache_path
|
43
|
+
@repo_url = "https://github.com/#@repo"
|
44
|
+
@save_to = {
|
45
|
+
js: 'assets/javascripts/bootstrap',
|
46
|
+
scss: 'assets/stylesheets/bootstrap',
|
47
|
+
fonts: 'assets/fonts/bootstrap'}.merge(save_to)
|
48
|
+
end
|
49
|
+
|
50
|
+
def_delegators :@logger, :log, :log_status, :log_processing, :log_transform, :log_file_info, :log_processed, :log_http_get_file, :log_http_get_files, :silence_log
|
51
|
+
|
52
|
+
def process_bootstrap
|
53
|
+
log_status "Convert Bootstrap LESS to Sass"
|
54
|
+
puts " repo : #@repo_url"
|
55
|
+
puts " branch : #@branch_sha #@repo_url/tree/#@branch"
|
56
|
+
puts " save to: #{@save_to.to_json}"
|
57
|
+
puts " twbs cache: #{@cache_path}"
|
58
|
+
puts '-' * 60
|
59
|
+
|
60
|
+
@save_to.each { |_, v| FileUtils.mkdir_p(v) }
|
61
|
+
|
62
|
+
process_font_assets
|
63
|
+
process_stylesheet_assets
|
64
|
+
process_javascript_assets
|
65
|
+
store_version
|
66
|
+
end
|
67
|
+
|
68
|
+
def save_file(path, content, mode='w')
|
69
|
+
dir = File.dirname(path)
|
70
|
+
FileUtils.mkdir_p(dir) unless File.directory?(dir)
|
71
|
+
File.open(path, mode) { |file| file.write(content) }
|
72
|
+
end
|
73
|
+
|
74
|
+
# Update version.rb file with BOOTSTRAP_SHA
|
75
|
+
def store_version
|
76
|
+
path = 'lib/bootstrap-sass/version.rb'
|
77
|
+
content = File.read(path).sub(/BOOTSTRAP_SHA\s*=\s*['"][\w]+['"]/, "BOOTSTRAP_SHA = '#@branch_sha'")
|
78
|
+
File.open(path, 'w') { |f| f.write(content) }
|
79
|
+
end
|
80
|
+
end
|