ymdp 0.1.11 → 0.1.12

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.
@@ -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