ymdp 0.1.11 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,7 +7,7 @@ YMDP_ENV = "build" unless defined?(YMDP_ENV)
7
7
 
8
8
  describe "Compiler" do
9
9
  before(:each) do
10
- Object.send(:remove_const, :CONFIG)
10
+ Object.send(:remove_const, :CONFIG) if defined?(CONFIG)
11
11
  CONFIG = mock('config').as_null_object
12
12
  stub_screen_io
13
13
  stub_file_io
@@ -83,7 +83,8 @@ describe "Template" do
83
83
  end
84
84
 
85
85
  it "should validate" do
86
- YMDP::Validator::JSON.should_receive(:validate)
86
+ @json_validator = mock('json_validator', :validate => true)
87
+ Epic::Validator::JSON.should_receive(:new).and_return(@json_validator)
87
88
  @js_template.validate
88
89
  end
89
90
  end
@@ -113,6 +114,8 @@ describe "Template" do
113
114
  end
114
115
 
115
116
  it "should build" do
117
+ @js_template.configuration.compress["embedded_js"] = false
118
+
116
119
  File.stub!(:read).with("filename.js").and_return("unprocessed")
117
120
 
118
121
  # process the contents of filename.html.erb through ERB
@@ -120,20 +123,20 @@ describe "Template" do
120
123
  @erb = mock('erb', :result => "processed template output")
121
124
  ERB.should_receive(:new).with("unprocessed", anything, anything).and_return(@erb)
122
125
 
126
+ Epic::Compressor.stub!(:new).and_return(mock('compressor', :compress => "compressed template output"))
127
+
123
128
  F.stub!(:save_to_file).with("processed template output")
124
129
 
125
130
  @js_template.build.should == "processed template output"
126
131
  end
127
132
 
128
133
  it "should compress" do
129
- @config.stub!(:compress_embedded_js?).and_return(true)
130
-
131
134
  # process the contents of filename.html.erb through ERB
132
135
  #
133
136
  @erb = mock('erb', :result => "processed template output")
134
137
  ERB.should_receive(:new).with("unprocessed", anything, anything).and_return(@erb)
135
138
 
136
- YMDP::Compressor::JavaScript.stub!(:compress).and_return("compressed template")
139
+ Epic::Compressor.stub!(:new).and_return(mock('compressor', :compress => "compressed template"))
137
140
  File.stub!(:read).with("filename.js").and_return("unprocessed")
138
141
 
139
142
  F.stub!(:save_to_file)
@@ -210,7 +213,8 @@ describe "Template" do
210
213
  @processed_haml = "processed haml"
211
214
  stub_haml_class
212
215
 
213
- YMDP::Validator::HTML.stub!(:validate)
216
+ @html_validator = mock('html_validator', :validate => true)
217
+ Epic::Validator::HTML.stub!(:new).and_return(@html_validator)
214
218
  end
215
219
 
216
220
  it "should not build if it's a partial" do
@@ -1,4 +1,3 @@
1
-
2
1
  def stub_ymdp_configuration
3
2
  @content_variables = {
4
3
  "version" => 1,
data/ymdp.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ymdp}
8
- s.version = "0.1.11"
8
+ s.version = "0.1.12"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jeff Coleman"]
12
- s.date = %q{2010-01-25}
12
+ s.date = %q{2010-01-30}
13
13
  s.description = %q{Framework for developing applications in the Yahoo! Mail Development Platform.}
