chroma-js 0.0.1 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -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] = 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.exists?(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.exists?(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 = 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
@@ -0,0 +1,12 @@
1
+ description 'Chroma JS'
2
+
3
+ # Copy JS
4
+ manifest = Pathname.new(File.dirname(__FILE__))
5
+ assets = File.expand_path('../../assets', manifest)
6
+ {:javascript => 'javascripts' }.each do |method, dir|
7
+ root = Pathname.new(assets).join(dir)
8
+ Dir.glob root.join('**', '*.*') do |path|
9
+ path = Pathname.new(path)
10
+ send method, path.relative_path_from(manifest).to_s, :to => path.relative_path_from(root).to_s
11
+ end
12
+ end
metadata CHANGED
@@ -1,43 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chroma-js
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elton Schivei Costa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-19 00:00:00.000000000 Z
11
+ date: 2020-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: railties
14
+ name: autoprefixer-rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.1'
19
+ version: '5.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.1'
26
+ version: '5.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rails
28
+ name: actionpack
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3.1'
33
+ version: '4.1'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '3.1'
40
+ version: '4.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '4.1'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '4.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: json
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sprockets-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.1'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: slim-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: uglifier
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: term-ansicolor
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
41
125
  description: This Gem is made to support the use of Chroma.js library with Rails Assets
42
126
  email:
43
127
  - costa@elton.schivei.nom.br
@@ -45,14 +129,29 @@ executables: []
45
129
  extensions: []
46
130
  extra_rdoc_files: []
47
131
  files:
48
- - .gitignore
132
+ - ".github/workflows/gem-push.yml"
133
+ - ".gitignore"
49
134
  - Gemfile
50
135
  - LICENSE.txt
51
136
  - README.md
52
137
  - Rakefile
138
+ - assets/javascripts/chroma.js
139
+ - bower.json
140
+ - chroma-js.gemspec
53
141
  - chroma.js-rails.gemspec
54
- - lib/chroma.js/rails.rb
55
- - lib/chroma.js/rails/version.rb
142
+ - composer.json
143
+ - lib/chroma-js.rb
144
+ - lib/chroma-js/engine.rb
145
+ - lib/chroma-js/version.rb
146
+ - package.json
147
+ - sache.json
148
+ - tasks/bower.rake
149
+ - tasks/converter.rb
150
+ - tasks/converter/char_string_scanner.rb
151
+ - tasks/converter/js_conversion.rb
152
+ - tasks/converter/logger.rb
153
+ - tasks/converter/network.rb
154
+ - templates/project/manifest.rb
56
155
  homepage: https://github.com/schivei/chroma.js-rails
57
156
  licenses:
58
157
  - MIT
@@ -61,20 +160,18 @@ post_install_message:
61
160
  rdoc_options: []
62
161
  require_paths:
63
162
  - lib
64
- - vendor
65
163
  required_ruby_version: !ruby/object:Gem::Requirement
66
164
  requirements:
67
- - - '>='
165
+ - - ">="
68
166
  - !ruby/object:Gem::Version
69
167
  version: '0'
70
168
  required_rubygems_version: !ruby/object:Gem::Requirement
71
169
  requirements:
72
- - - '>='
170
+ - - ">="
73
171
  - !ruby/object:Gem::Version
74
- version: 1.3.6
172
+ version: '0'
75
173
  requirements: []
76
- rubyforge_project: chroma-js
77
- rubygems_version: 2.0.14
174
+ rubygems_version: 3.0.3
78
175
  signing_key:
79
176
  specification_version: 4
80
177
  summary: A Gem for Chroma.js library
@@ -1,8 +0,0 @@
1
- require "chroma.js/rails/version"
2
-
3
- module Chroma.js
4
- module Rails
5
- class Engine < ::Rails::Engine
6
- end
7
- end
8
- end
@@ -1,5 +0,0 @@
1
- module ChromaJS
2
- module Rails
3
- VERSION = "0.0.1"
4
- end
5
- end