tourguide 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: 45a517b7b127f03a7cdfc3f1c2fa8728d83d44b2
4
- data.tar.gz: 6c851ebd84ffc0ba380204ed4d38af82712588e2
3
+ metadata.gz: 91c503b4e51c1f3cac25f5bd96a00616826704b9
4
+ data.tar.gz: b5d60879758f4faf6d16059fb9ad2db06f341986
5
5
  SHA512:
6
- metadata.gz: 26253c4bc396fc8c31bae0a83fba19be146a3ada47448e9ecd5ad7dc0e9e9bca9b6c85290dee5b6d603263930b500547260256293cba604b34e3dda23dad62c1
7
- data.tar.gz: d84396ae8b6bac73c297747f8263a48c4e7fe5ae8a08c0ecb8a30b7a2919322289707da33c05b3be96aab877da06b01f4fd536283ae755f09d5b17bea484190f
6
+ metadata.gz: 31a455c0958e83e8e5957c1ef7957349c8f3ef651f9f23b913fd6f6dfe31312df2ae80a5bfb5df6604e768c79131097d5dd2933fd31831d7f53a596157d0d712
7
+ data.tar.gz: 92e2f5607313e537517644f5f2f8e14311198b1aa1c36ba7dae59c34904f79ae2d4a5b186a16aa2a150fd7c6633a97f2a328d9f16d48617b64a8a7df5c04e9d0
@@ -8,6 +8,8 @@ require "tourguide/engine" if defined? Rails
8
8
  require "tourguide/renderers/tourbus"
9
9
  require "tourguide/renderers/link"
10
10
  require "tourguide/renderers/connections"
11
+ require "tourguide/renderers/group"
12
+ require "tourguide/renderers/progress"
11
13
  require "tourguide/renderers/stop"
12
14
 
13
15
  module Tourguide
@@ -0,0 +1,39 @@
1
+ module Tourguide
2
+ module Renderers
3
+ class Group
4
+
5
+ attr_reader :stops, :options
6
+
7
+ def initialize(context, options={})
8
+ @context = context
9
+ @options = options.reverse_merge default_options
10
+ @stops = []
11
+ end
12
+
13
+ def render
14
+ stops.each_with_index.map do |renderer, i|
15
+ renderer.count = i
16
+ renderer.total = total_stops
17
+ renderer.render
18
+ end.join("\n")
19
+ end
20
+
21
+ def stop(options={}, &block)
22
+ renderer = Tourguide::Renderers::Stop.new(@context, options)
23
+ yield(renderer) if block_given?
24
+ stops << renderer
25
+ end
26
+
27
+ def total_stops
28
+ @stops.count
29
+ end
30
+
31
+ private
32
+
33
+ def default_options
34
+ {}
35
+ end
36
+
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,26 @@
1
+ module Tourguide
2
+ module Renderers
3
+ class Progress
4
+
5
+ def initialize(context, count, total)
6
+ @context = context
7
+ @count = count
8
+ @total = total
9
+ end
10
+
11
+ def render
12
+ return "" if uncountable?
13
+ (0...@total).map do |i|
14
+ css = ['bullet']
15
+ css << 'active' if i == @count
16
+ @context.content_tag(:li, "&bull;".html_safe, class: css.join(' '))
17
+ end.join("\n").html_safe
18
+ end
19
+
20
+ def uncountable?
21
+ @count.blank? && @total.blank?
22
+ end
23
+
24
+ end
25
+ end
26
+ end
@@ -3,6 +3,7 @@ module Tourguide
3
3
  class Stop
4
4
 
5
5
  attr_reader :options
6
+ attr_writer :count, :total
6
7
 
7
8
  def initialize(context, options={})
8
9
  @context = context
@@ -27,11 +28,23 @@ module Tourguide
27
28
  end
28
29
 
29
30
  def render
30
- @context.content_tag(:li, [close.render, @content, connections.render].join("\n").html_safe, li_options).html_safe
31
+ @context.content_tag(:li, rendered_content, li_options).html_safe
32
+ end
33
+
34
+ def progress
35
+ @progress ||= Tourguide::Renderers::Progress.new(@context, @count, @total)
31
36
  end
32
37
 
33
38
  private
34
39
 
40
+ def rendered_content
41
+ [close.render, @content, progress_content, connections.render].compact.join("\n").html_safe
42
+ end
43
+
44
+ def progress_content
45
+ @context.content_tag(:ol, progress.render, class: 'progress-list') unless progress.uncountable?
46
+ end
47
+
35
48
  def li_options
36
49
  {
37
50
  data: data_options
@@ -39,7 +52,7 @@ module Tourguide
39
52
  end
40
53
 
41
54
  def data_options
42
- options.except(:wrapper, :close).reject { |k, v| v.blank? }
55
+ options.except(:wrapper, :close, :counter).reject { |k, v| v.blank? }
43
56
  end
44
57
 
45
58
  def default_options
@@ -17,11 +17,19 @@ module Tourguide
17
17
  stops << renderer
18
18
  end
19
19
 
20
+ def group(options={}, &block)
21
+ renderer = Tourguide::Renderers::Group.new(@context, options)
22
+ yield(renderer) if block_given?
23
+ stops << renderer
24
+ end
25
+
26
+
20
27
  def render
21
28
  xhtml = Builder::XmlMarkup.new target: out=(''), indent: 2
22
29
  xhtml.ul(ul_options) do |ul|
23
30
  ul << stops.map { |x| x.render }.join("\n")
24
31
  end
32
+ xhtml.div class: 'tour-overlay'
25
33
  out.html_safe
26
34
  end
27
35
 
@@ -44,7 +52,7 @@ module Tourguide
44
52
  def default_options
45
53
  {}
46
54
  end
47
-
55
+
48
56
  end
49
57
  end
50
58
  end
@@ -1,3 +1,3 @@
1
1
  module Tourguide
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tourguide
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
  - Adam Carlile
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-02-27 00:00:00.000000000 Z
11
+ date: 2015-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass-rails
@@ -101,7 +101,9 @@ files:
101
101
  - lib/tourguide.rb
102
102
  - lib/tourguide/engine.rb
103
103
  - lib/tourguide/renderers/connections.rb
104
+ - lib/tourguide/renderers/group.rb
104
105
  - lib/tourguide/renderers/link.rb
106
+ - lib/tourguide/renderers/progress.rb
105
107
  - lib/tourguide/renderers/stop.rb
106
108
  - lib/tourguide/renderers/tourbus.rb
107
109
  - lib/tourguide/version.rb