14
14
  s.email = %q{progressions@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -47,19 +47,14 @@ Gem::Specification.new do |s|
47
47
  "lib/ymdp/compiler/git_helper.rb",
48
48
  "lib/ymdp/compiler/options.rb",
49
49
  "lib/ymdp/compiler/template.rb",
50
- "lib/ymdp/compressor/compressor.rb",
51
- "lib/ymdp/compressor/yuicompressor-2.4.2.jar",
52
50
  "lib/ymdp/configuration/config.rb",
53
51
  "lib/ymdp/configuration/constants.rb",
54
52
  "lib/ymdp/generator/templates/javascript.js",
55
53
  "lib/ymdp/generator/templates/stylesheet.css",
56
54
  "lib/ymdp/generator/templates/translation.pres",
57
55
  "lib/ymdp/generator/templates/view.html.haml",
58
- "lib/ymdp/support/file.rb",
59
56
  "lib/ymdp/tasks/keys.rake",
60
57
  "lib/ymdp/tasks/ymdp.rake",
61
- "lib/ymdp/validator/jslint.js",
62
- "lib/ymdp/validator/validator.rb",
63
58
  "lib/ymdp/view/application.rb",
64
59
  "lib/ymdp/view/application_view.rb",
65
60
  "lib/ymdp/view/asset_tag_helper.rb",
@@ -68,7 +63,6 @@ Gem::Specification.new do |s|
68
63
  "spec/application_view_spec.rb",
69
64
  "spec/compiler_spec.rb",
70
65
  "spec/compiler_template_spec.rb",
71
- "spec/compressor_spec.rb",
72
66
  "spec/configuration_spec.rb",
73
67
  "spec/default_settings.rb",
74
68
  "spec/domains_spec.rb",
@@ -77,7 +71,6 @@ Gem::Specification.new do |s|
77
71
  "spec/spec.opts",
78
72
  "spec/spec_helper.rb",
79
73
  "spec/stubs.rb",
80
- "spec/validator_spec.rb",
81
74
  "spec/ymdp_base_spec.rb",
82
75
  "spec/ymdp_spec.rb",
83
76
  "ymdp.gemspec"
@@ -92,7 +85,6 @@ Gem::Specification.new do |s|
92
85
  "spec/application_view_spec.rb",
93
86
  "spec/compiler_spec.rb",
94
87
  "spec/compiler_template_spec.rb",
95
- "spec/compressor_spec.rb",
96
88
  "spec/configuration_spec.rb",
97
89
  "spec/default_settings.rb",
98
90
  "spec/domains_spec.rb",
@@ -100,7 +92,6 @@ Gem::Specification.new do |s|
100
92
  "spec/git_helper_spec.rb",
101
93
  "spec/spec_helper.rb",
102
94
  "spec/stubs.rb",
103
- "spec/validator_spec.rb",
104
95
  "spec/ymdp_base_spec.rb",
105
96
  "spec/ymdp_spec.rb"
106
97
  ]
@@ -111,6 +102,7 @@ Gem::Specification.new do |s|
111
102
 
112
103
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
113
104
  s.add_development_dependency(%q<rspec>, [">= 1.2.6"])
105
+ s.add_development_dependency(%q<cucumber>, [">= 0"])
114
106
  s.add_runtime_dependency(%q<haml>, [">= 0"])
115
107
  s.add_runtime_dependency(%q<json>, [">= 0"])
116
108
  s.add_runtime_dependency(%q<hpricot>, [">= 0"])
@@ -125,9 +117,10 @@ Gem::Specification.new do |s|
125
117
  s.add_runtime_dependency(%q<ymdp_generator>, [">= 0"])
126
118
  s.add_runtime_dependency(%q<ymdt>, [">= 0"])
127
119
  s.add_runtime_dependency(%q<yrb>, [">= 0"])
128
- s.add_runtime_dependency(%q<w3c_validators>, [">= 0"])
120
+ s.add_runtime_dependency(%q<epic>, [">= 0"])
129
121
  else
130
122
  s.add_dependency(%q<rspec>, [">= 1.2.6"])
123
+ s.add_dependency(%q<cucumber>, [">= 0"])
131
124
  s.add_dependency(%q<haml>, [">= 0"])
132
125
  s.add_dependency(%q<json>, [">= 0"])
133
126
  s.add_dependency(%q<hpricot>, [">= 0"])
@@ -142,10 +135,11 @@ Gem::Specification.new do |s|
142
135
  s.add_dependency(%q<ymdp_generator>, [">= 0"])
143
136
  s.add_dependency(%q<ymdt>, [">= 0"])
144
137
  s.add_dependency(%q<yrb>, [">= 0"])
145
- s.add_dependency(%q<w3c_validators>, [">= 0"])
138
+ s.add_dependency(%q<epic>, [">= 0"])
146
139
  end
147
140
  else
148
141
  s.add_dependency(%q<rspec>, [">= 1.2.6"])
142
+ s.add_dependency(%q<cucumber>, [">= 0"])
149
143
  s.add_dependency(%q<haml>, [">= 0"])
150
144
  s.add_dependency(%q<json>, [">= 0"])
151
145
  s.add_dependency(%q<hpricot>, [">= 0"])
@@ -160,7 +154,7 @@ Gem::Specification.new do |s|
160
154
  s.add_dependency(%q<ymdp_generator>, [">= 0"])
161
155
  s.add_dependency(%q<ymdt>, [">= 0"])
162
156
  s.add_dependency(%q<yrb>, [">= 0"])
163
- s.add_dependency(%q<w3c_validators>, [">= 0"])
157
+ s.add_dependency(%q<epic>, [">= 0"])
164
158
  end
165
159
  end
166
160
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ymdp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Coleman
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-25 00:00:00 -06:00
12
+ date: 2010-01-30 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -22,6 +22,16 @@ dependencies:
22
22
  - !ruby/object:Gem::Version
23
23
  version: 1.2.6
24
24
  version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: cucumber
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
25
35
  - !ruby/object:Gem::Dependency
26
36
  name: haml
