[Ror-es] Color válido
Damian Janowski
damian.janowski at gmail.com
Fri Sep 29 14:44:49 GMT 2006
Queda claro que los colores van siempre en las hojas de estilo...
Pero cuando le tengo que permitir al usuario marcar algo con un color
particular, ese color casi se convierte en un tema del negocio...
y además sería extremadamente complicado generar un CSS con los
colores de la BD :(
On 9/29/06, Borja Martín <borjam at dagi3d.net> wrote:
> personalmente recomendaría delegar todo lo que
> forme parte de la presentación en hojas de estilo externas, pero sí que
> me parecería muy interesante la posibilidad de
> usar este helper en hojas de estilo generadas dinámicamente desde ror.
>
> saludos
>
> At 16:35 29/09/2006, you wrote:
> >Buenísimo Juanjo, sigo un poco más, para poder hacer:
> >
> ><%= sanitize_color 255 %>
> >-> rgb(255,255,255)
> >
> ><%= sanitize_color [255, 0, 0] %>
> >-> rgb(255,0,0)
> >
> ><%= sanitize_color 'black' %>
> >-> black
> >
> ><%= sanitize_color 'negro' %>
> >-> transparent
> >
> ><%= sanitize_color 'fff' %>
> >-> #FFF
> >
> >
> >CSS_COLOR_NAMES = %w(aqua black blue fuchsia gray green lime maroon
> >navy olive purple red silver teal white yellow)
> >
> > def sanitize_color(color, default = 'transparent')
> > color = [color, color, color] if color.is_a?(Integer)
> > return "rgb(#{color.map { |i| i > 255 ? 255 : i }.join(',')})" if
> >color.is_a?(Array) && color.size == 3
> > return color if CSS_COLOR_NAMES.include?(color)
> > color = color.to_s.chomp.upcase
> > color.insert(0, '#') unless color.first == '#'
> > color =~ /\#([0-9A-F]{3}|[0-9A-F]{6})/ ? color : default
> > end
> >
> >On 9/29/06, Juanjo Bazán <jjbazan at kflink.com> wrote:
> > > Buena idea.
> > > Yo le añadiría un detalle: el que se pueda
> > especificar un color por defecto:
> > >
> > > def sanitize_color(color , default=nil)
> > > color = color.to_s.chomp.upcase
> > > color.insert(0, '#') unless color.first == '#'
> > > color =~ /\#([0-9A-F]{3}|[0-9A-F]{6})/ ? color : default
> > > end
> > >
> > > Así se puede hacer algo así:
> > > <%= sanitize_color @post.color, 'black' %> o
> > > <%= sanitize_color @post.color, '#442271' %>
> > >
> > > Salu2!
> > > Juanjo
> > >
> > >
> > >
> > >
> > > ----- Original Message -----
> > > From: "Damian Janowski" <damian.janowski at gmail.com>
> > > To: "La lista sobre Ruby On Rails (rubyonrails.com) en castellano"
> > > <ror-es at lists.simplelogica.net>
> > > Sent: Friday, September 29, 2006 3:20 PM
> > > Subject: [Ror-es] Color válido
> > >
> > >
> > > Hola amigos
> > >
> > > Les mando este snippet para validar que un color en hexadecimal sea
> > > válido y que contenga el numeral inicial, como para hacer algo como:
> > >
> > > <span style="color: <%= sanitize_color @post.color %>"><%= @post.title
> > > %></span>
> > >
> > > Si a alguien se le ocurre cómo mejorarlo, etc., bienvenido :)
> > > Además, si a alguien le parece que el nombre sanitize_color no es
> > > apropiado, comentemelo por favor (yo creo haber seguido el
> > > sanitize_path, etc.)
> > >
> > > def sanitize_color(color)
> > > color = color.to_s.chomp.upcase
> > > color.insert(0, '#') unless color.first == '#'
> > > color =~ /\#([0-9A-F]{3}|[0-9A-F]{6})/ ? color : nil
> > > end
> > >
> > > Faltaría hacer un helper que ponga el atributo "color: " sólo si
> > > sanitize_color no devuelve nil, porque si no es css inválido.
> > >
> > > El selector de color que estoy usando es http://colourmod.com (el que sale
> > > $2)
> > >
> > > Saludos!
> > > --
> > > Damian Janowski
> > > damian.janowski at gmail.com
>
> /**
> * dagi3d v4 | <http://dagi3d.net>http://dagi3d.net
> */
>
> _______________________________________________
> Ror-es mailing list
> Ror-es at lists.simplelogica.net
> http://lists.simplelogica.net/mailman/listinfo/ror-es
>
--
Damian Janowski
damian.janowski at gmail.com
More information about the Ror-es
mailing list