Class: RailsSprite::StylesheetGenerator
- Inherits:
-
Object
- Object
- RailsSprite::StylesheetGenerator
- Defined in:
- lib/rails_sprite/stylesheet_generator.rb
Class Method Summary collapse
- .composite_css_scss(result) ⇒ Object
- .composite_css_scss_erb(result) ⇒ Object
- .generate(options = {}) ⇒ Object
Class Method Details
.composite_css_scss(result) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/rails_sprite/stylesheet_generator.rb', line 50 def self.composite_css_scss result styles = [] styles << "// \u5C06\u4E0B\u97623\u884C\uFF0C\u653E\u5165\u9875\u9762\u4E2D(\u4EC5\u4F9B\u53C2\u8003)\n// .\#{result[:css_class_shared]} {\n// background: url(<%= static_url(\"\#{result[:image_scope_name]}\") %>) no-repeat;\n// }\n" result[:styles].each do |style| styles << ".\#{style[:class]} {\n background-position: \#{style[:x]} -\#{style[:y]};\n}\n END_CSS\n end\nend\n" |
.composite_css_scss_erb(result) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/rails_sprite/stylesheet_generator.rb', line 69 def self.composite_css_scss_erb result styles = [] styles << ".\#{result[:css_class_shared]} {\n background: url(<%= image_path(\"\#{result[:image_scope_name]}\") %>) no-repeat;\n}\n" result[:styles].each do |style| styles << ".\#{style[:class]} {\n background-position: \#{style[:x]} -\#{style[:y]};\n}\n END_CSS\n\n\n# .\#{style[:class]} {\n# background: url(<%= image_path(\"\#{result[:image_scope_name]}\") %>) \#{style[:x]} -\#{style[:y]} no-repeat;\n# }\n end\n\n styles.join(\"\\n\")\nend\n" |
.generate(options = {}) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/rails_sprite/stylesheet_generator.rb', line 4 def self.generate ={} css_class_prefix = [:css_class_prefix] css_class_shared = [:css_class_shared] css_extend = [:css_extend] image_scope_name = [:image_scope_name] file_infos = [:file_infos] stylesheet_to = [:stylesheet_to] result = {} styles = [] file_infos.each do |file_info| style = {} style[:width] = "#{file_info[:width]}px" style[:height] = "#{file_info[:height]}px" style[:x] = "#{file_info[:x]}px" style[:y] = "#{file_info[:y]}px" style[:class] = "#{css_class_prefix}#{file_info[:file_purename]}" styles << style end result[:styles] = styles result[:image_scope_name] = image_scope_name result[:css_class_shared] = css_class_shared css_filt_content = case css_extend when '.css.scss.erb', '.scss.erb' composite_css_scss_erb(result) when '.css', '.scss' composite_css_scss(result) else end system "mkdir -p #{::File.dirname(stylesheet_to)}" ::File.open(stylesheet_to, 'w') do |file| file.write( css_filt_content ) end result end |