frontendloader 0.0.6 → 0.0.7

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.
Files changed (3) hide show
  1. data/bin/fel +22 -4
  2. data/lib/FrontEndLoader.rb +55 -49
  3. metadata +10 -6
data/bin/fel CHANGED
@@ -1,15 +1,33 @@
1
1
  #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
2
4
  require 'frontendloader'
3
5
  fel = FrontendLoader.new
4
6
  case ARGV[0]
5
7
  when "init"
6
8
  fel.init_app
7
9
  when "compile"
8
- fel.compile
10
+ if ARGV[1] then
11
+ fel.compile ARGV[1]
12
+ else
13
+ fel.compile
14
+ end
9
15
  when "listen"
10
- fel.listen
16
+ if ARGV[1] then
17
+ fel.listen ARGV[1]
18
+ else
19
+ fel.listen
20
+ end
11
21
  when "watch"
12
- fel.listen
22
+ if ARGV[1] then
23
+ fel.listen ARGV[1]
24
+ else
25
+ fel.listen
26
+ end
13
27
  when "--watch"
14
- fel.listen
28
+ if ARGV[1] then
29
+ fel.listen ARGV[1]
30
+ else
31
+ fel.listen
32
+ end
15
33
  end
@@ -1,5 +1,3 @@
1
- require 'jscat'
2
- require 'filestojs'
3
1
  require 'yaml'
4
2
  require 'listen'
5
3
 
@@ -9,7 +7,7 @@ class FrontendLoader
9
7
  attr_accessor :settings
10
8
 
11
9
  def initialize
12
- version = '0.0.6'
10
+ version = '0.0.7'
13
11
  @gem_path = Gem.path[0]+"/gems/frontendloader-"+version
14
12
  @resources_path = Gem.path[0]+"/gems/frontendloader-"+version+"/resources"
15
13
  @processors = {}
@@ -29,24 +27,29 @@ class FrontendLoader
29
27
  end
30
28
 
31
29
  def boilerplate
32
- load_settings
30
+ load_settings
33
31
  end
34
32
 
35
33
  def load_settings
36
34
  if ! File.exists? 'FrontendLoader.yml' then
37
- init_app
35
+ puts 'FrontendLoader not yet initialized. Please run "fel init" first'
36
+ return false
38
37
  end
39
38
  begin
40
- @settings = YAML.load_file('FrontendLoader.yml')
39
+ @settings = YAML.load_file('FrontendLoader.yml')
41
40
  return true
42
41
  rescue Exception => e
43
42
  puts "FrontendLoader.yml could not be parsed as valid YAML, please check your syntax"
44
43
  return false
45
44
  end
46
45
  end
47
-
48
-
49
- def compile
46
+
47
+
48
+ def compile(dir=false)
49
+ if dir then
50
+ Dir.chdir(dir)
51
+ end
52
+
50
53
  return false unless load_settings
51
54
 
52
55
  #CSS
@@ -70,7 +73,7 @@ class FrontendLoader
70
73
  end
71
74
  puts "Compiled css into css.css"
72
75
  end
73
-
76
+
74
77
  #TEMPLATES
75
78
  if @settings['templates']['enabled'] then
76
79
  template_files = Dir.glob("*.#{@settings['templates']['format']}")
@@ -82,7 +85,7 @@ class FrontendLoader
82
85
  end
83
86
  templates_source = "#{@settings['templates']['varname']} = {};\n"
