wedge 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +4 -0
- data/Gemfile +2 -0
- data/lib/roda/plugins/wedge.rb +15 -5
- data/lib/wedge/component.rb +40 -9
- data/lib/wedge/config.rb +2 -0
- data/lib/wedge/dom.rb +1 -0
- data/lib/wedge/events.rb +1 -1
- data/lib/wedge/html.rb +39 -0
- data/lib/wedge/middleware.rb +14 -12
- data/lib/wedge/plugins/uploader.rb +287 -0
- data/lib/wedge/require.rb +23 -35
- data/lib/wedge/version.rb +1 -1
- data/lib/wedge.rb +29 -18
- data/playground/Gruntfile.coffee +99 -0
- data/playground/app/app.rb +57 -0
- data/playground/app/components/index.rb +12 -0
- data/playground/app/components/layout.rb +38 -0
- data/playground/app/components/uploader.rb +32 -0
- data/playground/app/config/boot.rb +14 -0
- data/playground/app/config/variables.rb +16 -0
- data/{test/dummy → playground/backup}/components/bar.rb +0 -0
- data/{test/dummy → playground/backup}/components/base.rb +0 -0
- data/{test/dummy → playground/backup}/components/layout.rb +0 -0
- data/playground/backup/components/profile.rb +0 -0
- data/{test/dummy → playground/backup}/components/root.rb +12 -4
- data/{test/dummy → playground/backup}/forms/bar.rb +0 -0
- data/{test/dummy → playground/backup}/forms/foo.rb +0 -0
- data/playground/backup/html/layout.html +9 -0
- data/playground/bower.json +25 -0
- data/playground/config.ru +5 -0
- data/playground/package.json +19 -0
- data/playground/public/css/styles.css +2649 -0
- data/playground/public/css/styles.css.map +7 -0
- data/playground/public/includes/_head.html +9 -0
- data/playground/public/index.html +18 -0
- data/playground/public/uploader.html +33 -0
- data/playground/public/vendor/font-awesome/fonts/FontAwesome.otf +0 -0
- data/playground/public/vendor/font-awesome/fonts/fontawesome-webfont.eot +0 -0
- data/playground/public/vendor/font-awesome/fonts/fontawesome-webfont.svg +565 -0
- data/playground/public/vendor/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
- data/playground/public/vendor/font-awesome/fonts/fontawesome-webfont.woff +0 -0
- data/playground/public/vendor/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
- data/playground/public/vendor/jquery/jquery.js +9210 -0
- data/playground/public/vendor/normalize-css/normalize.css +424 -0
- data/playground/src/css/_uploader.scss +73 -0
- data/playground/src/css/_variables.scss +16 -0
- data/playground/src/css/addons/_buttons.scss +12 -0
- data/playground/src/css/styles.scss +14 -0
- data/playground/src/includes/_head.slim +12 -0
- data/playground/src/index.slim +6 -0
- data/playground/src/uploader.slim +13 -0
- data/wedge.gemspec +1 -1
- metadata +46 -23
- data/test/dummy/app.rb +0 -46
- data/test/dummy/config.ru +0 -6
data/lib/wedge/require.rb
CHANGED
@@ -1,47 +1,35 @@
|
|
1
1
|
unless RUBY_ENGINE == 'opal'
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
# rewrite require
|
3
|
+
def require(name)
|
4
|
+
Kernel.require name
|
5
5
|
|
6
|
-
|
7
|
-
def require(name)
|
8
|
-
return wedge_original_require(name) unless defined?(Wedge)
|
6
|
+
return unless defined?(Wedge) && Wedge.respond_to?(:config)
|
9
7
|
|
10
|
-
|
8
|
+
if name[/\Awedge/] || name[Dir.pwd]
|
9
|
+
name = name.sub("#{Dir.pwd}/", '').gsub(/\.rb$/, '').gsub(/\//, '__')
|
10
|
+
caller_str = "#{caller[0]}".gsub(/(#{Dir.pwd}\/|.*(?=wedge))/, '').gsub(/:.+$/, '').gsub(/\.rb$/, '').gsub(/\//, '__')
|
11
11
|
|
12
|
-
if
|
13
|
-
|
14
|
-
caller_str = "#{caller[0]}".gsub(/(#{Dir.pwd}\/|.*(?=wedge))/, '').gsub(/:.+$/, '').gsub(/\.rb$/, '').gsub(/\//, '__')
|
15
|
-
|
16
|
-
if !caller_str['.'] && !(Wedge.config.requires[caller_str] ||= []).include?(name)
|
17
|
-
Wedge.config.requires[caller_str] << name
|
18
|
-
end
|
12
|
+
if !caller_str['.'] && !(Wedge.config.requires[caller_str] ||= []).include?(name)
|
13
|
+
Wedge.config.requires[caller_str] << name
|
19
14
|
end
|
20
|
-
|
21
|
-
result
|
22
15
|
end
|
16
|
+
end
|
23
17
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
#
|
28
|
-
def require_relative(name)
|
29
|
-
return wedge_original_require_relative(name) unless defined?(Wedge)
|
30
|
-
|
31
|
-
caller_str = "#{caller[0]}".gsub(/:.+$/, '').gsub(/\.rb$/, '')
|
32
|
-
caller_path_name = caller_str.gsub(%r{(#{Dir.pwd}/|.*wedge)}, '').gsub(/:.+$/, '').gsub(/^\//, '')
|
33
|
-
|
34
|
-
path_name = caller_path_name.gsub(/(?<=\/)([^\/]*)$/, "#{name}")
|
35
|
-
path_name = File.expand_path(path_name).sub("#{Dir.pwd}/", '') if path_name['..']
|
36
|
-
path_name = path_name.gsub(/\//, '__')
|
37
|
-
file = caller_str.gsub(/(?<=\/)([^\/]*)$/, "#{name}")
|
38
|
-
caller_path_name = caller_path_name.gsub(/\//, '__')
|
18
|
+
# rewrite require_relative
|
19
|
+
def require_relative(name)
|
20
|
+
caller_str = "#{caller[0]}".gsub(/:.+$/, '').gsub(/\.rb$/, '')
|
21
|
+
caller_path_name = caller_str.gsub(%r{(#{Dir.pwd}/|.*wedge)}, '').gsub(/:.+$/, '').gsub(/^\//, '')
|
39
22
|
|
40
|
-
|
41
|
-
|
42
|
-
|
23
|
+
path_name = caller_path_name.gsub(/(?<=\/)([^\/]*)$/, "#{name}")
|
24
|
+
path_name = File.expand_path(path_name).sub("#{Dir.pwd}/", '') if path_name['..']
|
25
|
+
path_name = path_name.gsub(/\//, '__')
|
26
|
+
file = caller_str.gsub(/(?<=\/)([^\/]*)$/, "#{name}")
|
27
|
+
caller_path_name = caller_path_name.gsub(/\//, '__')
|
43
28
|
|
44
|
-
|
29
|
+
if !caller_path_name['.'] && !(Wedge.config.requires[caller_path_name] ||= []).include?(path_name)
|
30
|
+
Wedge.config.requires[caller_path_name] << path_name
|
45
31
|
end
|
32
|
+
|
33
|
+
Kernel.require file
|
46
34
|
end
|
47
35
|
end
|
data/lib/wedge/version.rb
CHANGED
data/lib/wedge.rb
CHANGED
@@ -32,10 +32,6 @@ class Wedge
|
|
32
32
|
"#{url}#{config.cache_assets ? "/#{config.assets_key}" : ''}"
|
33
33
|
end
|
34
34
|
|
35
|
-
def requires
|
36
|
-
@requires ||= IndifferentHash.new
|
37
|
-
end
|
38
|
-
|
39
35
|
def assets_url_regex
|
40
36
|
@assets_url_regex ||= begin
|
41
37
|
assets_url = ::Wedge.assets_url.gsub(%r{^\/}, '')
|
@@ -123,6 +119,9 @@ class Wedge
|
|
123
119
|
gems_dir = ::Opal.gem_dir.gsub(/(?<=gems)\/opal-.*/, '')
|
124
120
|
Wedge::Opal.append_path file
|
125
121
|
Wedge::Opal.append_path Dir.pwd
|
122
|
+
# fix: make this a config option i.e.
|
123
|
+
# gems: [:ability_list]
|
124
|
+
# then grab that path and add it to the opal path list
|
126
125
|
Dir["#{gems_dir}/**/"].sort.each do |folder|
|
127
126
|
Wedge::Opal.append_path "#{folder}/lib"
|
128
127
|
end
|
@@ -132,6 +131,8 @@ class Wedge
|
|
132
131
|
|
133
132
|
# Return the opal javascript.
|
134
133
|
def javascript(path_name = 'wedge', options = {})
|
134
|
+
path_name = path_name.to_s
|
135
|
+
|
135
136
|
if server?
|
136
137
|
javascript_cache[path_name] ||= begin
|
137
138
|
js = build(path_name, options).javascript
|
@@ -151,17 +152,7 @@ class Wedge
|
|
151
152
|
|
152
153
|
js << Opal.compile("Wedge.config.component_class[:#{comp_name}].config.data = HashObject.new(Wedge.config.component_class[:#{comp_name}].config.data.to_h.merge JSON.parse(Base64.decode64('#{compiled_data}')))")
|
153
154
|
|
154
|
-
|
155
|
-
|
156
|
-
requires.each do |path|
|
157
|
-
next unless comp_class = Wedge.config.component_class[path]
|
158
|
-
|
159
|
-
comp_name = comp_class.config.name
|
160
|
-
compiled_data = Base64.encode64 comp_class.config.client_data.to_json
|
161
|
-
|
162
|
-
js << Opal.compile("Wedge.config.component_class[:#{comp_name}].config.data = HashObject.new(Wedge.config.component_class[:#{comp_name}].config.data.to_h.merge JSON.parse(Base64.decode64('#{compiled_data}')))")
|
163
|
-
end
|
164
|
-
end
|
155
|
+
load_requires path_name, js
|
165
156
|
end
|
166
157
|
|
167
158
|
js
|
@@ -171,7 +162,11 @@ class Wedge
|
|
171
162
|
cache = options[:cache_assets]
|
172
163
|
|
173
164
|
`jQuery.ajax({ url: url, dataType: "script", cache: cache }).done(function() {`
|
174
|
-
|
165
|
+
if initialize_args = options.delete(:initialize_args)
|
166
|
+
comp = Wedge.store!(options[:store].indifferent)[options[:name], *initialize_args]
|
167
|
+
else
|
168
|
+
comp = Wedge.store!(options[:store].indifferent)[options[:name]]
|
169
|
+
end
|
175
170
|
|
176
171
|
if options[:method_args].any?
|
177
172
|
comp.send(options[:method_called], options[:method_args])
|
@@ -185,12 +180,28 @@ class Wedge
|
|
185
180
|
end
|
186
181
|
end
|
187
182
|
|
183
|
+
def load_requires path_name, js
|
184
|
+
if requires = config.requires[path_name.gsub(/\//, '__')]
|
185
|
+
requires.each do |path|
|
186
|
+
next unless comp_class = Wedge.config.component_class[path]
|
187
|
+
|
188
|
+
comp_class.config.before_compile.each { |blk| comp_class.instance_eval(&blk) }
|
189
|
+
|
190
|
+
comp_name = comp_class.config.name
|
191
|
+
compiled_data = Base64.encode64 comp_class.config.client_data.to_json
|
192
|
+
|
193
|
+
load_requires path, js
|
194
|
+
|
195
|
+
js << Opal.compile("Wedge.config.component_class[:#{comp_name}].config.data = HashObject.new(Wedge.config.component_class[:#{comp_name}].config.data.to_h.merge JSON.parse(Base64.decode64('#{compiled_data}')))")
|
196
|
+
end
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
188
200
|
def config
|
189
201
|
@config ||= begin
|
190
|
-
args = {
|
202
|
+
args = { component_class: IndifferentHash.new }
|
191
203
|
|
192
204
|
unless RUBY_ENGINE == 'opal'
|
193
|
-
# args[:path] = caller.first.gsub(/(?<=\.rb):.*/, '')
|
194
205
|
args[:assets_key] = begin
|
195
206
|
if defined?(PlatformAPI) && ENV['HEROKU_TOKEN'] && ENV['HEROKU_APP']
|
196
207
|
heroku = PlatformAPI.connect_oauth(ENV['HEROKU_TOKEN'], default_headers: {'Range' => 'version ..; order=desc'})
|
@@ -0,0 +1,99 @@
|
|
1
|
+
module.exports = (grunt) ->
|
2
|
+
|
3
|
+
# configuration
|
4
|
+
grunt.initConfig
|
5
|
+
|
6
|
+
# grunt sass
|
7
|
+
sass:
|
8
|
+
compile:
|
9
|
+
options:
|
10
|
+
style: 'expanded'
|
11
|
+
sourcemap: 'none'
|
12
|
+
files: [
|
13
|
+
expand: true
|
14
|
+
cwd: 'src'
|
15
|
+
src: ['**/*.sass', '**/*.scss']
|
16
|
+
dest: 'public'
|
17
|
+
ext: '.css'
|
18
|
+
]
|
19
|
+
|
20
|
+
# grunt coffee
|
21
|
+
coffee:
|
22
|
+
compile:
|
23
|
+
expand: true
|
24
|
+
cwd: 'src'
|
25
|
+
src: ['**/*.coffee']
|
26
|
+
dest: 'public'
|
27
|
+
ext: '.js'
|
28
|
+
options:
|
29
|
+
bare: true
|
30
|
+
# preserve_dirs: true
|
31
|
+
|
32
|
+
# grunt slim
|
33
|
+
slim:
|
34
|
+
dist:
|
35
|
+
options:
|
36
|
+
pretty: true
|
37
|
+
files: [{
|
38
|
+
cwd: 'src'
|
39
|
+
dest: 'public'
|
40
|
+
expand: true
|
41
|
+
src: ['**/*.slim']
|
42
|
+
ext: '.html'
|
43
|
+
}]
|
44
|
+
|
45
|
+
bake:
|
46
|
+
build:
|
47
|
+
files: [{
|
48
|
+
cwd: 'public'
|
49
|
+
src: ['**/*.html']
|
50
|
+
dest: 'public'
|
51
|
+
expand: true
|
52
|
+
}]
|
53
|
+
|
54
|
+
bowercopy:
|
55
|
+
options:
|
56
|
+
srcPrefix: 'bower_components'
|
57
|
+
scripts:
|
58
|
+
options:
|
59
|
+
destPrefix: 'public/vendor'
|
60
|
+
files:
|
61
|
+
'jquery/jquery.js': 'jquery/dist/jquery.js'
|
62
|
+
'font-awesome/fonts': 'font-awesome/fonts'
|
63
|
+
'normalize-css/normalize.css': 'normalize-css/normalize.css'
|
64
|
+
|
65
|
+
# grunt watch (or simply grunt)
|
66
|
+
watch:
|
67
|
+
html:
|
68
|
+
files: ['src/**/*.html']
|
69
|
+
sass:
|
70
|
+
files: ['src/**/*.sass', 'src/**/*.scss']
|
71
|
+
tasks: ['sass']
|
72
|
+
coffee:
|
73
|
+
files: ['src/**/*.coffee']
|
74
|
+
tasks: ['coffee']
|
75
|
+
slim:
|
76
|
+
files: ['src/**/*.slim']
|
77
|
+
tasks: ['slim', 'bake:build']
|
78
|
+
options:
|
79
|
+
livereload: true
|
80
|
+
|
81
|
+
# grunt connect
|
82
|
+
connect:
|
83
|
+
server:
|
84
|
+
options:
|
85
|
+
base: 'public'
|
86
|
+
open: true
|
87
|
+
port: 8082
|
88
|
+
|
89
|
+
# load plugins
|
90
|
+
grunt.loadNpmTasks 'grunt-contrib-sass'
|
91
|
+
grunt.loadNpmTasks 'grunt-contrib-coffee'
|
92
|
+
grunt.loadNpmTasks 'grunt-contrib-watch'
|
93
|
+
grunt.loadNpmTasks 'grunt-slim'
|
94
|
+
grunt.loadNpmTasks 'grunt-bake'
|
95
|
+
grunt.loadNpmTasks 'grunt-bowercopy'
|
96
|
+
grunt.loadNpmTasks 'grunt-contrib-connect'
|
97
|
+
|
98
|
+
# tasks
|
99
|
+
grunt.registerTask 'default', ['bowercopy', 'sass', 'coffee', 'slim', 'bake', 'connect', 'watch']
|
@@ -0,0 +1,57 @@
|
|
1
|
+
class Playground
|
2
|
+
use Rack::Session::Cookie, secret: APP_SECRET
|
3
|
+
|
4
|
+
plugin :environments
|
5
|
+
|
6
|
+
configure :development do
|
7
|
+
require 'better_errors'
|
8
|
+
|
9
|
+
use BetterErrors::Middleware if defined? BetterErrors
|
10
|
+
use Rack::Static, urls: ["/public"]
|
11
|
+
|
12
|
+
BetterErrors::Middleware.allow_ip! "0.0.0.0/0"
|
13
|
+
BetterErrors.application_root = Dir.pwd
|
14
|
+
end
|
15
|
+
|
16
|
+
plugin :wedge, {
|
17
|
+
scope: self,
|
18
|
+
plugins: [:form],
|
19
|
+
settings: {
|
20
|
+
uploader: {
|
21
|
+
aws_access_key_id: AWS_ACCESS_KEY_ID,
|
22
|
+
aws_secret_access_key: AWS_SECRET_ACCESS_KEY,
|
23
|
+
bucket: AWS_BUCKET
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
plugin :assets, {
|
29
|
+
path: "#{APP_ROOT}/../", css_dir: '', js_dir: '', group_subdirs: false,
|
30
|
+
css: {
|
31
|
+
default: [
|
32
|
+
'public/vendor/normalize-css/normalize.css',
|
33
|
+
'public/css/styles.css',
|
34
|
+
'bower_components/fine-uploader/_build/fine-uploader.css'
|
35
|
+
],
|
36
|
+
},
|
37
|
+
js: {
|
38
|
+
default: [
|
39
|
+
'public/vendor/jquery/jquery.js',
|
40
|
+
'bower_components/fine-uploader/_build/s3.jquery.fine-uploader.js'
|
41
|
+
],
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
route do |r|
|
46
|
+
r.wedge_assets
|
47
|
+
r.assets
|
48
|
+
|
49
|
+
r.root do
|
50
|
+
wedge(:index).to_js :display
|
51
|
+
end
|
52
|
+
|
53
|
+
r.on 'uploader' do
|
54
|
+
wedge(:uploader).to_js :display
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
class Playground
|
2
|
+
class LayoutComponent < Wedge::Component
|
3
|
+
name :layout
|
4
|
+
html 'public/index.html' do
|
5
|
+
head = dom.find('head')
|
6
|
+
html = dom.find('html')
|
7
|
+
|
8
|
+
inline_tags = []
|
9
|
+
|
10
|
+
head.css('script, link').each do |tag|
|
11
|
+
if (%w(src href) & tag.attributes.keys).empty?
|
12
|
+
inline_tags << tag
|
13
|
+
end
|
14
|
+
tag.remove
|
15
|
+
end
|
16
|
+
|
17
|
+
head.add_child assets [:css, :default]
|
18
|
+
html.add_child assets [:js, :default]
|
19
|
+
html.add_child Wedge.script_tag
|
20
|
+
|
21
|
+
inline_tags.each do |tag|
|
22
|
+
html.add_child tag
|
23
|
+
end
|
24
|
+
|
25
|
+
# Clear out the body
|
26
|
+
dom.find('body').html ''
|
27
|
+
end
|
28
|
+
|
29
|
+
def display options = {}, &block
|
30
|
+
return unless server?
|
31
|
+
|
32
|
+
body_dom = dom.find('body')
|
33
|
+
body_dom << block.call if block_given?
|
34
|
+
|
35
|
+
dom
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative 'layout'
|
2
|
+
require 'wedge/plugins/uploader'
|
3
|
+
|
4
|
+
class Playground
|
5
|
+
class UploaderComponent < Wedge::Component
|
6
|
+
name :uploader
|
7
|
+
html 'public/uploader.html' do
|
8
|
+
set_dom dom.find('body').html
|
9
|
+
end
|
10
|
+
|
11
|
+
def display
|
12
|
+
wedge(:layout).display { dom }
|
13
|
+
end
|
14
|
+
|
15
|
+
def add_file data = {}
|
16
|
+
if server?
|
17
|
+
puts 'uploaded to s3'
|
18
|
+
else
|
19
|
+
puts 'uploaded to s3'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
on :ready do
|
24
|
+
button = dom.find("button")
|
25
|
+
button.hide
|
26
|
+
wedge_plugin(:uploader).button button, {
|
27
|
+
wedge_name: :uploader,
|
28
|
+
wedge_method: :add_file
|
29
|
+
}
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path '../variables', __FILE__
|
2
|
+
|
3
|
+
require 'roda'
|
4
|
+
require 'wedge'
|
5
|
+
|
6
|
+
require 'pry'
|
7
|
+
require 'awesome_print'
|
8
|
+
|
9
|
+
class Playground < Roda; end
|
10
|
+
|
11
|
+
require_relative '../app'
|
12
|
+
|
13
|
+
Dir["#{APP_ROOT}/forms/*.rb"].sort.each { |file| require file }
|
14
|
+
Dir["#{APP_ROOT}/components/*.rb"].sort.each { |file| require file }
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Encoding.default_external = 'UTF-8'
|
2
|
+
|
3
|
+
APP_ROOT = File.expand_path '../../', __FILE__ unless defined?(APP_ROOT)
|
4
|
+
RACK_ENV = ENV.fetch('RACK_ENV') { 'development' }.freeze
|
5
|
+
|
6
|
+
# Load environment variables
|
7
|
+
%W{.env .env.#{ENV['RACK_ENV']}}.each do |file|
|
8
|
+
File.foreach file do |line|
|
9
|
+
key, value = line.split "=", 2; ENV[key] = value.gsub('\n', '').strip
|
10
|
+
end if File.file? file
|
11
|
+
end if %w{development test}.include? RACK_ENV
|
12
|
+
|
13
|
+
APP_SECRET = ENV.fetch('APP_SECRET').freeze
|
14
|
+
AWS_ACCESS_KEY_ID = ENV.fetch('AWS_ACCESS_KEY_ID').freeze
|
15
|
+
AWS_SECRET_ACCESS_KEY = ENV.fetch('AWS_SECRET_ACCESS_KEY').freeze
|
16
|
+
AWS_BUCKET = ENV.fetch('AWS_BUCKET').freeze
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -6,7 +6,9 @@ require_relative '../forms/foo'
|
|
6
6
|
class DummyApp
|
7
7
|
class RootComponent < BaseComponent
|
8
8
|
name :root
|
9
|
-
html
|
9
|
+
html html! {
|
10
|
+
div 'bar', id: 'foo'
|
11
|
+
}
|
10
12
|
|
11
13
|
def display
|
12
14
|
if server?
|
@@ -14,9 +16,15 @@ class DummyApp
|
|
14
16
|
dom.to_html
|
15
17
|
end
|
16
18
|
else
|
17
|
-
|
18
|
-
|
19
|
-
|
19
|
+
html! do
|
20
|
+
div class: 'control-group fake optional' do
|
21
|
+
label 'Profile Picture', class: 'fake optional control-label'
|
22
|
+
div id: 'profile_picture'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
dom.find('#foo').before html! {
|
26
|
+
div 'foo'
|
27
|
+
}
|
20
28
|
end
|
21
29
|
end
|
22
30
|
|
File without changes
|
File without changes
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"name": "wedge",
|
3
|
+
"version": "0.0.0",
|
4
|
+
"authors": [
|
5
|
+
"cj <cjlazell@gmail.com>"
|
6
|
+
],
|
7
|
+
"license": "MIT",
|
8
|
+
"ignore": [
|
9
|
+
"**/.*",
|
10
|
+
"node_modules",
|
11
|
+
"bower_components",
|
12
|
+
"test",
|
13
|
+
"tests"
|
14
|
+
],
|
15
|
+
"dependencies": {
|
16
|
+
"bourbon": "~4.2.3",
|
17
|
+
"neat": "~1.7.2",
|
18
|
+
"normalize-css": "~3.0.3",
|
19
|
+
"bitters": "~1.0.0",
|
20
|
+
"font-awesome": "~4.3.0",
|
21
|
+
"jquery": "~2.1.4",
|
22
|
+
"froala": "~1.2.7",
|
23
|
+
"fine-uploader": "~5.2.1"
|
24
|
+
}
|
25
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
{
|
2
|
+
"name": "wedge",
|
3
|
+
"description": "",
|
4
|
+
"author": "CJ Lazell <cjlazell@gmail.com>",
|
5
|
+
"version": "0.0.1",
|
6
|
+
"devDependencies": {
|
7
|
+
"bower": "~1.4.1",
|
8
|
+
"coffee-script": "~1.9.2",
|
9
|
+
"grunt": "~0.4.5",
|
10
|
+
"grunt-bake": "^0.3.13",
|
11
|
+
"grunt-bowercopy": "^1.2.0",
|
12
|
+
"grunt-contrib-coffee": "~0.13.0",
|
13
|
+
"grunt-contrib-connect": "^0.10.1",
|
14
|
+
"grunt-contrib-sass": "~0.9.2",
|
15
|
+
"grunt-contrib-watch": "~0.6.1",
|
16
|
+
"grunt-slim": "^0.1.0"
|
17
|
+
},
|
18
|
+
"license": "MIT"
|
19
|
+
}
|