marv 0.3.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/CHANGELOG.md +13 -0
- data/Gemfile +8 -10
- data/Gemfile.lock +16 -43
- data/LICENSE +0 -24
- data/README.md +9 -10
- data/Rakefile +4 -20
- data/VERSION +1 -1
- data/bin/marv +1 -1
- data/layouts/config/global.rb +31 -0
- data/layouts/config/project.rb +27 -0
- data/layouts/config/{router.php.erb → router.php} +5 -1
- data/layouts/config/server.rb +12 -0
- data/layouts/config/{wp-config.php.erb → wp-config.php} +0 -0
- data/layouts/plugin/{images → assets/images}/screenshot.png +0 -0
- data/layouts/plugin/{javascripts → assets/javascripts}/admin.coffee +0 -0
- data/layouts/plugin/{javascripts → assets/javascripts}/admin.js +0 -0
- data/layouts/plugin/{javascripts → assets/javascripts}/plugin.coffee +0 -0
- data/layouts/plugin/assets/javascripts/plugin.js +1 -0
- data/layouts/plugin/{stylesheets → assets/stylesheets}/plugin.scss +0 -0
- data/layouts/plugin/functions/{plugin.php.erb → plugin.php} +8 -7
- data/layouts/theme/{images → assets/images}/screenshot.png +0 -0
- data/layouts/theme/{javascripts → assets/javascripts}/admin.coffee +0 -0
- data/layouts/theme/{javascripts → assets/javascripts}/admin.js +0 -0
- data/layouts/theme/{javascripts → assets/javascripts}/theme.coffee +0 -0
- data/layouts/theme/{javascripts → assets/javascripts}/theme.js +0 -0
- data/layouts/theme/assets/stylesheets/_header.scss +18 -0
- data/layouts/theme/{stylesheets/style.scss.erb → assets/stylesheets/style.scss} +0 -0
- data/layouts/theme/functions/{functions.php.erb → functions.php} +0 -0
- data/layouts/theme/includes/{filters-admin.php.erb → filters-admin.php} +0 -0
- data/layouts/theme/includes/{filters.php.erb → filters.php} +0 -0
- data/layouts/theme/includes/{helpers.php.erb → helpers.php} +0 -0
- data/layouts/theme/templates/{404.php.erb → pages/404.php} +0 -0
- data/layouts/theme/templates/{archive.php.erb → pages/archive.php} +0 -0
- data/layouts/theme/templates/{author.php.erb → pages/author.php} +0 -0
- data/layouts/theme/templates/{search.php.erb → pages/search.php} +0 -0
- data/layouts/theme/templates/partials/{comments.php.erb → comments.php} +0 -0
- data/layouts/theme/templates/partials/{content-none.php.erb → content-none.php} +0 -0
- data/layouts/theme/templates/partials/{content.php.erb → content.php} +0 -0
- data/layouts/theme/templates/partials/{searchform.php.erb → searchform.php} +0 -0
- data/lib/marv.rb +8 -8
- data/lib/marv/cli.rb +15 -192
- data/lib/marv/cli/project.rb +57 -0
- data/lib/marv/cli/server.rb +65 -0
- data/lib/marv/global.rb +285 -0
- data/lib/marv/project/actions.rb +144 -0
- data/lib/marv/project/builder.rb +61 -0
- data/lib/marv/project/builder/assets.rb +112 -0
- data/lib/marv/{engines.rb → project/builder/engines.rb} +3 -1
- data/lib/marv/project/builder/functions.rb +112 -0
- data/lib/marv/project/builder/templates.rb +37 -0
- data/lib/marv/project/create.rb +139 -0
- data/lib/marv/project/guard.rb +83 -0
- data/lib/marv/project/guard/assets.rb +37 -0
- data/lib/{guard/marv → marv/project/guard}/config.rb +5 -9
- data/lib/marv/project/guard/functions.rb +44 -0
- data/lib/marv/project/guard/templates.rb +35 -0
- data/lib/marv/project/project.rb +149 -0
- data/lib/marv/server/actions.rb +79 -0
- data/lib/marv/server/create.rb +100 -0
- data/lib/marv/server/server.rb +201 -0
- data/marv.gemspec +69 -71
- metadata +82 -107
- data/.rspec +0 -1
- data/features/step_definitions/marv_steps.rb +0 -38
- data/features/support/env.rb +0 -17
- data/layouts/config/project-config.rb +0 -17
- data/layouts/plugin/javascripts/plugin.js +0 -1
- data/layouts/theme/stylesheets/_header.scss.erb +0 -18
- data/lib/guard/marv/assets.rb +0 -33
- data/lib/guard/marv/folders.rb +0 -33
- data/lib/guard/marv/functions.rb +0 -34
- data/lib/guard/marv/templates.rb +0 -33
- data/lib/marv/builder.rb +0 -355
- data/lib/marv/error.rb +0 -8
- data/lib/marv/generator.rb +0 -140
- data/lib/marv/guard.rb +0 -68
- data/lib/marv/project.rb +0 -134
- data/lib/marv/server.rb +0 -284
- data/spec/lib/marv/project_spec.rb +0 -34
- data/spec/spec_helper.rb +0 -12
@@ -0,0 +1,139 @@
|
|
1
|
+
module Marv
|
2
|
+
module Project
|
3
|
+
class Create
|
4
|
+
|
5
|
+
# Initialize project creator
|
6
|
+
def initialize(task, dir)
|
7
|
+
@task = task
|
8
|
+
@dir = dir
|
9
|
+
@path = project_path
|
10
|
+
@global = Marv::Global.new(task)
|
11
|
+
@options = project_options
|
12
|
+
@layout = layout_path
|
13
|
+
|
14
|
+
create_project
|
15
|
+
end
|
16
|
+
|
17
|
+
# Project path
|
18
|
+
def project_path
|
19
|
+
::File.expand_path(@dir)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Ask for project details
|
23
|
+
def project_options
|
24
|
+
# Check if project exists and abort
|
25
|
+
if ::File.directory?(@path)
|
26
|
+
@task.say "Project already exists", :red
|
27
|
+
abort
|
28
|
+
end
|
29
|
+
|
30
|
+
@task.say "This will create a new project.", :cyan
|
31
|
+
@task.say "Please enter project details below."
|
32
|
+
|
33
|
+
# Get project options
|
34
|
+
options = {}
|
35
|
+
|
36
|
+
options[:name] = @task.ask "Enter project name", :default => @global.config[:name]
|
37
|
+
options[:uri] = @task.ask "Enter project URI", :default => @global.config[:uri]
|
38
|
+
options[:version] = @task.ask "Enter project version", :default => @global.config[:version]
|
39
|
+
options[:description] = @task.ask "Enter project description", :default => @global.config[:description]
|
40
|
+
|
41
|
+
options.merge!(ask_author_details)
|
42
|
+
options.merge!(ask_project_layout)
|
43
|
+
|
44
|
+
return options
|
45
|
+
end
|
46
|
+
|
47
|
+
# Ask author details
|
48
|
+
def ask_author_details
|
49
|
+
options = {}
|
50
|
+
|
51
|
+
options[:author] = @task.ask "Enter project author", :default => @global.config[:author]
|
52
|
+
options[:author_uri] = @task.ask "Enter project author URI", :default => @global.config[:author_uri]
|
53
|
+
options[:license_name] = @task.ask "Enter project license name", :default => @global.config[:license_name]
|
54
|
+
options[:license_uri] = @task.ask "Enter project license URI", :default => @global.config[:license_uri]
|
55
|
+
|
56
|
+
return options
|
57
|
+
end
|
58
|
+
|
59
|
+
# Ask project layout
|
60
|
+
def ask_project_layout
|
61
|
+
options = {}
|
62
|
+
|
63
|
+
if @task.yes?("Do you want to use a local layout?")
|
64
|
+
options[:local_layout] = true
|
65
|
+
options[:layout] = @task.ask "Which layout do you want to use?", :limited_to => @global.layouts
|
66
|
+
else
|
67
|
+
options[:local_layout] = false
|
68
|
+
options[:layout] = @task.ask "Which layout do you want to use?", :limited_to => ["theme", "plugin"], :default => "theme"
|
69
|
+
end
|
70
|
+
|
71
|
+
return options
|
72
|
+
end
|
73
|
+
|
74
|
+
# Choosen layout path
|
75
|
+
def layout_path
|
76
|
+
layout = ::File.expand_path(::File.join(Marv.root, 'layouts', @options[:layout]))
|
77
|
+
|
78
|
+
if @options[:local_layout]
|
79
|
+
layout = ::File.join(@global.layouts_path, @options[:layout])
|
80
|
+
end
|
81
|
+
|
82
|
+
return layout
|
83
|
+
end
|
84
|
+
|
85
|
+
# Project config template
|
86
|
+
def config_template
|
87
|
+
::File.expand_path(::File.join(Marv.root, 'layouts', 'config', 'project.rb'))
|
88
|
+
end
|
89
|
+
|
90
|
+
# Create project directories
|
91
|
+
def create_project_dirs
|
92
|
+
::Dir.glob(::File.join(@layout, '**', '*')).each do |dir|
|
93
|
+
if ::File.directory?(dir)
|
94
|
+
# Get source and target files
|
95
|
+
source_dir = dir.gsub(@layout, '')
|
96
|
+
target_dir = ::File.join(@path, 'source', source_dir)
|
97
|
+
|
98
|
+
@task.empty_directory target_dir unless ::File.directory?(target_dir)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
# Create .wacth dir
|
103
|
+
@task.shell.mute do
|
104
|
+
watch_dir = ::File.join(@path, '.watch', 'build')
|
105
|
+
@task.empty_directory watch_dir unless ::File.directory?(watch_dir)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
# Create config file
|
110
|
+
def create_config_file
|
111
|
+
@project = Marv::Project::Project.new(@task, @path, @options)
|
112
|
+
|
113
|
+
config_rb = ::File.join(@path, 'config.rb')
|
114
|
+
@global.template config_template, config_rb, @project.context unless ::File.exists?(config_rb)
|
115
|
+
end
|
116
|
+
|
117
|
+
# Parse layout files in project dir
|
118
|
+
def parse_layout_files
|
119
|
+
::Dir.glob(::File.join(@layout, '**', '*')).each do |file|
|
120
|
+
unless ::File.directory?(file)
|
121
|
+
# Get source and target files
|
122
|
+
source_file = file.gsub(@layout, '')
|
123
|
+
target_file = ::File.join(@path, 'source', source_file)
|
124
|
+
# Parse template file
|
125
|
+
@global.template file, target_file, @project.context
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# Create a new project
|
131
|
+
def create_project
|
132
|
+
create_project_dirs
|
133
|
+
create_config_file
|
134
|
+
parse_layout_files
|
135
|
+
end
|
136
|
+
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require 'guard'
|
2
|
+
require 'guard/guard'
|
3
|
+
|
4
|
+
# Marv pry console actions
|
5
|
+
require 'marv/project/guard/assets'
|
6
|
+
require 'marv/project/guard/config'
|
7
|
+
require 'marv/project/guard/functions'
|
8
|
+
require 'marv/project/guard/templates'
|
9
|
+
|
10
|
+
module Marv
|
11
|
+
module Project
|
12
|
+
module Guard
|
13
|
+
|
14
|
+
class << self
|
15
|
+
attr_accessor :project, :task, :builder
|
16
|
+
end
|
17
|
+
|
18
|
+
# Add guard
|
19
|
+
def self.add_guard(&block)
|
20
|
+
@additional_guards ||= []
|
21
|
+
@additional_guards << block
|
22
|
+
end
|
23
|
+
|
24
|
+
# Start project watcher
|
25
|
+
def self.start(project, builder, options={}, livereload={})
|
26
|
+
@project = project
|
27
|
+
@task = project.task
|
28
|
+
@builder = builder
|
29
|
+
@options = project.config
|
30
|
+
|
31
|
+
@options_hash = ""
|
32
|
+
@options.each do |k,v|
|
33
|
+
@options_hash << ", :#{k} => '#{v}'"
|
34
|
+
end
|
35
|
+
|
36
|
+
(@additional_guards || []).each do |block|
|
37
|
+
result = block.call(@options, livereload)
|
38
|
+
self.project_contents << result unless result.nil?
|
39
|
+
end
|
40
|
+
# Start guard watching
|
41
|
+
::Guard.start({ :guardfile_contents => self.project_contents }).join
|
42
|
+
end
|
43
|
+
|
44
|
+
# Guard contents
|
45
|
+
def self.project_contents
|
46
|
+
assets_path = @project.assets_path.gsub(/#{@project.root}\//, '')
|
47
|
+
source_path = @project.source_path.gsub(/#{@project.root}\//, '')
|
48
|
+
config_file = @project.config_file.gsub(/#{@project.root}\//, '')
|
49
|
+
|
50
|
+
contents = %Q{
|
51
|
+
guard 'config'#{@options_hash} do
|
52
|
+
watch("#{config_file}")
|
53
|
+
end
|
54
|
+
guard 'assets' do
|
55
|
+
watch(%r{#{assets_path}/javascripts/*})
|
56
|
+
watch(%r{#{assets_path}/stylesheets/*})
|
57
|
+
watch(%r{#{assets_path}/images/*})
|
58
|
+
end
|
59
|
+
guard 'templates' do
|
60
|
+
watch(%r{#{source_path}/templates/*})
|
61
|
+
watch(%r{#{source_path}/partials/*})
|
62
|
+
end
|
63
|
+
guard 'functions' do
|
64
|
+
watch(%r{#{source_path}/functions/*})
|
65
|
+
watch(%r{#{source_path}/includes/*})
|
66
|
+
end
|
67
|
+
}
|
68
|
+
|
69
|
+
# Enable livereload
|
70
|
+
if @options[:livereload]
|
71
|
+
contents << %Q{
|
72
|
+
guard 'livereload' do
|
73
|
+
watch(%r{#{source_path}/*})
|
74
|
+
end
|
75
|
+
}
|
76
|
+
end
|
77
|
+
|
78
|
+
return contents
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'guard'
|
2
|
+
require 'guard/guard'
|
3
|
+
|
4
|
+
module Guard
|
5
|
+
class Assets < ::Guard::Guard
|
6
|
+
|
7
|
+
def initialize(watchers=[], options={})
|
8
|
+
super
|
9
|
+
end
|
10
|
+
|
11
|
+
# Runs on marv watch
|
12
|
+
def start
|
13
|
+
build_all_assets "Building all assets"
|
14
|
+
end
|
15
|
+
|
16
|
+
# Runs on all command in guard console
|
17
|
+
def run_all
|
18
|
+
build_all_assets "Rebuilding all assets", true
|
19
|
+
end
|
20
|
+
|
21
|
+
# Called on file(s) modifications
|
22
|
+
def run_on_change(paths)
|
23
|
+
build_all_assets "Assets have changed, rebuilding..."
|
24
|
+
end
|
25
|
+
|
26
|
+
# Build all assets
|
27
|
+
def build_all_assets(message, clean=nil)
|
28
|
+
builder = Marv::Project::Guard.builder.assets
|
29
|
+
|
30
|
+
UI.info message
|
31
|
+
builder.clean_images unless clean.nil?
|
32
|
+
builder.copy_images
|
33
|
+
builder.build_assets
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
@@ -2,33 +2,29 @@ require 'guard'
|
|
2
2
|
require 'guard/guard'
|
3
3
|
|
4
4
|
module Guard
|
5
|
-
class
|
5
|
+
class Config < ::Guard::Guard
|
6
6
|
|
7
7
|
def initialize(watchers=[], options={})
|
8
|
+
@builder = Marv::Project::Guard.builder
|
8
9
|
super
|
9
10
|
end
|
10
11
|
|
11
12
|
# This method should be mainly used for "reload"
|
12
13
|
def reload
|
13
14
|
UI.info "Reloading project config"
|
14
|
-
|
15
|
+
@builder.build_project
|
15
16
|
end
|
16
17
|
|
17
18
|
# Runs on all command in guard console
|
18
19
|
def run_all
|
19
20
|
UI.info "Reloading project config"
|
20
|
-
|
21
|
-
true
|
21
|
+
@builder.build_project
|
22
22
|
end
|
23
23
|
|
24
24
|
# Called on file(s) modifications
|
25
25
|
def run_on_change(paths)
|
26
26
|
UI.info "Project config changed, reloading"
|
27
|
-
|
28
|
-
::Marv::Guard.builder = ::Marv::Builder.new(::Marv::Guard.project)
|
29
|
-
|
30
|
-
# Rebuild everything if the config changes
|
31
|
-
::Marv::Guard.builder.build
|
27
|
+
@builder.build_project
|
32
28
|
end
|
33
29
|
|
34
30
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'guard'
|
2
|
+
require 'guard/guard'
|
3
|
+
|
4
|
+
module Guard
|
5
|
+
class Functions < ::Guard::Guard
|
6
|
+
|
7
|
+
def initialize(watchers=[], options={})
|
8
|
+
super
|
9
|
+
end
|
10
|
+
|
11
|
+
# Runs on marv watch
|
12
|
+
def start
|
13
|
+
copy_all_functions "Copying functions over"
|
14
|
+
end
|
15
|
+
|
16
|
+
# Runs on all command in guard console
|
17
|
+
def run_all
|
18
|
+
copy_all_functions "Rebuilding all functions", true
|
19
|
+
end
|
20
|
+
|
21
|
+
# Called on file(s) modifications
|
22
|
+
def run_on_change(paths)
|
23
|
+
copy_all_functions "Functions have changed, copying over"
|
24
|
+
end
|
25
|
+
|
26
|
+
# Copy all functions
|
27
|
+
def copy_all_functions(message, clean=nil)
|
28
|
+
builder = Marv::Project::Guard.builder.functions
|
29
|
+
|
30
|
+
UI.info message
|
31
|
+
|
32
|
+
unless clean.nil?
|
33
|
+
builder.clean_functions
|
34
|
+
builder.clean_includes
|
35
|
+
builder.clean_folders
|
36
|
+
end
|
37
|
+
|
38
|
+
builder.copy_functions
|
39
|
+
builder.copy_includes
|
40
|
+
builder.copy_folders
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'guard'
|
2
|
+
require 'guard/guard'
|
3
|
+
|
4
|
+
module Guard
|
5
|
+
class Templates < ::Guard::Guard
|
6
|
+
|
7
|
+
def initialize(watchers=[], options={})
|
8
|
+
super
|
9
|
+
end
|
10
|
+
|
11
|
+
# Runs on marv watch
|
12
|
+
def start
|
13
|
+
copy_all_templates "Copying templates over"
|
14
|
+
end
|
15
|
+
|
16
|
+
# Runs on all command in guard console
|
17
|
+
def run_all
|
18
|
+
copy_all_templates "Rebuilding all templates", true
|
19
|
+
end
|
20
|
+
|
21
|
+
# Called on file(s) modifications
|
22
|
+
def run_on_change(paths)
|
23
|
+
copy_all_templates "Templates have changed, copying over"
|
24
|
+
end
|
25
|
+
|
26
|
+
def copy_all_templates(message, clean=nil)
|
27
|
+
builder = Marv::Project::Guard.builder.templates
|
28
|
+
|
29
|
+
UI.info message
|
30
|
+
builder.clean_templates unless clean.nil?
|
31
|
+
builder.copy_templates
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,149 @@
|
|
1
|
+
require 'marv/project/builder'
|
2
|
+
require 'marv/project/guard'
|
3
|
+
require 'marv/project/actions'
|
4
|
+
require 'marv/project/create'
|
5
|
+
|
6
|
+
module Marv
|
7
|
+
module Project
|
8
|
+
class Project
|
9
|
+
|
10
|
+
attr_accessor :root, :config, :task, :assets, :context
|
11
|
+
|
12
|
+
# Initialize project config
|
13
|
+
def initialize(task, dir, options)
|
14
|
+
@task = task
|
15
|
+
@global = Marv::Global.new(task)
|
16
|
+
@dir = ::File.expand_path(dir)
|
17
|
+
@options = options
|
18
|
+
@root = root_path
|
19
|
+
@config_file = config_file
|
20
|
+
@config = project_config
|
21
|
+
@assets = project_assets
|
22
|
+
@context = project_context
|
23
|
+
end
|
24
|
+
|
25
|
+
# Project id
|
26
|
+
def project_id
|
27
|
+
::File.basename(@dir).gsub(/\W/, '_').downcase
|
28
|
+
end
|
29
|
+
|
30
|
+
# Project root path
|
31
|
+
def root_path
|
32
|
+
::File.expand_path(@dir)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Project source path
|
36
|
+
def source_path
|
37
|
+
::File.join(root_path, 'source')
|
38
|
+
end
|
39
|
+
|
40
|
+
# Project build path
|
41
|
+
def build_path
|
42
|
+
::File.join(root_path, '.watch', 'build')
|
43
|
+
end
|
44
|
+
|
45
|
+
# Project package path
|
46
|
+
def package_path
|
47
|
+
::File.join(root_path, 'package')
|
48
|
+
end
|
49
|
+
|
50
|
+
# Project assets path
|
51
|
+
def assets_path
|
52
|
+
::File.join(source_path, 'assets')
|
53
|
+
end
|
54
|
+
|
55
|
+
# Project functions path
|
56
|
+
def functions_path
|
57
|
+
::File.join(source_path, 'functions')
|
58
|
+
end
|
59
|
+
|
60
|
+
# Project templates path
|
61
|
+
def templates_path
|
62
|
+
::File.join(source_path, 'templates')
|
63
|
+
end
|
64
|
+
|
65
|
+
# Project includes path
|
66
|
+
def includes_path
|
67
|
+
::File.join(source_path, 'includes')
|
68
|
+
end
|
69
|
+
|
70
|
+
# Config file
|
71
|
+
def config_file
|
72
|
+
::File.join(root_path, 'config.rb')
|
73
|
+
end
|
74
|
+
|
75
|
+
# Plugin php file
|
76
|
+
def plugin_file
|
77
|
+
::File.join(functions_path, "#{project_id.gsub('_', '-')}.php")
|
78
|
+
end
|
79
|
+
|
80
|
+
# Theme functions file
|
81
|
+
def functions_file
|
82
|
+
::File.join(functions_path, 'functions.php')
|
83
|
+
end
|
84
|
+
|
85
|
+
# Project config file
|
86
|
+
def project_config
|
87
|
+
config = {}
|
88
|
+
|
89
|
+
# Merge global config
|
90
|
+
config.merge!(@global.config)
|
91
|
+
|
92
|
+
if @options.nil?
|
93
|
+
config.merge!(project_config_file)
|
94
|
+
else
|
95
|
+
optional_config_file
|
96
|
+
config.merge!(@options)
|
97
|
+
end
|
98
|
+
|
99
|
+
return config
|
100
|
+
end
|
101
|
+
|
102
|
+
# Check for config.rb in project folder
|
103
|
+
def project_config_file
|
104
|
+
config_file = {}
|
105
|
+
|
106
|
+
if ::File.exists?(@config_file)
|
107
|
+
config_file = @global.load_ruby_config(@config_file)
|
108
|
+
else
|
109
|
+
@task.say "Could not find the config file!", :red
|
110
|
+
@task.say "Are you sure you're in a marv project directory?"
|
111
|
+
abort
|
112
|
+
end
|
113
|
+
|
114
|
+
return config_file
|
115
|
+
end
|
116
|
+
|
117
|
+
# Check for config file in options
|
118
|
+
def optional_config_file
|
119
|
+
if ::File.exists?(@options.to_s)
|
120
|
+
@options = @global.load_ruby_config(::File.expand_path(@options))
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
# Get all project assets
|
125
|
+
def project_assets
|
126
|
+
assets = [
|
127
|
+
['style.css'],
|
128
|
+
['plugin.css'],
|
129
|
+
['admin.css'],
|
130
|
+
['javascripts', 'theme.js'],
|
131
|
+
['javascripts', 'plugin.js'],
|
132
|
+
['javascripts', 'admin.js']
|
133
|
+
]
|
134
|
+
|
135
|
+
if project_config[:additional_assets]
|
136
|
+
assets = assets | project_config[:additional_assets]
|
137
|
+
end
|
138
|
+
|
139
|
+
return assets
|
140
|
+
end
|
141
|
+
|
142
|
+
# Get project class context
|
143
|
+
def project_context
|
144
|
+
instance_eval('binding')
|
145
|
+
end
|
146
|
+
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|