twitter-bootstrap-components-rails 0.1.0 → 0.2.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: 944fea1ebbc771146073c0158384ada4d0145eb8
4
- data.tar.gz: 39b1912b49d393ef66a3c914015f58fd1f9e3345
3
+ metadata.gz: 9503ecff9e892d5342ed2b9ec7b1d452253a6317
4
+ data.tar.gz: 42b24abe441dd76e79bb9cf3653ac1321b287c27
5
5
  SHA512:
6
- metadata.gz: f7f9170999f4632ac844d14ba3338acb82b4a50739d7c00a410b64e4b45929c4704e00b493888f4c11dcc10977c38501b3a24e71bf3bc3d5e267583eedd2bb52
7
- data.tar.gz: 92f82c9dc717fbfc87ac3634e77fc3309d2988598b674fbfbeb76c580ca165fbfef2009ee884cf33b99e37da3f338c033b66e6409d18c5b4cf5df36547cdc299
6
+ metadata.gz: 17bf1681cbc44a28f334e35a138ee43e1068682c786fbff9e263139c4ad4cd8ec0b8c38b3e702b29654ea8d1ad09aa2daae486698492dbb630bedb602c8fdad4
7
+ data.tar.gz: e43b1ff36592120c0583918312122c8cc4b226e82e131dec549ca457b8eebc642c1f7e790dc170c10833195afedfcbbecd414132940b881167ab5a0a2564c9c5
@@ -0,0 +1,14 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
+ * files in this directory. Styles in this file should be added after the last require_* statement.
11
+ * It is generally better to create a new file per style scope.
12
+ *
13
+ *= require twitter/bootstrap/components/rails/application
14
+ */
@@ -10,6 +10,6 @@
10
10
  * files in this directory. Styles in this file should be added after the last require_* statement.
11
11
  * It is generally better to create a new file per style scope.
12
12
  *
13
- *= require_tree .
13
+ *= require_tree ./application
14
14
  *= require_self
15
15
  */
@@ -0,0 +1,10 @@
1
+ .responsive-media {
2
+ padding-top: 10px;
3
+ padding-bottom: 10px;
4
+ margin-bottom: 10px;
5
+ }
6
+
7
+ img.responsive-media-object {
8
+ object-fit: cover;
9
+ width: 100%;
10
+ }
@@ -0,0 +1,87 @@
1
+ module Twitter
2
+ module Bootstrap
3
+ module Components
4
+ module V3
5
+ class Button < Base
6
+ SIZE_MAP = {
7
+ default: 'btn-default',
8
+ extra_small: 'btn-xs',
9
+ small: 'btn-sm',
10
+ large: 'btn-lg'
11
+ }.freeze
12
+
13
+ private
14
+
15
+ def view_locals
16
+ {
17
+ block_output: block_output,
18
+ input_options: input_options,
19
+ link_target: link_target,
20
+ link_options: link_options,
21
+ button_options: button_options,
22
+ element_type: element_type
23
+ }
24
+ end
25
+
26
+ def link_target
27
+ @options[:to]
28
+ end
29
+
30
+ # html element type (:link, :button or :input)
31
+ def element_type
32
+ @options[:element_type] ||
33
+ link_target.present? ? :link : :button
34
+ end
35
+
36
+ def css_classes
37
+ [*default_css_classes, size_css_class, additional_css_classes].compact
38
+ end
39
+
40
+ def default_css_classes
41
+ ['btn', "btn-#{context}"]
42
+ end
43
+
44
+ def size
45
+ @options[:size] || :default
46
+ end
47
+
48
+ def size_css_class
49
+ SIZE_MAP[size]
50
+ end
51
+
52
+ def context
53
+ @options[:context] || :primary
54
+ end
55
+
56
+ # input type (:button, :submit or :reset)
57
+ def type
58
+ @options[:type] || :button
59
+ end
60
+
61
+ def value
62
+ @options[:value]
63
+ end
64
+
65
+ def additional_css_classes
66
+ @options[:class]
67
+ end
68
+
69
+ def input_options
70
+ { class: css_classes.join(" "), type: type, value: value }
71
+ end
72
+
73
+ def link_options
74
+ link_options = { class: css_classes.join(" "), role: "button" }
75
+ link_options[:data] = @options[:data] if @options[:data].present?
76
+ link_options[:method] = @options[:method] if @options[:method].present?
77
+ link_options
78
+ end
79
+
80
+ def button_options
81
+ { class: css_classes.join(" "), type: "button" }
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -3,8 +3,6 @@ module Twitter
3
3
  module Components
4
4
  module V3
5
5
  class MediaObject < Base
6
- DEFAULT_IMAGE_SRC = "https://placeholdit.imgix.net/~text?txtsize=16&txt=64x64&w=64&h=64".freeze
7
-
8
6
  private
9
7
 
10
8
  def view_locals
@@ -43,7 +41,7 @@ module Twitter
43
41
  end
44
42
 
45
43
  def image_options
46
- @image_options ||= (@options[:image_options] || {}).reverse_merge!(alt: nil, src: DEFAULT_IMAGE_SRC)
44
+ @image_options ||= (@options[:image_options] || {}).reverse_merge!(alt: nil, src: nil)
47
45
  end
48
46
 
49
47
  def link_target