84
87
  template_files.each {|file|
85
- template_markup = File.read(file)
88
+ template_markup = File.open(file, :encoding => "UTF-8").read
86
89
  template_markup.gsub!("\n","")
87
90
  template_markup.gsub!("\"","\\\"")
88
91
  template_markup = template_markup.strip.gsub(/\s{2,}/, ' ')
@@ -92,7 +95,7 @@ class FrontendLoader
92
95
  else
93
96
  templates_source = ""
94
97
  end
95
-
98
+
96
99
  #JS
97
100
  if @settings['javascript']['enabled'] then
98
101
  js_source_files = Dir.glob("*.js")
@@ -106,8 +109,8 @@ class FrontendLoader
106
109
  js_source_files = clean_ignored_files(js_source_files,(@settings['javascript']['ignore'] << 'js.js'))
107
110
  end
108
111
  js_source = ""
109
- js_source_files.each { |file|
110
- js_source << File.read(file)+"\n"
112
+ js_source_files.each { |file|
113
+ js_source << File.open(file,:encoding => "UTF-8").read+"\n"
111
114
  }
112
115
  js_source << templates_source
113
116
  if @settings['javascript']['jsmin'] then
@@ -116,13 +119,13 @@ class FrontendLoader
116
119
  rescue Exception => e
117
120
  puts "JSmin not installed"
118
121
  end
119
- if jsmin then
122
+ if jsmin then
120
123
  js_source = JSMin.minify(js_source)
121
124
  end
122
125
  end
123
126
  if @settings['javascript']['yui'] then
124
127
  begin
125
- yui = require "yui/compressor"
128
+ yui = require "yui/compressor"
126
129
  rescue Exception => e
127
130
  puts "YUI compressor gem not installed"
128
131
  end
@@ -131,14 +134,14 @@ class FrontendLoader
131
134
  js_source = compressor.compress(js_source)
132
135
  end
133
136
  end
134
- File.open('js.js','w') { |f|
137
+ File.open('js.js','w') { |f|
135
138
  f.write(js_source)
136
139
  }
137
140
  puts "Compiled javascript into js.js"
138
141
  end
139
-
142
+
140
143
  end
141
-
144
+
142
145
  def prioritize_files(files, priority_files=[],path="")
143
146
  if priority_files.class != Array then
144
147
  priority_files = []
@@ -153,7 +156,7 @@ class FrontendLoader
153
156
  prioritized_files = priority_files + files
154
157
  return prioritized_files
155
158
  end
156
-
159
+
157
160
  def clean_ignored_files(files, ignored_files=[],path="")
158
161
  if ignored_files.class != Array then
159
162
  ignored_files = []
@@ -166,41 +169,44 @@ class FrontendLoader
166
169
  }
167
170
  return files
168
171
  end
169
-
170
172
 
171
- def listen
173
+
174
+ def listen(dir=false)
175
+ if dir then
176
+ Dir.chdir(dir)
177
+ end
172
178
  begin
173
179
  listener = Listen.to("./", :filter => %r{(.*).(js|css|less|scss|mustache|handlebars|html)}, :ignore => [/js.js/,/style.css/]) do
174
180
  compile
175
181
  end
176
- listener = listener.ignore(/js.js/,/style.css/)
182
+ listener = listener.ignore(/js.js/,/style.css/)
177
183
  rescue Exception => e
178
- puts "\nListening stopped"
184
+ puts "\nListening stopped"
179
185
  end
180
186
  end
181
-
182
-
183
-
184
-
185
-
186
-
187
-
188
-
189
-
190
-
191
-
192
-
193
-
194
-
195
-
196
-
197
-
198
-
199
-
200
-
201
-
202
-
203
-
204
-
205
-
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
206
212
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frontendloader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-10-28 00:00:00.000000000Z
13
+ date: 2012-07-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: listen
17
- requirement: &70144685725960 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,7 +22,12 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70144685725960
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
26
31
  description: Accelerated front end development
27
32
  email: dan@explodingbox.com
28
33
  executables:
@@ -56,10 +61,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
56
61
  version: '0'
57
62
  requirements: []
58
63
  rubyforge_project:
59
- rubygems_version: 1.8.10
64
+ rubygems_version: 1.8.23
60
65
  signing_key:
61
66
  specification_version: 3
62
67
  summary: A command line interface for rapid creation of web app interfaces, compiling
63
68
  less, js and mustache files into two requests
64
69
  test_files: []
65
- has_rdoc: true