bootstrap_builders 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1576e39d9ed78b4073ffe113990c3cefd7194f26
4
- data.tar.gz: f0797a630cac750ce9ff5d3f272b98fc560fe4e1
3
+ metadata.gz: fc1068f1df81b83a1cbe318ab91a09f816a49703
4
+ data.tar.gz: 3122ddf8127d24598e017d73a79fe4f15e927ef0
5
5
  SHA512:
6
- metadata.gz: 09840ce0caaba4c24fd594442e2a07af223eae29f88faf969f188b804b2e68be2faf6b7e37436dc36f07807c7787ffbff8c8a8e55a9fd5429ed06334826b44f8
7
- data.tar.gz: e018461fbad769c278cd78f2455d470591c639439d63c99607eddf0937eb61c32f7d42dba154f233f6f416f224f558dee408eb48240d012d5cf8ccc54cbc4318
6
+ metadata.gz: 43bece537feb0ddd22817f6880ba5eb5bc14806c95d572c5ef4fa8a3322904a1dff514861fffa406ad64daa69dea1285281d59d5a7d055e2656a2be6508265d6
7
+ data.tar.gz: 5b7564b32f6e7b15f8cd4fd2d751b2f44a7c370d48cd545b28e726360ae34931d46e45db67a246b661895917fced47a8a4898b8304155e9e10582c34ee4d0c06
data/Gemfile CHANGED
@@ -1,7 +1,6 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "html_gen", ">= 0.0.7"
4
- gem "auto_autoloader", ">= 0.0.4"
3
+ gem "html_gen", ">= 0.0.11"
5
4
 
6
5
  # Add dependencies to develop your gem here.
7
6
  # Include everything needed to run rake, tests, features, etc.
data/Gemfile.lock CHANGED
@@ -28,7 +28,7 @@ GEM
28
28
  oauth2
29
29
  hashie (3.4.3)
30
30
  highline (1.7.8)
31
- html_gen (0.0.7)
31
+ html_gen (0.0.11)
32
32
  string-cases
33
33
  jeweler (2.0.1)
34
34
  builder
@@ -87,10 +87,9 @@ PLATFORMS
87
87
  ruby
88
88
 
89
89
  DEPENDENCIES
90
- auto_autoloader (>= 0.0.4)
91
90
  best_practice_project!
92
91
  bundler (~> 1.0)
93
- html_gen (>= 0.0.7)
92
+ html_gen (>= 0.0.11)
94
93
  jeweler (~> 2.0.1)
95
94
  rdoc (~> 3.12)
