lentil 0.2.3 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ac9052aa763faa97b327c18dcf1a9611beb260fa
4
- data.tar.gz: 83bdf4d62ff9ddb8538ac7c00c72f719ca6dc4bf
3
+ metadata.gz: cc790c8e8d8fe34956d0258fa3e26d349676a692
4
+ data.tar.gz: f071d713ce237797067c234ef47d2a22d5e06364
5
5
  SHA512:
6
- metadata.gz: 22c34020deafcd91b5d568f7d2496a679f89d5f5eb4aeeadc6d55105c006bd3f5a91492e5e155ecb3effc61507e02614210c0cb725114a5456fb66cdd322d42b
7
- data.tar.gz: 5ce6b0ca1879316543a5cc0e0735a569a90ed666d6cdbee4bfe3f02f9e7bc66dfe15b43feccc1f7c0e1cfdfa206cbd7c419f4809f15b5d3ed1369b6f819a6f2e
6
+ metadata.gz: fb64e39f915689b55216b0a2bcf8fd451558d6a272acc6af24c3a3436ed226b28babd28650139d97797a6e54cbd1453b7249dabc24e26dc833b77ea2e19c6c0d
7
+ data.tar.gz: 025923fe1ae7b2e97b65efcb8d10f6c82a0f8932d32e747451eedcbd520296980b9961ce0a0503186c40bf8eefba536da892c0a366ad54e6719b4a1093ac5376
@@ -1,6 +1 @@
1
- @import 'compass';
2
- @import 'framework/mixins';
3
- @import 'framework/normalize';
4
- @import 'framework/print';
5
- @import 'framework/grid-helpers';
6
- @import 'framework/grid-core';
1
+ @import 'framework/breakpoint';
@@ -0,0 +1,20 @@
1
+ // Grid Variables
2
+ // ==========================================================================
3
+
4
+ $grid-column: 60px !default;
5
+ $grid-gutter: 20px !default;
6
+ $base-font-size: 16px !default;
7
+ $grid-direction: left !default;
8
+
9
+ // generate visual grid overlay on class .grid-overlay
10
+ $grid-overlay: false !default;
11
+
12
+ // fallback breakpoint (column count for < IE9)
13
+ $ie-support: false !default;
14
+
15
+ // label for your mobile first breakpoint
16
+ $first-breakpoint: "small" !default;
17
+
18
+ @import 'utils';
19
+ @import 'core';
20
+ @import 'grid';
@@ -0,0 +1,163 @@
1
+ $current-bp: 0;
2
+ $counter: 0;
3
+
4
+ // push small breakpoint label into list
5
+ $first-breakpoint: append($first-breakpoint, ());
6
+
7
+ // Javascript hook for current breakpoint label
8
+ @media (min-width: 0) {
9
+ body::before { content: breakpoint-list(nth($first-breakpoint, 1), $first-breakpoint, $counter); height: 0; display:block; overflow:hidden; }
10
+ }
11
+ @if ($ie-support) { .lt-ie9 head { font-family: breakpoint-list(nth($first-breakpoint, 1), $first-breakpoint, $counter); } }
12
+
13
+
14
+ // Breakpoint mixin
15
+ // =============================================================================
16
+
17
+ @mixin breakpoint($min: false, $max: false, $label: false, $orientation: false, $wrapper: true, $resolution: false) {
18
+
19
+ // set warnings if arguments are invalid
20
+ @if ($min == false and $max == false and $label == false and $orientation == false and $wrapper == true and $resolution == false) {
21
+ @warn "breakpoint requires you to pass some kind of argument. It can't read your mind. :)";
22
+ }
23
+ @if ($min == 0 and $max == false and $label == false and $orientation == false and $wrapper == true and $resolution == false) {
24
+ @warn "If you pass zero as a minimum you need to specify a max column value.";
25
+ }
26
+
27
+ // create MQ labels
28
+ @if ($label) {
29
+
30
+ // normalize quotes
31
+ $label: quote(unquote($label));
32
+
33
+ $counter: $counter + 1 !global;
34
+
35
+ // push label to label list names = push(names, myname)
36
+ $first-breakpoint: append($first-breakpoint, $label, comma);
37
+
38
+ }
39
+
40
+ // set current breakpoint for fluid function
41
+ $current-bp: $min !global;
42
+
43
+ // min width mq
44
+ @if ($min and $max == false) {
45
+ @if ($min > 0) {
46
+ // create min width mq
47
+ // can we remove duplication of code here?
48
+ @if ($orientation) {
49
+ @media ( min-width: (fixed($min) + em($grid-gutter)) * ($base-font-size / 16px) ) and ( orientation: $orientation ) {
50
+ @include breakpoint-extras($min, $wrapper, $grid-overlay) { @content };
51
+ }
52
+ } @else {
53
+ @media ( min-width: (fixed($min) + em($grid-gutter)) * ($base-font-size / 16px) ) {
54
+
55
+ // label current breakpoint
56
+ @if($label) { body::before { content: breakpoint-list($label, $first-breakpoint, $counter); } }
57
+
58
+ @include breakpoint-extras($min, $wrapper, $grid-overlay) { @content };
59
+ }
60
+ }
61
+ // ie fallback
62
+ @if ($ie-support and $min <= $ie-support and $orientation == false) {
63
+ .lt-ie9 {
64
+ @include breakpoint-extras($min, $wrapper, $grid-overlay: false) { @content };
65
+
66
+ // label current breakpoint
67
+ @if($label) { & head { font-family: breakpoint-list($label, $first-breakpoint, $counter); } }
68
+
69
+
70
+ }
71
+ }
72
+ }
73
+ }
74
+
75
+ // max width mq
76
+ @if ($max) {
77
+ // create max only mq
78
+ @if ($min == 0 or $min == false) {
79
+ @if ($orientation) {
80
+ @media ( max-width: fixed($max) + em($grid-gutter) * ($base-font-size / 16px) ) and ( orientation: $orientation ) { @content }
81
+ } @else {
82
+ @media ( max-width: fixed($max) + em($grid-gutter) * ($base-font-size / 16px) ) { @content }
83
+ }
84
+ // create min and max mq
85
+ } @else {
86
+ @if ($orientation) {
87
+ @media ( min-width: fixed($min) + em($grid-gutter) * ($base-font-size / 16px) ) and ( max-width: fixed($max) + em($grid-gutter) ) and ( orientation: $orientation ) { @content }
88
+ } @else {
89
+ @media ( min-width: fixed($min) + em($grid-gutter) * ($base-font-size / 16px) ) and ( max-width: fixed($max) + em($grid-gutter) ) { @content }
90
+ }
91
+ }
92
+ }
93
+
94
+ // orientation only mq
95
+ @if ($min == false and $max == false) {
96
+ @if ($orientation) {
97
+ @media ( orientation: $orientation ) { @content }
98
+ }
99
+ }
100
+
101
+ // pixel ratio mq
102
+ @if ($resolution) {
103
+ // warn if invalid value
104
+ @if ($resolution != 'high' and $resolution != 'low') {
105
+ @warn "$resolution only supports values of 'high' or 'low'";
106
+ }
107
+ @if ($resolution == 'high') {
108
+ @media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { @content }
109
+ }
110
+ @if ($resolution == 'low') {
111
+ @media (-webkit-max-device-pixel-ratio: 1.5), (max-resolution: 144dpi) { @content }
112
+ }
113
+ // ie fallback
114
+ @if ($ie-support and $resolution == 'low') {
115
+ .lt-ie9 { @content }
116
+ }
117
+ }
118
+ }
119
+
120
+ // private mixin for generating extras in a min width mq
121
+ @mixin breakpoint-extras($min, $wrapper, $grid-overlay) {
122
+
123
+ @if($grid-overlay) { @include grid-overlay($min); }
124
+
125
+ // proper sizing of wrapper
126
+ @if($wrapper) { .wrapper { width: fixed($min) - em($grid-gutter); } }
127
+
128
+ @content
129
+
130
+ }
131
+
132
+ // Grid overlay
133
+ // =============================================================================
134
+
135
+ @mixin grid-overlay($col: false) {
136
+ .grid-overlay {
137
+ position: fixed; top: 0; bottom: 0; pointer-events: none; z-index: 10000;
138
+
139
+ $overlay-color: transparentize(red, .9);
140
+ background: -webkit-linear-gradient(left, transparent $grid-gutter, $overlay-color $grid-gutter, $overlay-color $grid-gutter + $grid-column);
141
+ background: -moz-linear-gradient(left, transparent $grid-gutter, $overlay-color $grid-gutter, $overlay-color $grid-gutter + $grid-column);
142
+ background: -o-linear-gradient(left, transparent $grid-gutter, $overlay-color $grid-gutter, $overlay-color $grid-gutter + $grid-column);
143
+ background: linear-gradient(left, transparent $grid-gutter, $overlay-color $grid-gutter, $overlay-color $grid-gutter + $grid-column);
144
+
145
+ @if ($col) {
146
+ left: 50%;
147
+ width: fixed($col) + em($grid-gutter);
148
+ margin-left: fixed($col) / -2 - (em($grid-gutter)/2);
149
+ -webkit-background-size: $grid-gutter + $grid-column;
150
+ -moz-background-size: $grid-gutter + $grid-column;
151
+ -o-background-size: $grid-gutter + $grid-column;
152
+ background-size: $grid-gutter + $grid-column;
153
+ } @else {
154
+ left: 0;
155
+ right: $grid-gutter;
156
+ -webkit-background-size: 25%;
157
+ -moz-background-size: 25%;
158
+ -o-background-size: 25%;
159
+ background-size: 25%;
160
+ }
161
+ }
162
+ }
163
+ @if($grid-overlay) { @include grid-overlay; }
@@ -1,25 +1,23 @@
1
- /* Grid based on https://github.com/necolas/griddle by Nicolas Gallagher (@necolas) */
2
-
3
- // Grid Core
4
- // =============================================================================
1
+ /*! Grid based on https://github.com/necolas/griddle by Nicolas Gallagher (@necolas) */
5
2
 