27
37
  type: :runtime
@@ -163,7 +173,7 @@ dependencies:
163
173
  version: "0"
164
174
  version:
165
175
  - !ruby/object:Gem::Dependency
166
- name: w3c_validators
176
+ name: epic
167
177
  type: :runtime
168
178
  version_requirement:
169
179
  version_requirements: !ruby/object:Gem::Requirement
@@ -212,19 +222,14 @@ files:
212
222
  - lib/ymdp/compiler/git_helper.rb
213
223
  - lib/ymdp/compiler/options.rb
214
224
  - lib/ymdp/compiler/template.rb
215
- - lib/ymdp/compressor/compressor.rb
216
- - lib/ymdp/compressor/yuicompressor-2.4.2.jar
217
225
  - lib/ymdp/configuration/config.rb
218
226
  - lib/ymdp/configuration/constants.rb
219
227
  - lib/ymdp/generator/templates/javascript.js
220
228
  - lib/ymdp/generator/templates/stylesheet.css
221
229
  - lib/ymdp/generator/templates/translation.pres
222
230
  - lib/ymdp/generator/templates/view.html.haml
223
- - lib/ymdp/support/file.rb
224
231
  - lib/ymdp/tasks/keys.rake
225
232
  - lib/ymdp/tasks/ymdp.rake
226
- - lib/ymdp/validator/jslint.js
227
- - lib/ymdp/validator/validator.rb
228
233
  - lib/ymdp/view/application.rb
229
234
  - lib/ymdp/view/application_view.rb
230
235
  - lib/ymdp/view/asset_tag_helper.rb
@@ -233,7 +238,6 @@ files:
233
238
  - spec/application_view_spec.rb
234
239
  - spec/compiler_spec.rb
235
240
  - spec/compiler_template_spec.rb
236
- - spec/compressor_spec.rb
237
241
  - spec/configuration_spec.rb
238
242
  - spec/default_settings.rb
239
243
  - spec/domains_spec.rb
@@ -242,7 +246,6 @@ files:
242
246
  - spec/spec.opts
243
247
  - spec/spec_helper.rb
244
248
  - spec/stubs.rb
245
- - spec/validator_spec.rb
246
249
  - spec/ymdp_base_spec.rb
247
250
  - spec/ymdp_spec.rb
248
251
  - ymdp.gemspec
@@ -279,7 +282,6 @@ test_files:
279
282
  - spec/application_view_spec.rb
280
283
  - spec/compiler_spec.rb
281
284
  - spec/compiler_template_spec.rb
282
- - spec/compressor_spec.rb
283
285
  - spec/configuration_spec.rb
284
286
  - spec/default_settings.rb
285
287
  - spec/domains_spec.rb
@@ -287,6 +289,5 @@ test_files:
287
289
  - spec/git_helper_spec.rb
288
290
  - spec/spec_helper.rb
289
291
  - spec/stubs.rb
290
- - spec/validator_spec.rb
291
292
  - spec/ymdp_base_spec.rb
292
293
  - spec/ymdp_spec.rb
