to_sssi 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.md +10 -0
  2. data/Rakefile +75 -0
  3. data/lib/to_sssi.rb +36 -0
  4. metadata +75 -0
@@ -0,0 +1,10 @@
1
+ # to_sssi
2
+
3
+ Convert Ruby objects into SSSI variables.
4
+
5
+ ---
6
+
7
+ ### Example
8
+
9
+ { 'foo' => 'bar' }.to_sssi
10
+ => '<!--#set var="foo" value="bar" -->'
@@ -0,0 +1,75 @@
1
+ require "rubygems"
2
+ require "rake/gempackagetask"
3
+ require "rake/rdoctask"
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"]
10
+ end
11
+
12
+
13
+ task :default => ["spec"]
14
+
15
+ # This builds the actual gem. For details of what all these options
16
+ # mean, and other ones you can add, check the documentation here:
17
+ #
18
+ # http://rubygems.org/read/chapter/20
19
+ #
20
+ spec = Gem::Specification.new do |s|
21
+
22
+ # Change these as appropriate
23
+ s.name = "to_sssi"
24
+ s.version = "0.1.0"
25
+ s.summary = "Convert Ruby objects into SSSI variables."
26
+ s.author = "Patrick Sinclair"
27
+ s.email = "patrick.sinclair@bbc.co.uk"
28
+ # s.homepage = "http://www.bbc.co.uk"
29
+
30
+ s.has_rdoc = true
31
+ # s.extra_rdoc_files = %w(README.md)
32
+ # s.rdoc_options = %w(--main README.md)
33
+
34
+ # Add any extra files to include in the gem (like your README)
35
+ s.files = %w(Rakefile README.md) + Dir.glob("{spec,lib/**/*}")
36
+ s.require_paths = ["lib"]
37
+
38
+ # If you want to depend on other gems, add them here, along with any
39
+ # relevant versions
40
+ # s.add_dependency("some_other_gem", "~> 0.1.0")
41
+
42
+ # If your tests use any gems, include them here
43
+ s.add_development_dependency("rspec")
44
+ end
45
+
46
+ # This task actually builds the gem. We also regenerate a static
47
+ # .gemspec file, which is useful if something (i.e. GitHub) will
48
+ # be automatically building a gem for this project. If you're not
49
+ # using GitHub, edit as appropriate.
50
+ #
51
+ # To publish your gem online, install the 'gemcutter' gem; Read more
52
+ # about that here: http://gemcutter.org/pages/gem_docs
53
+ Rake::GemPackageTask.new(spec) do |pkg|
54
+ pkg.gem_spec = spec
55
+ end
56
+
57
+ desc "Build the gemspec file #{spec.name}.gemspec"
58
+ task :gemspec do
59
+ file = File.dirname(__FILE__) + "/#{spec.name}.gemspec"
60
+ File.open(file, "w") {|f| f << spec.to_ruby }
61
+ end
62
+
63
+ task :package => :gemspec
64
+
65
+ # Generate documentation
66
+ Rake::RDocTask.new do |rd|
67
+
68
+ rd.rdoc_files.include("lib/**/*.rb")
69
+ rd.rdoc_dir = "rdoc"
70
+ end
71
+
72
+ desc 'Clear out RDoc and generated packages'
73
+ task :clean => [:clobber_rdoc, :clobber_package] do
74
+ rm "#{spec.name}.gemspec"
75
+ end
@@ -0,0 +1,36 @@
1
+ class NilClass
2
+ def to_sssi
3
+ end
4
+ end
5
+
6
+ class String
7
+ def to_sssi
8
+ escaped = self.gsub('$', '\$')
9
+ escaped.gsub!('"', '\"')
10
+ escaped.gsub!(/[‘’]/, "'")
11
+ escaped
12
+ end
13
+ end
14
+
15
+ class TrueClass
16
+ def to_sssi
17
+ 1
18
+ end
19
+ end
20
+
21
+ class FalseClass
22
+ def to_sssi
23
+ 0
24
+ end
25
+ end
26
+
27
+ class Hash
28
+ def to_sssi
29
+ self.sort.to_a.map do |key, val|
30
+ value = (val.kind_of?(String) or
31
+ val.kind_of?(TrueClass) ||
32
+ val.kind_of?(FalseClass)) ? val.to_sssi : val
33
+ %[<!--#set var="#{key}" value="#{value}" -->]
34
+ end.join("\n")
35
+ end
36
+ end
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: to_sssi
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 0
9
+ version: 0.1.0
10
+ platform: ruby
11
+ authors:
12
+ - Patrick Sinclair
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-05-04 00:00:00 +01:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rspec
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ version: "0"
30
+ type: :development
31
+ version_requirements: *id001
32
+ description:
33
+ email: patrick.sinclair@bbc.co.uk
34
+ executables: []
35
+
36
+ extensions: []
37
+
38
+ extra_rdoc_files: []
39
+
40
+ files:
41
+ - Rakefile
42
+ - README.md
43
+ - lib/to_sssi.rb
44
+ has_rdoc: true
45
+ homepage:
46
+ licenses: []
47
+
48
+ post_install_message:
49
+ rdoc_options: []
50
+
51
+ require_paths:
52
+ - lib
53
+ required_ruby_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ segments:
58
+ - 0
59
+ version: "0"
60
+ required_rubygems_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ segments:
65
+ - 0
66
+ version: "0"
67
+ requirements: []
68
+
69
+ rubyforge_project:
70
+ rubygems_version: 1.3.6
71
+ signing_key:
72
+ specification_version: 3
73
+ summary: Convert Ruby objects into SSSI variables.
74
+ test_files: []
75
+