6
3
  // establish base font size in config so that media queries can be resized if the base context chagnes
7
- body { font-size: $base-font-size; }
4
+ body { font-size: em($base-font-size, 16px); }
8
5
 
9
6
  // wrapper defaults to 100% fluid with side gutters
10
7
  // when triggering a breakpoint wrapper becomes fixed width and centered
11
8
  .wrapper {
12
- margin-left: em($grid-gutter);
13
- margin-right: em($grid-gutter);
9
+ margin-left: auto;
10
+ margin-right: auto;
11
+ padding-left: em($grid-gutter);
12
+ padding-right: em($grid-gutter);
14
13
  }
15
14
 
16
15
  // for responsive images
17
- img { max-width: 100%; margin-bottom:5px;}
16
+ img { max-width: 100%; }
18
17
  .no-js .responsive-image { display: none; }
19
18
 
20
19
  // Grid container
21
- // Must only contain `.grid` or `.grid-cell` components as children.
22
-
20
+ // Must only contain `.grid` or `.grid__cell` components as children.
23
21
  .grid {
24
22
  display: block;
25
23
  padding: 0;
@@ -29,16 +27,19 @@ img { max-width: 100%; margin-bottom:5px;}
29
27
  // Remove inter-unit whitespace for all non-monospace font-families
30
28
  // If you're using a monospace base font, you will need to set the `grid`
31
29
  // font-family to `sans-serif` and then redeclare the monospace font on
32
- // the `grid-cell` objects.
30
+ // the `grid__cell` objects.
33
31
  letter-spacing: -0.31em;
34
- word-spacing: -0.43em;
35
32
  // Protect against WebKit bug with optimizelegibility
36
33
  text-rendering: optimizespeed;
37
34
  }