@@ -1,134 +0,0 @@
1
- require 'rubygems'
2
- require 'ymdp/base'
3
- require 'active_support'
4
- require 'support/file'
5
-
6
- module YMDP
7
- module Compressor #:nodoc:
8
- # Compresses a file using the specified compressor/minifier (currently YUI Compressor 2.4.2).
9
- #
10
- # === Usage
11
- #
12
- # YMDP::Compressor::Base.compress("filename.js", "type" => "js")
13
- #
14
- # YMDP::Compressor::Base.compress("filename.css", "type" => "css")
15
- #
16
- # Outputs the compressed file to <tt>_path_.min.</tt>
17
- #
18
- # === Options
19
- #
20
- # "type":: "js" or "css". Identifies the file type.
21
- #
22
- # "obfuscate":: true or false. Change internal variable names within the code.
23
- #
24
- # "verbose":: true or false. Output warnings about code quality.
25
- #
26
- # "preserve_semi":: true or false. Preserve unnecessary semicolons.
27
- #
28
- # TODO: Make it support multiple compressors.
29
- #
30
- # TODO: Convert it to an object, so you instantiate the Compressor class and then call it
31
- # on a file or a string.
32
- #
33
- # TODO: Get some stringify_keys! action going so you can send in symbols or strings.
34
- #
35
- class Base < YMDP::Base
36
- def self.compress(path, options={})
37
- options.stringify_keys!
38
- compressed_display_path = display_path(path)
39
- compressed_path = "#{path}.min"
40
-
41
- options["type"] ||= "js"
42
- options["type"] = options["type"].to_s
43
-
44
- # if the compressed_file exists, don't create it again
45
- #
46
- unless File.exists?(compressed_path)
47
- $stdout.print " #{compressed_display_path} compressing . . . "
48
- compressed = ''
49
-
50
- # set options and defaults
51
- #
52
- if options.delete("obfuscate")
53
- options["nomunge"] = ""
54
- end
55
- if options.delete("verbose")
56
- options["verbose"] = ""
57
- end
58
- options["charset"] = "utf-8"
59
-
60
- if options["type"].to_s == "js" && !options["preserve_semi"]
61
- options["preserve-semi"] = ""
62
- end
63
-
64
- # join the options together for appending to the command line
65
- #
66
- options_string = options.map {|k,v| "--#{k} #{v}"}.join(" ")
67
-
68
-
69
- # call the compressor
70
- #
71
-
72
- compressor_path = File.expand_path("#{File.dirname(__FILE__)}/yuicompressor-2.4.2.jar")
73
- raise "#{compressor_path} does not exist" unless File.exists?(compressor_path)
74
-
75
- command = "java -jar #{compressor_path} #{options_string} #{path} -o #{compressed_path} 2>&1"
76
- result = F.execute(command, :return => true)
77
-
78
- result.split("\n").each do |line|
79
- if line =~ /\[ERROR\] (\d+):(\d+):(.*)/
80
- line_number = $1.to_i
81
- error = "Error at #{compressed_display_path} line #{line_number} character #{$2}: #{$3}"
82
- error += F.get_line_from_file(path, line_number)
83
-
84
- $stdout.puts error
85
- g(error)
86
- end
87
- end
88
-
89
- if result =~ /ERROR/
90
- raise "JavaScript errors in #{compressed_display_path}"
91
- else
92
- $stdout.puts "OK"
93
- end
94
- end
95
-
96
- # The compressed file should exist now. If it does, use it. If not, raise an error.
97
- #
98
- if File.exists?(compressed_path)
99
- compressed = File.read(compressed_path)
100
- else
101
- raise "File does not exist: #{compressed_display_path}"
102
- end
103
-
104
- compressed
105
- end
106
- end
107
-
108
- # Compresses a CSS file using the specified compressor/minifier (currently YUI Compressor 2.4.2).
109
- #
110
- # === Usage
111
- #
112
- # YMDP::Compressor::Stylesheet.compress("filename.css")
113
- #
114
- class Stylesheet < Base
115
- # TODO: Add options hash
116
- def self.compress(path)
117
- super(path, "type" => "css")
118
- end
119
- end
120
-
121
- # Compresses a JavaScript file using the specified compressor/minifier (currently YUI Compressor 2.4.2).
122
- #
123
- # === Usage
124
- #
125
- # YMDP::Compressor::JavaScript.compress("filename.js")
126
- #
127
- class JavaScript < Base
128
- # TODO: Add options hash
129
- def self.compress(filename)
130
- super(filename, "type" => "js")
131
- end
132
- end
133
- end
134
- end
@@ -1,63 +0,0 @@
1
- # Provides a wrapper around common calls that interact with the file system.
2
- #
3
- module F
4
-
5
- module_function
6
-
7
- # Concatenates together the contents of all the files in the <tt>source_path</tt>
8
- # into the <tt>destination_path</tt>.
9
- #
10
- def concat_files(source_path, destination_path)
11
- File.open(destination_path, "a") do |output|
12
- Dir[source_path].each do |path|
13
- output.puts File.read(path)
14
- end
15
- end
16
- end
17
-
18
- # Saves the <tt>output</tt> string to the <tt>destination_path</tt> given.
19
- #
20
- # Returns <tt>true</tt> if the destination file was newly created, <tt>false</tt> if
21
- # it already existed.
22
- #
23
- def save_to_file(output, destination_path)
24
- if File.exists?(destination_path)
25
- false
26
- else
27
- File.open(destination_path, "w") do |w|
28
- w.write(output)
29
- end
30
- true
31
- end
32
- end
33
-
34
- # Given a <tt>path</tt> and <tt>line_number</tt>, returns the line and two lines previous
35
- #
36
- # Used for displaying validation errors.
37
- #
38
- def get_line_from_file(path, line_number)
39
- line_number = line_number.to_i
40
- output = "\n"
41
- lines = File.readlines(path)
42
-
43
- 3.times do |i|
44
- line = lines[line_number-(3-i)]
45
- output += line if line
46
- end
47
-
48
- output += "\n"
49
- output
50
- end
51
-
52
- # Execute a system command. If the parameter <tt>:return</tt> is true, execute the command
53
- # with the backtick (`) command and return the results. Otherwise, just execute the command
54
- # and let the output go to the screen.
55
- #
56
- def execute(command, params={})
57
- if params[:return]
58
- `#{command}`
59
- else
60
- Kernel.system command
61
- end
62
- end
63
- end