to_sssi 0.1.0 → 0.1.1

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.
Files changed (3) hide show
  1. data/Rakefile +5 -7
  2. data/lib/to_sssi.rb +21 -2
  3. metadata +7 -14
data/Rakefile CHANGED
@@ -2,14 +2,12 @@ require "rubygems"
2
2
  require "rake/gempackagetask"
3
3
  require "rake/rdoctask"
4
4
 
5
- require "spec"
6
- require "spec/rake/spectask"
7
- Spec::Rake::SpecTask.new do |t|
8
- t.spec_opts = %w(--format specdoc --colour)
9
- t.libs = ["spec"]
5
+ require "rspec/core/rake_task"
6
+ RSpec::Core::RakeTask.new(:spec) do |spec|
7
+ spec.pattern = 'spec/*_spec.rb'
8
+ spec.rspec_opts = ['--backtrace']
10
9
  end
11
10
 
12
-
13
11
  task :default => ["spec"]
14
12
 
15
13
  # This builds the actual gem. For details of what all these options
@@ -21,7 +19,7 @@ spec = Gem::Specification.new do |s|
21
19
 
22
20
  # Change these as appropriate
23
21
  s.name = "to_sssi"
24
- s.version = "0.1.0"
22
+ s.version = "0.1.1"
25
23
  s.summary = "Convert Ruby objects into SSSI variables."
26
24
  s.author = "Patrick Sinclair"
27
25
  s.email = "patrick.sinclair@bbc.co.uk"
@@ -1,3 +1,5 @@
1
+ # coding: utf-8
2
+
1
3
  class NilClass
2
4
  def to_sssi
3
5
  end
@@ -25,12 +27,29 @@ class FalseClass
25
27
  end
26
28
 
27
29
  class Hash
28
- def to_sssi
30
+ def to_sssi(prefix='')
29
31
  self.sort.to_a.map do |key, val|
30
32
  value = (val.kind_of?(String) or
31
33
  val.kind_of?(TrueClass) ||
32
34
  val.kind_of?(FalseClass)) ? val.to_sssi : val
33
- %[<!--#set var="#{key}" value="#{value}" -->]
35
+ %[<!--#set var="#{prefix}#{key}" value="#{value}" -->]
34
36
  end.join("\n")
35
37
  end
36
38
  end
39
+
40
+ class Array
41
+ def to_sssi(name='array')
42
+ result = []
43
+ self.each_with_index do |val,i|
44
+ if val.kind_of? Hash
45
+ result << val.to_sssi("#{name}_#{i}_")
46
+ else
47
+ value = (val.kind_of?(String) or
48
+ val.kind_of?(TrueClass) ||
49
+ val.kind_of?(FalseClass)) ? val.to_sssi : val
50
+ result << %[<!--#set var="#{name}_#{i}" value="#{value}" -->]
51
+ end
52
+ end
53
+ result.join("\n")
54
+ end
55
+ end
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: to_sssi
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 0
9
- version: 0.1.0
4
+ prerelease:
5
+ version: 0.1.1
10
6
  platform: ruby
11
7
  authors:
12
8
  - Patrick Sinclair
@@ -14,18 +10,17 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2010-05-04 00:00:00 +01:00
13
+ date: 2011-05-15 00:00:00 +01:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
21
17
  name: rspec
22
18
  prerelease: false
23
19
  requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
24
21
  requirements:
25
22
  - - ">="
26
23
  - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
24
  version: "0"
30
25
  type: :development
31
26
  version_requirements: *id001
@@ -51,23 +46,21 @@ rdoc_options: []
51
46
  require_paths:
52
47
  - lib
53
48
  required_ruby_version: !ruby/object:Gem::Requirement
49
+ none: false
54
50
  requirements:
55
51
  - - ">="
56
52
  - !ruby/object:Gem::Version
57
- segments:
58
- - 0
59
53
  version: "0"
60
54
  required_rubygems_version: !ruby/object:Gem::Requirement
55
+ none: false
61
56
  requirements:
62
57
  - - ">="
63
58
  - !ruby/object:Gem::Version
64
- segments:
65
- - 0
66
59
  version: "0"
67
60
  requirements: []
68
61
 
69
62
  rubyforge_project:
70
- rubygems_version: 1.3.6
63
+ rubygems_version: 1.6.2
71
64
  signing_key:
72
65
  specification_version: 3
73
66
  summary: Convert Ruby objects into SSSI variables.