96
95
  rspec (~> 3.4.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: bootstrap_builders 0.0.2 ruby lib
5
+ # stub: bootstrap_builders 0.0.3 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "bootstrap_builders"
9
- s.version = "0.0.2"
9
+ s.version = "0.0.3"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["kaspernj"]
14
- s.date = "2016-01-17"
14
+ s.date = "2016-01-21"
15
15
  s.description = "A library to generate Bootstrap HTML for Rails."
16
16
  s.email = "k@spernj.org"
17
17
  s.extra_rdoc_files = [
@@ -40,15 +40,14 @@ Gem::Specification.new do |s|
40
40
  ]
41
41
  s.homepage = "http://github.com/kaspernj/bootstrap_builders"
42
42
  s.licenses = ["MIT"]
43
- s.rubygems_version = "2.2.2"
43
+ s.rubygems_version = "2.4.0"
44
44
  s.summary = "A library to generate Bootstrap HTML for Rails."
45
45
 
46
46
  if s.respond_to? :specification_version then
47
47
  s.specification_version = 4
48
48
 
49
49
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
- s.add_runtime_dependency(%q<html_gen>, [">= 0.0.7"])
51
- s.add_runtime_dependency(%q<auto_autoloader>, [">= 0.0.4"])
50
+ s.add_runtime_dependency(%q<html_gen>, [">= 0.0.11"])
52
51
  s.add_development_dependency(%q<rspec>, ["~> 3.4.0"])
53
52
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
54
53
  s.add_development_dependency(%q<bundler>, ["~> 1.0"])
@@ -56,8 +55,7 @@ Gem::Specification.new do |s|
56
55
  s.add_development_dependency(%q<best_practice_project>, [">= 0"])
57
56
  s.add_development_dependency(%q<rubocop>, ["= 0.36.0"])
58
57
  else
59
- s.add_dependency(%q<html_gen>, [">= 0.0.7"])
60
- s.add_dependency(%q<auto_autoloader>, [">= 0.0.4"])
58
+ s.add_dependency(%q<html_gen>, [">= 0.0.11"])
61
59
  s.add_dependency(%q<rspec>, ["~> 3.4.0"])
62
60
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
63
61
  s.add_dependency(%q<bundler>, ["~> 1.0"])
@@ -66,8 +64,7 @@ Gem::Specification.new do |s|
66
64
  s.add_dependency(%q<rubocop>, ["= 0.36.0"])
67
65
  end
68
66
  else
69
- s.add_dependency(%q<html_gen>, [">= 0.0.7"])
70
- s.add_dependency(%q<auto_autoloader>, [">= 0.0.4"])
67
+ s.add_dependency(%q<html_gen>, [">= 0.0.11"])
71
68
  s.add_dependency(%q<rspec>, ["~> 3.4.0"])
72
69
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
73
70
  s.add_dependency(%q<bundler>, ["~> 1.0"])
@@ -1,6 +1,9 @@
1
- require "auto_autoloader"
2
1
  require "html_gen"
3
2
 
4
3
  class BootstrapBuilders
5
- AutoAutoloader.autoload_sub_classes(self, __FILE__)
4
+ path = "#{File.dirname(__FILE__)}/bootstrap_builders"
5
+
6
+ autoload :ApplicationHelpers, "#{path}/application_helpers"
7
+ autoload :Box, "#{path}/box"
8
+ autoload :Button, "#{path}/button"
6
9
  end
@@ -16,23 +16,40 @@ module ApplicationHelpers
16
16
  end
17
17
 
18
18
  def bs_edit_button(args)
19
- BootstrapBuilders::Button.new(args.merge(title: t("edit"), icon: "wrench", context: self, can_type: :edit)).html
19
+ args[:label] = t("edit") unless args.key?(:label)
20
+ BootstrapBuilders::Button.new(args.merge(icon: "wrench", context: self, can_type: :edit)).html
20
21
  end
21
22
 
22
23
  def bs_destroy_button(args)
24
+ args[:label] = t("delete") unless args.key?(:label)
25
+
23
26
  args[:data] ||= {}
24
27
  args[:data][:confirm] ||= t("are_you_sure")
25
28
 
26
- button = BootstrapBuilders::Button.new(args.merge(title: t("delete"), icon: "remove", context: self, can_type: :destroy, method: :delete))
29
+ button = BootstrapBuilders::Button.new(args.merge(icon: "remove", context: self, can_type: :destroy, method: :delete))
27
30
  button.classes << "btn-danger"
28
31
  button.html
29
32
  end
30
33
 
31
34
  def bs_new_button(args)
32
- BootstrapBuilders::Button.new(args.merge(title: t("add_new"), icon: "pencil", context: self, can_type: :new)).html
35
+ args[:label] = t("add_new") unless args.key?(:label)
36
+ BootstrapBuilders::Button.new(args.merge(icon: "pencil", context: self, can_type: :new)).html
33
37
  end
34
38
 
35
39
  def bs_show_button(args)
36
- BootstrapBuilders::Button.new(args.merge(title: t("show"), icon: "zoom-in", context: self, can_type: :show)).html
40
+ args[:label] = t("show") unless args.key?(:label)
41
+ BootstrapBuilders::Button.new(args.merge(icon: "zoom-in", context: self, can_type: :show)).html
42
+ end
43
+
44
+ def bs_table(args = {}, &blk)
45
+ classes = ["table", "table-bordered", "table-striped", "table-hover"]
46
+
47
+ if args[:class].is_a?(String)
48
+ classes += args.fetch(:class).split(/\s+/)
49
+ elsif args[:class].is_a?(Array)
50
+ classes += args.fetch(:class)
51
+ end
52
+
53
+ content_tag(:table, class: classes, &blk)
37
54
  end
38
55
  end
@@ -6,6 +6,8 @@ class BootstrapBuilders::Box
6
6
  @table = args[:table]
7
7
  @block = args.fetch(:block)
8
8
  @context = args.fetch(:context)
9
+ @class = args[:class]
10
+ @data = args[:data]
9
11
 
10
12
  if @width.is_a?(Fixnum) || @width.is_a?(Integer)
11
13
  @width = "#{@width}px"
@@ -15,7 +17,7 @@ class BootstrapBuilders::Box
15
17
  end
16
18
 
17
19
  def html
18
- @panel = HtmlGen::Element.new(:div, inden: " ", classes: ["panel", "panel-default"], css: {width: @width})
20
+ @panel = HtmlGen::Element.new(:div, inden: " ", classes: container_classes, css: {width: @width}, data: @data)
19
21
 
20
22
  add_heading if @title || @right
21
23
 
@@ -38,7 +40,7 @@ private
38
40
 
39
41
  def add_heading
40
42
  heading = @panel.add_ele(:div, classes: ["panel-heading", "clearfix"])
41
- title = heading.add_ele(:div, classes: ["panel-title", "pull-left"], str: @title)
43
+ heading.add_ele(:div, classes: ["panel-title", "pull-left"], str: @title)
42
44
  heading.add_ele(:div, classes: ["pull-right"], str_html: @right.to_s) if @right
43
45
  end
44
46
 
@@ -49,4 +51,16 @@ private
49
51
  def add_body
50
52
  @panel.add_html(@context.content_tag(:div, nil, class: ["panel-body"], &@block))
51
53
  end
54
+
55
+ def container_classes
56
+ classes = ["panel", "panel-default"]
57
+
58
+ if @class.is_a?(String)
59
+ classes += @class.split(/\s+/)
60
+ elsif @class.is_a?(Array)
61
+ classes += @class
62
+ end
63
+
64
+ classes
65
+ end
52
66
  end
@@ -1,13 +1,13 @@
1
1
  class BootstrapBuilders::Button
2
2
  def initialize(args)
3
- @title = args.fetch(:title)
3
+ @label = args.fetch(:label)
4
4
  @mini = args[:mini]
5
5
  @class = args[:class]
6
6
  @url = args.fetch(:url)
7
7
  @args = args
8
8
  @context = args.fetch(:context)
9
9
  @icon = args.fetch(:icon)
10
- can = args[:can]
10
+ @can = args[:can]
11
11
  end
12
12
 
13
13
  def classes
@@ -31,33 +31,31 @@ class BootstrapBuilders::Button
31
31
  @context.link_to @url, class: classes, data: @args[:data], method: @args[:method], remote: @args[:remote] do
32
32
  html = ""
33
33
  html << @context.content_tag(:i, nil, class: ["fa", "fa-#{@icon}"])
34
- html << " #{@title}"
34
+ html << " #{@label}" if @label
35
35
  html.html_safe
36
36
  end
37
37
  end
38
38
 
39
39
  private
40
40
 
41
- def model_from_url(url)
42
- if url.is_a?(Array) && url.last.is_a?(ActiveRecord::Base)
43
- url.last
44
- elsif url.is_a?(ActiveRecord::Base)
45
- url
46
- else
47
- return nil
48
- end
49
- end
50
-
51
41
  def can?
52
- return true if !can_object || !@args[:can_type]
53
- @context.can? @args.fetch(:can_type), can_object
42
+ authorize_object = can_object
43
+ return true if !authorize_object || !@args[:can_type]
44
+ @context.can? @args.fetch(:can_type), authorize_object
54
45
  end
55
46
 
56
47
  def can_object
57
- if @args[:can]
58
- @args[:can]
59
- elsif @args[:url].is_a?(Array) && @args[:url].last.is_a?(ActiveRecord::Base)
60
- @args[:url].last
48
+ return @can if @can
49
+
50
+ if @url.is_a?(Array)
51
+ model = @url.last
52
+ else
53
+ model = @url
61
54
  end
55
+
56
+ return nil unless model
57
+
58
+ ancestors = model.class.ancestors.map(&:name)
59
+ return model if ancestors.include?("ActiveRecord::Base") || ancestors.include?("BazaModels::Model")
62
60
  end
63
61
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootstrap_builders
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - kaspernj
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-17 00:00:00.000000000 Z
11
+ date: 2016-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: html_gen
@@ -16,28 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.0.7
19
+ version: 0.0.11
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.0.7
27
- - !ruby/object:Gem::Dependency
28
- name: auto_autoloader
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 0.0.4
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: 0.0.4
26
+ version: 0.0.11
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: rspec
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -168,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
154
  version: '0'
169
155
  requirements: []
170
156
  rubyforge_project:
171
- rubygems_version: 2.2.2
157
+ rubygems_version: 2.4.0
172
158
  signing_key:
173
159
  specification_version: 4
174
160
  summary: A library to generate Bootstrap HTML for Rails.