toolsmith 0.0.9 → 0.0.10

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.
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.0.10
4
+
5
+ * Definition list now captures all marup within it.
6
+ * Definition list helper method is now `definition_list` instead of `definitions`
7
+
3
8
  ## v0.0.9
4
9
 
5
10
  * Fix Definition List to include `dl-horizontal` class.
data/README.md CHANGED
@@ -4,21 +4,10 @@ A crafty tool to craft crafty UI's.
4
4
 
5
5
  ### Install
6
6
 
7
- In your gemfile, specify the private gem source. You can find our private source in http://know.gophilosophie.com
8
-
9
- ```ruby
10
- if ENV["TOOLSMITH_GEM_URL"]
11
- source ENV["TOOLSMITH_GEM_URL"]
12
- else
13
- raise "Missing ENV var \"TOOLSMITH_GEM_URL\". Please see the README"
14
- end
15
-
16
- ```
17
-
18
7
  In your projects gemfile, slap this in there:
19
8
 
20
9
  ```
21
- gem "toolsmith", "~> 0.0.1"
10
+ gem "toolsmith"
22
11
  ```
23
12
 
24
13
  Then...
@@ -30,7 +19,7 @@ Profit.
30
19
 
31
20
  ### Usage
32
21
 
33
- When including toolsmith CSS and JS, you automatically get Bootstrap for free.
22
+ When including toolsmith CSS and JS, you automatically get the Bootstrap CSS / JS for free as well.
34
23
 
35
24
  #### CSS
36
25
 
@@ -40,10 +29,28 @@ In your application.scss file, include an import directive like so:
40
29
  import "toolsmith";
41
30
  ```
42
31
 
43
- You also have ```toolsmith-responsive``` has an option.
32
+ You also have ```toolsmith-responsive``` has an option, which includes `bootstrap-responsive` and any other responsive designs provided.
44
33
 
45
34
  #### Javascript
46
35
 
47
36
  ```js
48
37
  #= require toolsmith
