golf 0.5.4 → 0.5.5

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- golf (0.5.2)
4
+ golf (0.5.3)
5
5
  hpricot
6
6
  json
7
7
  rack
data/lib/golf/compiler.rb CHANGED
@@ -1,5 +1,15 @@
1
1
  module Golf
2
2
 
3
+ module Filter
4
+ class Upcase
5
+ def self.transform(data)
6
+ data.upcase
7
+ end
8
+ end
9
+
10
+ end
11
+
12
+
3
13
  class Compiler
4
14
 
5
15
  require 'find'
@@ -26,7 +36,7 @@ module Golf
26
36
  end
27
37
 
28
38
  def component_json
29
- traverse("#{@golfpath}/components", "html")
39
+ traverse_components
30
40
  end
31
41
 
32
42
  def res_json
@@ -105,49 +115,73 @@ module Golf
105
115
  traverse("#{@golfpath}/styles", "css")
106
116
  end
107
117
 
118
+ def traverse_components
119
+ results = {}
120
+ Dir["#{@golfpath}/components/**/*"].each do |path|
121
+ name = package_name(path)
122
+ valid_arr = path_valid_for_filtering?(path)
123
+ next if FileTest.directory?(path) or !path.include?('.html')
124
+ data = filtered_read(path)
125
+ data_arr = extract_parts(data, path)
126
+ results = results.merge({ name => { "name" => name, "html" => data_arr["html"], "css" => data_arr["css"], "js" => data_arr["js"] }})
127
+ end
128
+ JSON.dump(results)
129
+ end
130
+
131
+
108
132
  def traverse(dir, type)
109
133
  results = {}
110
134
  if File.exists?(dir) and File.directory?(dir)
111
135
  Dir["#{dir}/**/*.#{type}"].sort.reverse.each do |path|
112
- if type == "html"
113
- name = package_name(path)
114
- arr = path.split('/')
115
- last_two = arr.slice(arr.length - 2 ,2)
116
- next if last_two[0] != last_two[1].gsub('.html','')
117
- else
118
- name = path.split('/').last.gsub(".#{type}",'')
119
- end
136
+ name = path.split('/').last.gsub(".#{type}",'')
120
137
  data = filtered_read(path)
121
- if type == "html"
122
- data_arr = extract_parts(data)
123
- results = results.merge({ name => { "name" => name, "html" => data_arr["html"], "css" => data_arr["css"], "js" => data_arr["js"] }})
124
- else
125
- results = results.merge({ name => { "name" => name, "#{type}" => data }})
126
- end
138
+ results = results.merge({ name => { "name" => name, "#{type}" => data }})
127
139
  end
128
140
  end
129
141
  JSON.dump(results)
130
142
  end
131
-
132
- def extract_parts(data)
143
+
144
+ def extract_parts(data, path)
145
+ component_name = path.split('/').last
146
+ component_dir = path.gsub(component_name, '')
147
+ #load from file
133
148
  doc = Hpricot(data)
134
149
  arr = {}
135
- arr["css"] = (doc/'//style').first.inner_html
136
- arr["js"] = (doc/'//script').first.inner_html
150
+ css = (doc/'//style').first
151
+ if css
152
+ arr["css"] = css
153
+ end
154
+ js = (doc/'//script').first
155
+ if js
156
+ arr["js"] = js
157
+ end
137
158
  (doc/'//style').remove
138
159
  (doc/'//script').remove
160
+
161
+
139
162
  arr["html"] = doc.to_s
163
+
164
+ #load from files, ".js.coffee", etc
165
+ Dir["#{component_dir}/*"].each do |file_path|
166
+ valid_arr = path_valid_for_filtering?(file_path)
167
+ if valid_arr
168
+ filter_name = valid_arr[1]
169
+ output_type = valid_arr[0]
170
+ arr[output_type] = filtered_read(file_path)
171
+ else
172
+ extension = file_path.split('/').last.split('.').last
173
+ arr[extension] = File.read(file_path)
174
+ end
175
+ end
140
176
  arr
141
177
  end
142
-
143
-
144
178
 
145
179
  def filtered_read(path)
146
180
  data = File.read(path)
147
181
  if path.split('.').last == 'html'
148
182
  data = filter_by_block(data)
149
183
  end
150
- data = filter_by_extension(data)
184
+ data = filter_by_extension(data, path)
151
185
  data
152
186
  end
153
187
 
@@ -173,9 +207,29 @@ module Golf
173
207
  data
174
208
  end
175
209
  end
