module TokyoMetro::Factory::Scss::TrainType
@todo こちらを残す
Public Class Methods
make()
click to toggle source
# File lib/tokyo_metro/factory/scss/train_type.rb, line 4 def self.make train_types = ::TrainType.all.map { | train_type | train_type }.delete_if { | train_type | train_type.color.nil? or train_type.bgcolor.nil? }.sort_by( &:railway_line_id ) filename_of_color = "#{ dir_of_stylesheets }/common_mixins/color/rails/_train_types.scss" puts filename_of_color File.open( filename_of_color , "w:utf-8" ) do |f| f.print( content_common_mixin_color( train_types ) ) end filename_of_main_content = "#{ dir_of_stylesheets }/tokyo_metro/controllers/concern/train_types.scss" puts filename_of_main_content File.open( filename_of_main_content , "w:utf-8" ) do |f| f.print( main_content_document_train_type( train_types ) ) end end
Private Class Methods
begin_scss_content( content , indent , i )
click to toggle source
# File lib/tokyo_metro/factory/scss/train_type.rb, line 103 def begin_scss_content( content , indent , i ) " " * indent * i + content + " \{" end
bgcolor_variable_of_train_type( train_type )
click to toggle source
# File lib/tokyo_metro/factory/scss/train_type.rb, line 119 def bgcolor_variable_of_train_type( train_type ) "$#{train_type.css_class_name}_bgcolor" end
color_variable_of_train_type( train_type )
click to toggle source
# File lib/tokyo_metro/factory/scss/train_type.rb, line 115 def color_variable_of_train_type( train_type ) "$#{train_type.css_class_name}_color" end
content_common_mixin_color( train_types )
click to toggle source
# File lib/tokyo_metro/factory/scss/train_type.rb, line 34 def content_common_mixin_color( train_types ) ary = ::Array.new ary << scss_charset ary << "" train_types.each do | train_type | ary << color_variable_of_train_type( train_type ) + ": #{train_type.color}" + ";" end ary << "" train_types.each do | train_type | ary << bgcolor_variable_of_train_type( train_type ) + ": #{train_type.bgcolor}" + ";" end ary.join( "\n" ) end
dir_of_stylesheets()
click to toggle source
# File lib/tokyo_metro/factory/scss/train_type.rb, line 30 def dir_of_stylesheets ::File.expand_path( "#{ ::TokyoMetro.top_dir }/app/assets/stylesheets" ) end
end_scss_content( indent , i )
click to toggle source
# File lib/tokyo_metro/factory/scss/train_type.rb, line 107 def end_scss_content( indent , i ) " " * indent * i + "\}" end
main_content_document_train_type( train_types )
click to toggle source
# File lib/tokyo_metro/factory/scss/train_type.rb, line 48 def main_content_document_train_type( train_types ) ary = ::Array.new indent = 2 ary << scss_charset ary << "" ary << "\@import \'train_types/box.scss\' \;" ary << "\@import \'train_types/odakyu_romance_car.scss\' \;" ary << "" ary << "\#train_types \{" train_types_grouped_by_operator = train_types.group_by { | train_type | # 事業者ごとに分類(railway_line_id をもとに事業者名を取得する) train_type.railway_line.operator.id } train_types_grouped_by_operator.keys.sort.each do | operator_id | operator_instance = ::Operator.find_by( id: operator_id ) train_types_in_an_operator = train_types_grouped_by_operator[ operator_id ] ary << begin_scss_content( ".#{ operator_instance.css_class_name }" , indent , 1 ) train_types_grouped_by_railway_line = train_types_in_an_operator.group_by { | train_type | # 路線ごとに分類(railway_line_id をもとに路線名を取得する) train_type.railway_line.id } train_types_grouped_by_railway_line.keys.sort.each do | railway_line_id | railway_line_in_db = ::RailwayLine.find_by( id: railway_line_id ) train_types_in_a_railway_line = train_types_grouped_by_railway_line[ railway_line_id ] raise "Error: #{operator_instance.same_as} - The railway line \##{railway_line_id} is not defined." if railway_line_in_db.nil? ary << begin_scss_content( ".#{ railway_line_in_db.css_class_name }" , indent , 2 ) # 路線ごとの各種別について記述 train_types_in_a_railway_line.each do | train_type | # custom.TrainType:x.y.z の z の部分をクラス名に用いる train_type_fundamental = train_type.decorate.css_class_name ary << begin_scss_content( "\.#{train_type_fundamental}" , indent , 3 ) ary << " " * indent * 4 + "\$color: " + color_variable_of_train_type( train_type ) + ";" ary << " " * indent * 4 + "\$bgcolor: " + bgcolor_variable_of_train_type( train_type ) + ";" ary << " " * indent * 4 + "\@include gradationSettingsOfTrainTypeBox( \$color , \$bgcolor ) ;" ary << " " * indent * 4 + "\@extend %trainTypeBoxBase_normal ;" ary << end_scss_content( indent , 3 ) end ary << end_scss_content( indent , 2 ) end ary << end_scss_content( indent , 1 ) end ary << "\}" ary.join( "\n" ) end
scss_charset()
click to toggle source
# File lib/tokyo_metro/factory/scss/train_type.rb, line 26 def scss_charset "\@charset \"utf-8\";" end
train_type_rounded_square_class_name()
click to toggle source
# File lib/tokyo_metro/factory/scss/train_type.rb, line 111 def train_type_rounded_square_class_name "train_type_box" end