@@ -0,0 +1,13 @@
1
+ module Twitter
2
+ module Bootstrap
3
+ module Components
4
+ module V3
5
+ class ResponsiveMediaObject < Twitter::Bootstrap::Components::V3::MediaObject
6
+ def div_media_object_classes
7
+ ["responsive-media-#{horizontal_alignment}", "responsive-media-#{vertical_alignment}"]
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -12,9 +12,18 @@ module Twitter
12
12
  Twitter::Bootstrap::Components::V3::Badge.new(self, options, &block).perform
13
13
  end
14
14
 
15
+ def bootstrap_button(options = {}, &block)
16
+ Twitter::Bootstrap::Components::V3::Button.new(self, options, &block).perform
17
+ end
18
+
15
19
  def bootstrap_button_group(options = {}, &block)
16
20
  Twitter::Bootstrap::Components::V3::ButtonGroup.new(self, options, &block).perform
17
21
  end
22
+
23
+ def bootstrap_responsive_media_object(options = {}, &block)
24
+ Twitter::Bootstrap::Components::V3::ResponsiveMediaObject.new(self, options, &block).perform
25
+ end
26
+
18
27
  def bootstrap_media_object(options = {}, &block)
19
28
  Twitter::Bootstrap::Components::V3::MediaObject.new(self, options, &block).perform
20
29
  end
@@ -0,0 +1,10 @@
1
+ - case element_type
2
+ - when :button
3
+ %button{ button_options }
4
+ = block_output
5
+ - when :link
6
+ = link_to(link_target, link_options) do
7
+ = block_output
8
+ - when :input
9
+ %input{ input_options }
10
+ = block_output
@@ -0,0 +1,14 @@
1
+ .responsive-media.col-lg-12
2
+ - image_div_css_classes = ["col-lg-2"]
3
+ - image_div_css_classes << "col-lg-push-10" if horizontal_alignment == :right
4
+ - if image_options[:src].present?
5
+ %div{ class: image_div_css_classes }
6
+ -if link_target.present?
7
+ %a{ href: link_target }
8
+ %img.responsive-media-object{ image_options }/
9
+ -else
10
+ %img.responsive-media-object{ image_options }/
11
+ - content_div_css_classes = ["responsive-media-body", "col-lg-10"]
12
+ - content_div_css_classes << "col-lg-pull-2" if horizontal_alignment == :right
13
+ %div{ class: content_div_css_classes }
14
+ = block_output
@@ -0,0 +1 @@
1
+ Rails.application.config.assets.precompile += %w(twitter-bootstrap-components-rails.css)
@@ -2,7 +2,7 @@ module Twitter
2
2
  module Bootstrap
3
3
  module Components
4
4
  module Rails
5
- VERSION = '0.1.0'
5
+ VERSION = '0.2.0'
6
6
  end
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twitter-bootstrap-components-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-01 00:00:00.000000000 Z
11
+ date: 2017-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -134,12 +134,16 @@ files:
134
134
  - Rakefile
135
135
  - app/assets/config/twitter_bootstrap_components_rails_manifest.js
136
136
  - app/assets/javascripts/twitter/bootstrap/components/rails/application.js
137
+ - app/assets/stylesheets/twitter-bootstrap-components-rails.css
137
138
  - app/assets/stylesheets/twitter/bootstrap/components/rails/application.css
139
+ - app/assets/stylesheets/twitter/bootstrap/components/rails/application/responsive-media-object.css
138
140
  - app/components/twitter/bootstrap/components/v3/alert.rb
139
141
  - app/components/twitter/bootstrap/components/v3/badge.rb
140
142
  - app/components/twitter/bootstrap/components/v3/base.rb
143
+ - app/components/twitter/bootstrap/components/v3/button.rb
141
144
  - app/components/twitter/bootstrap/components/v3/button_group.rb
142
145
  - app/components/twitter/bootstrap/components/v3/media_object.rb
146
+ - app/components/twitter/bootstrap/components/v3/responsive_media_object.rb
143
147
  - app/components/twitter/bootstrap/components/v3/thumbnail.rb
144
148
  - app/components/twitter/bootstrap/components/v4/alert.rb
145
149
  - app/components/twitter/bootstrap/components/v4/badge.rb
@@ -162,8 +166,10 @@ files:
162
166
  - app/views/layouts/twitter/bootstrap/components/rails/application.html.erb
163
167
  - app/views/twitter/bootstrap/components/v3/_alert.html.haml
164
168
  - app/views/twitter/bootstrap/components/v3/_badge.html.haml
169
+ - app/views/twitter/bootstrap/components/v3/_button.haml
165
170
  - app/views/twitter/bootstrap/components/v3/_button_group.html.haml
166
171
  - app/views/twitter/bootstrap/components/v3/_media_object.html.haml
172
+ - app/views/twitter/bootstrap/components/v3/_responsive_media_object.html.haml
167
173
  - app/views/twitter/bootstrap/components/v3/_thumbnail.html.haml
168
174
  - app/views/twitter/bootstrap/components/v4/_alert.html.haml
169
175
  - app/views/twitter/bootstrap/components/v4/_badge.html.haml
@@ -178,6 +184,7 @@ files:
178
184
  - app/views/twitter/bootstrap/components/v4/card/_blockquote.html.haml
179
185
  - app/views/twitter/bootstrap/components/v4/card/_footer.html.haml
180
186
  - app/views/twitter/bootstrap/components/v4/card/_header.html.haml
187
+ - config/initializers/assets.rb
181
188
  - config/routes.rb
182
189
  - lib/tasks/twitter/bootstrap/components/rails_tasks.rake
183
190
  - lib/twitter/bootstrap/components/rails.rb