176
-
177
- def filter_by_extension(data)
178
- data
210
+
211
+ def path_valid_for_filtering?(path)
212
+ path_arr = path.split('/').last.split('.')
213
+ if path_arr.count > 2
214
+ last_two = path_arr[path_arr.length - 2..path_arr.length]
215
+ if last_two[0] == "js" or last_two[0] == "css" or last_two[0] == "html"
216
+ last_two
217
+ end
218
+ end
219
+ end
220
+
221
+ def filter_by_extension(data, path)
222
+ valid_arr = path_valid_for_filtering?(path)
223
+ if valid_arr
224
+ filter_name = valid_arr[1].capitalize.to_sym
225
+ if Golf::Filter.constants.include?(filter_name)
226
+ Golf::Filter.const_get(filter_name).transform(data)
227
+ else
228
+ data
229
+ end
230
+ else
231
+ data
232
+ end
179
233
  end
180
234
 
181
235
  def package_name(path)
data/lib/golf/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Golf
2
- VERSION = "0.5.4"
2
+ VERSION = "0.5.5"
3
3
  end
data/lib/golf.rb CHANGED
@@ -4,5 +4,4 @@ require "golf/compiler"
4
4
  require "golf/rack"
5
5
  require "golf/cli"
6
6
  require "golf/version"
7
- require "golf/filter"
8
7
 
@@ -0,0 +1,3 @@
1
+ div.container {
2
+ border: 1px solid red;
3
+ }
@@ -1,13 +1,3 @@
1
1
  <div>
2
- <style type="text/golf">
3
- div.container {
4
- border: 1px solid red;
5
- }
6
- </style>
7
- <script filter="dummy" type="text/golf">
8
- function() {
9
- $(".container").append("<h1>Hello, world!</h1>");
10
- }
11
- </script>
12
2
  <div class="container"></div>
13
3
  </div>
@@ -0,0 +1,3 @@
1
+ function() {
2
+ $(".container").append("<h1>Hello, world!</h1>");
3
+ }
@@ -30,22 +30,21 @@ class CompilerTest < Test::Unit::TestCase
30
30
  b = JSON.parse @compiler.component_json
31
31
  #assert_equal a.keys.sort,b.keys.sort
32
32
  #assert_equal a,b
33
- #puts a["HelloWorld"]["html"
34
33
  #puts '---------'
35
- #puts b["HelloWorld"].inspect
34
+ puts b["HelloWorld"].inspect
36
35
  #puts '---------'
37
36
  #a.keys.each do |key|
38
37
  # puts "#{key} should be #{a[key].hash}, but was #{b[key].hash}"
39
38
  #end
40
39
  end
41
40
 
42
- def test_res_generation
41
+ def te2st_res_generation
43
42
  a = @reference.res
44
43
  b = JSON.parse @compiler.res_json
45
44
  assert_equal a,b
46
45
  end
47
46
 
48
- def test_res_generation_components
47
+ def tesst_res_generation_components
49
48
  a = @reference.res
50
49
  b = JSON.parse @compiler.res_json
51
50
 
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: golf
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 5
8
- - 4
9
- version: 0.5.4
4
+ prerelease:
5
+ version: 0.5.5
10
6
  platform: ruby
11
7
  authors:
12
8
  - Micha Niskin, Alan Dipert, Julio Capote
@@ -14,7 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-04-14 00:00:00 -04:00
13
+ date: 2011-04-14 00:00:00 -07:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
@@ -25,8 +21,6 @@ dependencies:
25
21
  requirements:
26
22
  - - ">="
27
23
  - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
24
  version: "0"
31
25
  type: :runtime
32
26
  version_requirements: *id001
@@ -38,8 +32,6 @@ dependencies:
38
32
  requirements:
39
33
  - - ">="
40
34
  - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
35
  version: "0"
44
36
  type: :runtime
45
37
  version_requirements: *id002
@@ -51,8 +43,6 @@ dependencies:
51
43
  requirements:
52
44
  - - ">="
53
45
  - !ruby/object:Gem::Version
54
- segments:
55
- - 0
56
46
  version: "0"
57
47
  type: :runtime
58
48
  version_requirements: *id003
@@ -64,8 +54,6 @@ dependencies:
64
54
  requirements:
65
55
  - - ">="
66
56
  - !ruby/object:Gem::Version
67
- segments:
68
- - 0
69
57
  version: "0"
70
58
  type: :runtime
71
59
  version_requirements: *id004
@@ -88,8 +76,6 @@ files:
88
76
  - lib/golf.rb
89
77
  - lib/golf/cli.rb
90
78
  - lib/golf/compiler.rb
91
- - lib/golf/filter.rb
92
- - lib/golf/filters/dummy_filter.rb
93
79
  - lib/golf/rack.rb
94
80
  - lib/golf/version.rb
95
81
  - resources/app_error.html