49
- ```
38
+ ```
39
+
40
+
41
+ ### What do I get?
42
+
43
+ Toolsmith's aim is to provide very common UI components with simple methods. Things like Page Headers, Flash messages, etc...
44
+
45
+ As an example:
46
+
47
+ ```erb
48
+ <%= page_header "Projects", @project.name do |header| %>
49
+ <% header.button title: "Edit", path: edit_project_path(@project), icon: "pencil" %>
50
+ <% header.button title: "Delete", path: project_path(@project), icon: "trash", anchor: anchor: { method: :delete, confirm: "Are you sure?" } %>
51
+ <% end %>
52
+
53
+ ```
54
+
55
+ Gives you something like this for free:
56
+ ![Page Header Example](http://i.imgur.com/ycXzDR1.png)
@@ -1,217 +1 @@
1
- $black: #000;
2
- $grayDarker: #222;
3
- $grayDark: #333;
4
- $gray: #555;
5
- $grayLight: #999;
6
- $grayLighter: #eee;
7
- $white: #fff;
8
-
9
- $blue: #049cdb;
10
- $blueDark: #0064cd;
11
- $green: #46a546;
12
- $red: #9d261d;
13
- $yellow: #ffc40d;
14
- $orange: #f89406;
15
- $pink: #c3325f;
16
- $purple: #7a43b6;
17
-
18
- $bodyBackground: rgb(255, 255, 255);
19
- $textColor: $grayDark;
20
-
21
- $linkColor: #E22D60;
22
- $linkColorHover: darken($linkColor, 15%);
23
-
24
-
25
- $sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
26
- $serifFontFamily: Georgia, "Times New Roman", Times, serif;
27
- $monoFontFamily: Monaco, Menlo, Consolas, "Courier New", monospace;
28
-
29
- $baseFontSize: 14px;
30
- $baseFontFamily: $sansFontFamily;
31
- $baseLineHeight: 20px;
32
- $altFontFamily: $serifFontFamily;
33
-
34
- $headingsFontFamily: inherit;
35
- $headingsFontWeight: bold;
36
- $headingsColor: inherit;
37
-
38
- $fontSizeLarge: $baseFontSize * 1.25;
39
- $fontSizeSmall: $baseFontSize * 0.85;
40
- $fontSizeMini: $baseFontSize * 0.75;
41
-
42
- $paddingLarge: 11px 19px;
43
- $paddingSmall: 2px 10px;
44
- $paddingMini: 0 6px;
45
-
46
- $baseBorderRadius: 4px;
47
- $borderRadiusLarge: 6px;
48
- $borderRadiusSmall: 3px;
49
-
50
- $tableBackground: transparent;
51
- $tableBackgroundAccent: #f9f9f9;
52
- $tableBackgroundHover: #f5f5f5;
53
- $tableBorder: #ddd;
54
-
55
- $btnBackground: $white;
56
- $btnBackgroundHighlight: darken($white, 10%);
57
- $btnBorder: #bbb;
58
-
59
- $btnPrimaryBackground: #6d6d6d;
60
- $btnPrimaryBackgroundHighlight: darken($btnPrimaryBackground, 10%);
61
-
62
- $btnInfoBackground: #6d6d6d;
63
- $btnInfoBackgroundHighlight: darken($btnInfoBackground, 10%);
64
-
65
- $btnSuccessBackground: #6d6d6d;
66
- $btnSuccessBackgroundHighlight: darken($btnSuccessBackground, 10%);
67
-
68
- $btnWarningBackground: #E22D60;
69
- $btnWarningBackgroundHighlight: darken($btnWarningBackground, 10%);
70
-
71
- $btnDangerBackground: #E22D60;
72
- $btnDangerBackgroundHighlight: darken($btnDangerBackground, 10%);
73
-
74
- $btnInverseBackground: #444;
75
- $btnInverseBackgroundHighlight: $grayDarker;
76
-
77
- $inputBackground: $white;
78
- $inputBorder: #ccc;
79
- $inputBorderRadius: $baseBorderRadius;
80
- $inputDisabledBackground: $grayLighter;
81
- $formActionsBackground: #f5f5f5;
82
- $inputHeight: $baseLineHeight + 10px;
83
-
84
- $dropdownBackground: $white;
85
- $dropdownBorder: rgba(0,0,0,.2);
86
- $dropdownDividerTop: #e5e5e5;
87
- $dropdownDividerBottom: $white;
88
-
89
- $dropdownLinkColor: #6d6d6d;
90
- $dropdownLinkColorHover: $white;
91
- $dropdownLinkColorActive: $white;
92
-
93
- $dropdownLinkBackgroundActive: #E22D60;
94
- $dropdownLinkBackgroundHover: #E22D60;
95
-
96
- $zindexDropdown: 1000;
97
- $zindexPopover: 1010;
98
- $zindexTooltip: 1030;
99
- $zindexFixedNavbar: 1030;
100
- $zindexModalBackdrop: 1040;
101
- $zindexModal: 1050;
102
-
103
- $placeholderText: $grayLight;
104
-
105
- $hrBorder: $grayLighter;
106
- $horizontalComponentOffset: 180px;
107
-
108
- $wellBackground: #f5f5f5;
109
-
110
- $navbarCollapseWidth: 900px;
111
- $navbarCollapseDesktopWidth: $navbarCollapseWidth + 1;
112
-
113
- $navbarHeight: 40px;
114
- $navbarBackgroundHighlight: #202020;
115
- $navbarBackground: darken($navbarBackgroundHighlight, 5%);
116
- $navbarBorder: darken($navbarBackground, 12%);
117
-
118
- $navbarText: #E22D60;
119
- $navbarLinkColor: #6d6d6d;
120
- $navbarLinkColorHover: #aaaaaa;
121
- $navbarLinkColorActive: #E22D60;
122
- $navbarLinkBackgroundHover: transparent;
123
- $navbarLinkBackgroundActive: darken($navbarBackground, 5%);
124
-
125
- $navbarBrandColor: #E22D60;
126
-
127
- $navbarInverseBackground: #111111;
128
- $navbarInverseBackgroundHighlight: #222222;
129
- $navbarInverseBorder: #252525;
130
-
131
- $navbarInverseText: $grayLight;
132
- $navbarInverseLinkColor: $navbarLinkColor;
133
- $navbarInverseLinkColorHover: $navbarLinkColorHover;
134
- $navbarInverseLinkColorActive: $navbarLinkColorActive;
135
- $navbarInverseLinkBackgroundHover: transparent;
136
- $navbarInverseLinkBackgroundActive: $navbarInverseBackground;
137
-
138
- $navbarInverseSearchBackground: lighten($navbarInverseBackground, 25%);
139
- $navbarInverseSearchBackgroundFocus: $white;
140
- $navbarInverseSearchBorder: $navbarInverseBackground;
141
- $navbarInverseSearchPlaceholderColor: #ccc;
142
-
143
- $navbarInverseBrandColor: $navbarBrandColor;
144
-
145
-
146
- // Pagination
147
- // -------------------------
148
- $paginationBackground: #fff;
149
- $paginationBorder: #ddd;
150
- $paginationActiveBackground: #f5f5f5;
151
-
152
-
153
- // Hero unit
154
- // -------------------------
155
- $heroUnitBackground: #F5F5F5;
156
- $heroUnitHeadingColor: inherit;
157
- $heroUnitLeadColor: inherit;
158
-
159
-
160
- // Form states and alerts
161
- // -------------------------
162
- $warningText: #c09853;
163
- $warningBackground: #fcf8e3;
164
- $warningBorder: darken(adjust-hue($warningBackground, -10), 3%);
165
-
166
- $errorText: #E22D60;
167
- $errorBackground: #f9e3e9;
168
- $errorBorder: darken(adjust-hue($errorBackground, -10), 3%);
169
-
170
- $successText: #333333;
171
- $successBackground: #ededed;
172
- $successBorder: darken(adjust-hue($successBackground, -10), 5%);
173
-
174
- $infoText: #333333;
175
- $infoBackground: #ededed;
176
- $infoBorder: darken(adjust-hue($infoBackground, -10), 7%);
177
-
178
-
179
- // Tooltips and popovers
180
- // -------------------------
181
- $tooltipColor: #fff;
182
- $tooltipBackground: #000;
183
- $tooltipArrowWidth: 5px;
184
- $tooltipArrowColor: $tooltipBackground;
185
-
186
- $popoverBackground: #fff;
187
- $popoverArrowWidth: 10px;
188
- $popoverArrowColor: #fff;
189
- $popoverTitleBackground: darken($popoverBackground, 3%);
190
-
191
- // Special enhancement for popovers
192
- $popoverArrowOuterWidth: $popoverArrowWidth + 1;
193
- $popoverArrowOuterColor: rgba(0,0,0,.25);
194
-
195
-
196
- $gridColumns: 12;
197
- $gridColumnWidth: 60px;
198
- $gridGutterWidth: 20px;
199
- $gridRowWidth: ($gridColumns * $gridColumnWidth) + ($gridGutterWidth * ($gridColumns - 1));
200
-
201
- $gridColumnWidth1200: 70px;
202
- $gridGutterWidth1200: 30px;
203
- $gridRowWidth1200: ($gridColumns * $gridColumnWidth1200) + ($gridGutterWidth1200 * ($gridColumns - 1));
204
-
205
- $gridColumnWidth768: 42px;
206
- $gridGutterWidth768: 20px;
207
- $gridRowWidth768: ($gridColumns * $gridColumnWidth768) + ($gridGutterWidth768 * ($gridColumns - 1));
208
-
209
-
210
- $fluidGridColumnWidth: percentage($gridColumnWidth/$gridRowWidth);
211
- $fluidGridGutterWidth: percentage($gridGutterWidth/$gridRowWidth);
212
-
213
- $fluidGridColumnWidth1200: percentage($gridColumnWidth1200/$gridRowWidth1200);
214
- $fluidGridGutterWidth1200: percentage($gridGutterWidth1200/$gridRowWidth1200);
215
-
216
- $fluidGridColumnWidth768: percentage($gridColumnWidth768/$gridRowWidth768);
217
- $fluidGridGutterWidth768: percentage($gridGutterWidth768/$gridRowWidth768);
1
+ @import "bootstrap/variables";
@@ -1,10 +1,24 @@
1
1
  module Toolsmith
2
2
  module ViewHelpers
3
3
  module DefinitionListHelpers
4
- def definitions(&block)
5
- definition_list = Toolsmith::Views::DefinitionList.new(self)
6
- yield definition_list if block_given?
7
- definition_list
4
+ # Generates a Definition List
5
+ #
6
+ # ```
7
+ # <%= definition_list do |dl| %>
8
+ # <%= dl.define "Name", "Robert Ross" %>
9
+ # <% end %>
10
+ # ```
11
+ #
12
+ # Will output:
13
+ #
14
+ # ```
15
+ # <dl class="dl-horizontal">
16
+ # <dt>Name</dt><dd>Robert Ross</dd>
17
+ # </dl>
18
+ # ```
19
+ #
20
+ def definition_list(options={}, &block)
21
+ Toolsmith::Views::DefinitionList.new(self, options, &block)
8
22
  end
9
23
  end
10
24
  end
@@ -1,11 +1,46 @@
1
1
  module Toolsmith
2
2
  module ViewHelpers
3
3
  module GridHelpers
4
+
5
+ # Generates a grid row.
6
+ #
7
+ # ```
8
+ # <%= row do %>
9
+ # Content
10
+ # <% end %>
11
+ # ```
12
+ # Will output:
13
+ #
14
+ # ```
15
+ # <div class="row">
16
+ # Content
17
+ # </div>
18
+ # ```
19
+ # @param options [Hash]
20
+ # @return [String] `<div class="row">Content</div>`
4
21
  def row(options={}, &block)
5
22
  row_class = options[:fluid] ? "row-fluid" : "row"
6
23
  content_tag(:div, class: row_class, &block)
7
24
  end
8
25
 
26
+ # Returns a grid column element.
27
+ #
28
+ # ```
29
+ # <%= column 12 do %>
30
+ # I'm in a column!
31
+ # <% end %>
32
+ # ```
33
+ # Will output:
34
+ #
35
+ # ```
36
+ # <div class="span12">
37
+ # I'm in a column!
38
+ # </div>
39
+ # ```
40
+ #
41
+ # @param width [Fixnum]
42
+ # @param options [Hash]
43
+ # @return [String]
9
44
  def column(width, options = {}, &block)
10
45
  classes = %W[span#{width}]
11
46
  classes << "offset#{options[:offset]}" if options[:offset]
@@ -13,6 +48,24 @@ module Toolsmith
13
48
  content_tag(:div, class: classes, &block)
14
49
  end
15
50
 
51
+ # Create a row and fullwidth column (based on the standard 12 wide)
52
+ #
53
+ # ```
54
+ # <%= full_width_column do %>
55
+ # My more-to-love column.
56
+ # <% end %>
57
+ # ```
58
+ # Will output:
59
+ #
60
+ # ```
61
+ # <div class="row">
62
+ # <div class="span12">
63
+ # My more-to-love column.
64
+ # </div>
65
+ # </div>
66
+ # ```
67
+ # @see #row
68
+ # @see #column
16
69
  def full_width_column(options={}, &block)
17
70
  row(options) do
18
71
  column(12, &block)
@@ -1,3 +1,3 @@
1
1
  module Toolsmith
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  end
@@ -1,26 +1,29 @@
1
1
  module Toolsmith
2
2
  module Views
3
3
  class DefinitionList < Base
4
- Definition = Struct.new(:term, :description)
4
+ DEFAULT_CLASS = "dl-horizontal"
5
5
 
6
- def definitions
7
- @definitions ||= []
6
+ attr_reader :content_block, :options
7
+
8
+ def initialize(context, options={}, &block)
9
+ @content_block = block if block_given?
10
+ @options = options
11
+ super(context, &nil)
8
12
  end
9
13
 
10
14
  def define(term, description)
11
- definitions << Definition.new(term, description)
15
+ content_tag(:dt, term) + content_tag(:dd, description || " ")
12
16
  end
13
17
 
14
18
  def to_s
15
- content_tag :dl, list_body, class: "dl-horizontal"
19
+ content = context.capture(self, &content_block)
20
+ content_tag :dl, content, dl_options
16
21
  end
17
22
 
18
23
  private
19
24
 
20
- def list_body
21
- definitions.map do |definition|
22
- "#{content_tag :dt, definition.term}#{content_tag :dd, definition.description}".html_safe
23
- end.html_join
25
+ def dl_options
26
+ { class: !options[:horizontal] ? DEFAULT_CLASS : "" }
24
27
  end
25
28
  end
26
29
  end
metadata CHANGED
@@ -1,32 +1,39 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toolsmith
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Robert Ross
9
+ - Brendan Loudermilk
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-02-01 00:00:00.000000000 Z
13
+ date: 2013-02-15 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: rails
16
17
  requirement: !ruby/object:Gem::Requirement
17
18
  none: false
18
19
  requirements:
19
- - - ~>
20
+ - - ! '>='
20
21
  - !ruby/object:Gem::Version
21
22
  version: 3.2.11
23
+ - - <
24
+ - !ruby/object:Gem::Version
25
+ version: '4.1'
22
26
  type: :runtime
23
27
  prerelease: false
24
28
  version_requirements: !ruby/object:Gem::Requirement
25
29
  none: false
26
30
  requirements:
27
- - - ~>
31
+ - - ! '>='
28
32
  - !ruby/object:Gem::Version
29
33
  version: 3.2.11
34
+ - - <
35
+ - !ruby/object:Gem::Version
36
+ version: '4.1'
30
37
  - !ruby/object:Gem::Dependency
31
38
  name: compass-rails
32
39
  requirement: !ruby/object:Gem::Requirement
@@ -142,6 +149,7 @@ dependencies:
142
149
  description: Toolsmith provides common helpers for UI components and styles.
143
150
  email:
144
151
  - bobby@gophilosophie.com
152
+ - brendan@gophilosophie.com
145
153
  executables: []
146
154
  extensions: []
147
155
  extra_rdoc_files: []