38
35
 
36
+ .opera:-o-prefocus,
37
+ .grid {
38
+ word-spacing: -0.43em;
39
+ }
40
+
39
41
  // Child `grid` object adjustments
40
42
  // Used for more complex fixed-fluid hybrid grids
41
-
42
43
  .grid > .grid {
43
44
  overflow: hidden;
44
45
  margin-right: 0;
@@ -48,17 +49,28 @@ img { max-width: 100%; margin-bottom:5px;}
48
49
 
49
50
  // Grid units
50
51
  // No explicit width by default
51
-
52
- .grid-cell {
52
+ .grid__cell {
53
53
  width: 100%;
54
- @include inline-block;
55
- @include border-box;
56
- margin: 5px 0 0 0;
54
+
55
+ display: -moz-inline-stack;
56
+ display: inline-block;
57
+ *vertical-align: auto;
58
+ zoom: 1;
59
+ *display: inline;
60
+
61
+ -webkit-box-sizing: border-box;
62
+ -moz-box-sizing: border-box;
63
+ box-sizing: border-box;
64
+
65
+ margin: 0;
57
66
  padding: 0 0.5 * em($grid-gutter);
67
+
58
68
  /* controls vertical positioning of units */
59
69
  vertical-align: top;
70
+
60
71
  /* keeps unit content correctly aligned */
61
72
  text-align: $grid-direction;
73
+
62
74
  /* reset text defaults */
63
75
  letter-spacing: normal;
64
76
  word-spacing: normal;
@@ -66,18 +78,12 @@ img { max-width: 100%; margin-bottom:5px;}
66
78
  }
67
79
 
68
80
  // Modifier: horizontally center all grid units
69
- // Allows for automatic unit centering irrespective of the number of
70
- // units in the grid.
71
-
72
- .grid-center {
81
+ .grid--center {
73
82
  text-align: center;
74
83
  }
75
84
 
76
85
  // Modifier: horizontally center one unit
77
- // Set a specific unit to be horizontally centered. Doesn't affect
78
- // any other units. Can still contain a child `grid` object.
79
-
80
- .grid-cell-center {
86
+ .grid__cell--center {
81
87
  display: block;
82
88
  margin: 0 auto;
83
89
  }
@@ -0,0 +1,17 @@
1
+ // converting px to em
2
+ @function em($px, $base: $base-font-size) { @return ($px / $base) * 1em; }
3
+
4
+ // creates percentage width
5
+ @function fluid($col, $avail: $current-bp) { @return (100% / $avail) * $col }
6
+
7
+ // creates em width
8
+ // pass false as a second argument to remove the built in gutter (for creating height measurements)
9
+ @function fixed($col, $gutter: true) {
10
+ @if ($gutter) { @return $col * ( em($grid-column + $grid-gutter) ) }
11
+ @else { @return $col * ( em($grid-column + $grid-gutter) ) - em($grid-gutter) }
12
+ }
13
+
14
+ // create json formatted string of breakpoint info
15
+ @function breakpoint-list($label, $first-breakpoint, $counter) {
16
+ @return '{ "current" : "#{$label}", "all" : [#{$first-breakpoint}], "position" : #{$counter} }';
17
+ }
@@ -2,5 +2,5 @@
2
2
  // They will automatically be included in application.css.
3
3
  // You can use Sass (SCSS) here: http://sass-lang.com/
4
4
 
5
- @import "breakpoint/sass/style.scss";
5
+ @import "breakpoint/sass/style";
6
6
  @import "animatedimages/css/style.css";
@@ -1,7 +1,7 @@
1
1
  module Lentil
2
2
  class PhotographersController < Lentil::ApplicationController
3
3
  def index
4
- @photographers = User.joins(:images).where("state = 1").group(:id).order(:user_name)
4
+ @photographers = User.joins(:images).where("state = 1").group('lentil_users.id').order(:user_name)
5
5
  @title = "Photographers"
6
6
  end
7
7
 
@@ -20,4 +20,9 @@ class Lentil::Tag < ActiveRecord::Base
20
20
  validates_presence_of :name
21
21
 
22
22
  scope :harvestable, where(:lentil_tagsets => {:harvest => true}).includes(:tagsets)
23
+
24
+ #Stripping tags on write
25
+ def name=(new_name)
26
+ write_attribute(:name, new_name.sub(/^#/, ''))
27
+ end
23
28
  end
@@ -1,6 +1,6 @@
1
1
  <div class="images">
2
2
  <% @images.each do |image| %>
3
- <div id="image_<%= image.id %>" class="grid-cell image-tile">
3
+ <div id="image_<%= image.id %>" class="grid__cell image-tile">
4
4
  <%= link_to url_for(image), 'data-fancybox-href' => image.jpeg, 'data-fancybox-group' => "image-tile-gallery", :class => :fancybox do %>
5
5
  <%= image_tag(image.jpeg, :class => "instagram-img " + image.id.to_s, :alt => image.description, :data => {:battles_count => image.battles_count, :win_pct => image.win_pct, :popularity => image.popular_score, :staff_like => image.staff_like, :like_votes_count => image.like_votes_count}) %>
6
6
  <% end %>
@@ -4,14 +4,14 @@
4
4
  </script>
5
5
  <div class="wrapper">
6
6
  <div class="grid">
7
- <div id="ri-grid" class="ri-grid ri-grid-size-2 grid-cell animated-images staff-picks-animated" style="padding:0; margin:0;">
7
+ <div id="ri-grid" class="ri-grid ri-grid-size-2 grid__cell animated-images staff-picks-animated" style="padding:0; margin:0;">
8
8
  <ul>
9
9
  <% @images.each do |image| %>
10
10
  <li class="image-animate-tile"><a href="#"><%= image_tag(image.jpeg, :class => "instagram-img") %></a></li>
11
11
  <% end -%>
12
12
  </ul>
13
13
  </div>
14
- <div class="grid-cell animated-images-branding">
14
+ <div class="grid__cell animated-images-branding">
15
15
  <h1 class="name"><%= application_name %></h1>
16
16
  <h1 class="url"><%= link_to main_app.root_url, main_app.root_url %></h2>
17
17
  </div>
@@ -7,7 +7,7 @@
7
7
  <%= render :partial => "/layouts/lentil/top_navigation" %>
8
8
  <section class="wrapper">
9
9
  <div class="grid">
10
- <div class="grid-cell header">
10
+ <div class="grid__cell header">
11
11
  <h1><%= link_to application_name, main_app.root_path %></h1>
12
12
  <ul class="header_nav">
13
13
  <li><%= nav_link t('lentil.nav.battle'), :thisorthat_battle %></li>
@@ -15,10 +15,10 @@
15
15
  <% end -%>
16
16
  <%= render :partial => "/layouts/lentil/top_navigation" %>
17
17
  <div class="wrapper">
18
- <div class="grid-cell side-filler"></div>
19
- <div id="image_<%= @image.id %>" class="image-show grid-cell solo-image">
18
+ <div class="grid__cell side-filler"></div>
19
+ <div id="image_<%= @image.id %>" class="image-show grid__cell solo-image">
20
20
  <a href="<%= @image.url %>"><%= image_tag(@image.jpeg, :class => "instagram-img") %></a>
21
21
  <%= render "/layouts/lentil/image_popup", :image => @image %>
22
22
  </div>
23
- <div class="grid-cell side-filler"></div>
23
+ <div class="grid__cell side-filler"></div>
24
24
  </div>
@@ -2,7 +2,7 @@
2
2
  <%= render :partial => "/layouts/lentil/top_navigation" %>
3
3
  <section id="about" class="wrapper">
4
4
  <div class="grid">
5
- <div class="well contribute grid-cell">
5
+ <div class="well contribute grid__cell">
6
6
  Create the file app/views/lentil/pages/about.html.erb and fill it with whatever you want.
7
7
  </div>
8
8
  </div>
@@ -2,7 +2,7 @@
2
2
  <%= render :partial => "/layouts/lentil/top_navigation" %>
3
3
  <section class="wrapper">
4
4
  <div class="grid">
5
- <div class="grid-cell well">
5
+ <div class="grid__cell well">
6
6
  <ul>
7
7
  <% @photographers.each do |photographer| %>
8
8
  <li><%= link_to photographer.user_name, photographer_path(photographer.id) %></li>
@@ -2,7 +2,7 @@
2
2
  <%= render :partial => "/layouts/lentil/top_navigation" %>
3
3
  <section class="wrapper">
4
4
  <div class="grid">
5
- <div class="grid-cell well photographer-info">
5
+ <div class="grid__cell well photographer-info">
6
6
  <h1><%= @photographer.user_name %> (<%= t 'lentil.photographer.photo', :count => @images.total_entries %>)</h1>
7
7
  <%# FIXME: Is there a better way to be recording the photographer URL? %>
8
8
  <h2><%= link_to t('lentil.photographer.service_link', username: @photographer.user_name , service: @photographer.service.name), @photographer.service.url + "/" + @photographer.user_name %></h2>
@@ -1,7 +1,7 @@
1
1
  <div class="grid battle-inner">
2
2
  <%= semantic_form_for :battle, :remote => true, :url => thisorthat_result_path do |form| %>
3
3
  <% @images.each do |image| %>
4
- <div class="battle-image-wrap grid-cell">
4
+ <div class="battle-image-wrap grid__cell">
5
5
  <%= semantic_fields_for "image[#{image.id}]", image do |f| %>
6
6
  <div id="image_<%= image.id %>" class="battle-image-tile">
7
7
  <a href="<%= url_for(image) %>" data-fancybox-href= "<%= image.jpeg %>" class="fancybox"><%= image_tag(image.jpeg, :class => "battle-img", :data => {:battles_count => image.battles_count, :win_pct => image.win_pct, :popularity => image.popular_score, :staff_like => image.staff_like, :like_votes_count => image.like_votes_count}) %>
@@ -21,7 +21,7 @@
21
21
  <% end -%>
22
22
  <% end -%>
23
23
  <% @prev_images.each do |image| %>
24
- <div class="battle-image-wrap grid-cell" style="background:#e6e6e6">
24
+ <div class="battle-image-wrap grid__cell" style="background:#e6e6e6">
25
25
  <div id="image_<%= image.id %>" class="battle-image-tile">
26
26
  <a href="<%= url_for(image) %>" data-fancybox-href= "<%= image.jpeg %>" class="fancybox"><%= image_tag(image.jpeg, :class => "battle-img", :data => {:battles_count => image.battles_count, :win_pct => image.win_pct, :popularity => image.popular_score, :staff_like => image.staff_like, :like_votes_count => image.like_votes_count}) %>
27
27
  <div class="battle-image-desc trunc-small"><div class="battle-image-inner-desc"><%= truncate(image.description, :length => 35) %></div></div>