@@ -180,7 +166,9 @@ files:
180
166
  - templates/twitter/golfapp/scripts/00-myscript.js
181
167
  - templates/twitter/golfapp/styles/main.css
182
168
  - test/reference_app/golfapp/components.js
169
+ - test/reference_app/golfapp/components/HelloWorld/HelloWorld.css
183
170
  - test/reference_app/golfapp/components/HelloWorld/HelloWorld.html
171
+ - test/reference_app/golfapp/components/HelloWorld/HelloWorld.js
184
172
  - test/reference_app/golfapp/components/golf/cart/Admin/Admin.html
185
173
  - test/reference_app/golfapp/components/golf/cart/Cart/Cart.html
186
174
  - test/reference_app/golfapp/components/golf/cart/Product/Product.html
@@ -228,57 +216,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
228
216
  requirements:
229
217
  - - ">="
230
218
  - !ruby/object:Gem::Version
231
- segments:
232
- - 0
233
219
  version: "0"
234
220
  required_rubygems_version: !ruby/object:Gem::Requirement
235
221
  none: false
236
222
  requirements:
237
223
  - - ">="
238
224
  - !ruby/object:Gem::Version
239
- segments:
240
- - 0
241
225
  version: "0"
242
226
  requirements: []
243
227
 
244
228
  rubyforge_project: golf
245
- rubygems_version: 1.3.7
229
+ rubygems_version: 1.6.1
246
230
  signing_key:
247
231
  specification_version: 3
248
232
  summary: Component based front end JS Framework
249
- test_files:
250
- - test/reference_app/golfapp/components.js
251
- - test/reference_app/golfapp/components/HelloWorld/HelloWorld.html
252
- - test/reference_app/golfapp/components/golf/cart/Admin/Admin.html
253
- - test/reference_app/golfapp/components/golf/cart/Cart/Cart.html
254
- - test/reference_app/golfapp/components/golf/cart/Product/Product.html
255
- - test/reference_app/golfapp/components/golf/cart/ProductListing/ProductListing.html
256
- - test/reference_app/golfapp/components/golf/cart/Store/Store.html
257
- - test/reference_app/golfapp/controller.js
258
- - test/reference_app/golfapp/img/ Timer & Non-Stick.jpeg
259
- - test/reference_app/golfapp/img/134lines.jpeg
260
- - test/reference_app/golfapp/img/Q33 Sail Plan.jpeg
261
- - test/reference_app/golfapp/img/a/asdf
262
- - test/reference_app/golfapp/img/a/b/c/zxcv
263
- - test/reference_app/golfapp/img/a/b/qwer
264
- - test/reference_app/golfapp/img/em> - Brushed Stainless Steel.jpeg
265
- - test/reference_app/golfapp/img/em> - White.jpeg
266
- - test/reference_app/golfapp/img/em> Broil CTO7100B.jpeg
267
- - test/reference_app/golfapp/img/em> Broiler - Stainless.jpeg
268
- - test/reference_app/golfapp/img/em> with Countdo.jpeg
269
- - test/reference_app/golfapp/img/em> with Element IQ.jpeg
270
- - test/reference_app/golfapp/img/em> with OneTouch ...jpeg
271
- - test/reference_app/golfapp/img/em> with Pizza.jpeg
272
- - test/reference_app/golfapp/img/em>-1.jpeg
273
- - test/reference_app/golfapp/img/em>-2.jpeg
274
- - test/reference_app/golfapp/img/em>-3.jpeg
275
- - test/reference_app/golfapp/img/em>-Black.jpeg
276
- - test/reference_app/golfapp/img/em>.jpeg
277
- - test/reference_app/golfapp/img/unnamed.jpeg
278
- - test/reference_app/golfapp/plugins/mylib.js
279
- - test/reference_app/golfapp/scripts/00-myscript.js
280
- - test/reference_app/golfapp/scripts/01-jquery.tmpl.js
281
- - test/reference_app/golfapp/styles/main.css
282
- - test/test_compiler.rb
283
- - test/test_helper.rb
284
- - test/test_rack.rb
233
+ test_files: []
234
+
data/lib/golf/filter.rb DELETED
@@ -1,10 +0,0 @@
1
- module Golf
2
- module Filter
3
- end
4
- end
5
-
6
- Dir["#{File.expand_path('../../../lib/golf/filters', __FILE__)}/*.rb"].each do |path|
7
- puts "golf #{Golf::VERSION}: loading filter #{path}"
8
- require path
9
- end
10
-
@@ -1,11 +0,0 @@
1
- module Golf
2
- module Filter
3
- class Dummy
4
- def self.transform(data)
5
- data
6
- end
7
- end
8
- end
9
- end
10
-
11
-