sugar-high 0.3.1 → 0.3.2

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.1
1
+ 0.3.2
@@ -0,0 +1,33 @@
1
+ class String
2
+ def insert_before_last str, marker = 'end'
3
+ res = []
4
+ found = false
5
+ marker = case marker
6
+ when Symbol, String
7
+ marker.to_s
8
+ when Hash
9
+ marker[:marker].to_s
10
+ else
11
+ raise ArgumentException, "last argument is the marker and must be a String, Symbol or even Hash with a :marker option pointing to the marker (String or Symbol)"
12
+ end
13
+
14
+ marker = Regexp.escape(marker.reverse)
15
+ nl = Regexp.escape("\n")
16
+ # puts self
17
+ # puts "marker: #{marker}"
18
+ # puts "nl: #{nl}"
19
+ # puts "str: #{str}"
20
+
21
+ self.reverse.each_line do |x|
22
+ x.gsub! /#{nl}/, ''
23
+ if !found && x =~ /#{marker}/
24
+ replace = "#{str}\n" << x.reverse
25
+ res << replace
26
+ found = true
27
+ else
28
+ res << x.reverse
29
+ end
30
+ end
31
+ res = res.reverse.join("\n")
32
+ end
33
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+ require 'sugar-high/string'
3
+
4
+ describe "SugarHigh" do
5
+ describe 'String pack' do
6
+
7
+ before do
8
+ @s = %q{
9
+ class Abc
10
+ def begin
11
+
12
+ end
13
+ end}
14
+
15
+ @s = %q{
16
+ class Abc
17
+ def begin
18
+
19
+ end
20
+ blip}
21
+ end
22
+
23
+
24
+ describe '#insert_before_last' do
25
+ it "should insert '# hello' before last end (default)" do
26
+ @s.insert_before_last(' # hello').should match /# hello\s*end/
27
+ end
28
+
29
+ it "should insert '# hello' before last 'blip' (explicit String marker)" do
30
+ @s.insert_before_last(' # hello', 'blip').should match /# hello\s*blip/
31
+ end
32
+
33
+ it "should insert '# hello' before last 'blip' (explicit Symbol marker)" do
34
+ @s.insert_before_last(' # hello', :blip).should match /# hello\s*blip/
35
+ end
36
+
37
+ it "should insert '# hello' before last 'blip' (explicit Hash-String marker)" do
38
+ @s.insert_before_last(' # hello', :marker => 'blip').should match /# hello\s*blip/
39
+ end
40
+
41
+ it "should insert '# hello' before last 'blip' (explicit Hash-Symbol marker)" do
42
+ @s.insert_before_last(' # hello', :marker => :blip).should match /# hello\s*blip/
43
+ end
44
+ end
45
+ end
46
+ end
data/sugar-high.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sugar-high}
8
- s.version = "0.3.1"
8
+ s.version = "0.3.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kristian Mandrup"]
12
- s.date = %q{2010-12-01}
12
+ s.date = %q{2011-01-07}
13
13
  s.description = %q{More Ruby sugar - inspired by the 'zuker' project}
14
14
  s.email = %q{kmandrup@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -40,6 +40,7 @@ Gem::Specification.new do |s|
40
40
  "lib/sugar-high/regexp.rb",
41
41
  "lib/sugar-high/rspec/configure.rb",
42
42
  "lib/sugar-high/rspec/matchers/have_aliases.rb",
43
+ "lib/sugar-high/string.rb",
43
44
  "spec/fixtures/empty.txt",
44
45
  "spec/fixtures/non-empty.txt",
45
46
  "spec/spec_helper.rb",
@@ -56,6 +57,7 @@ Gem::Specification.new do |s|
56
57
  "spec/sugar-high/module_spec.rb",
57
58
  "spec/sugar-high/path_spec.rb",
58
59
  "spec/sugar-high/regexp_spec.rb",
60
+ "spec/sugar-high/string_spec.rb",
59
61
  "sugar-high.gemspec"
60
62
  ]
61
63
  s.homepage = %q{http://github.com/kristianmandrup/sugar-high}
@@ -76,7 +78,8 @@ Gem::Specification.new do |s|
76
78
  "spec/sugar-high/methods_spec.rb",
77
79
  "spec/sugar-high/module_spec.rb",
78
80
  "spec/sugar-high/path_spec.rb",
79
- "spec/sugar-high/regexp_spec.rb"
81
+ "spec/sugar-high/regexp_spec.rb",
82
+ "spec/sugar-high/string_spec.rb"
80
83
  ]
81
84
 
82
85
  if s.respond_to? :specification_version then
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 1
9
- version: 0.3.1
8
+ - 2
9
+ version: 0.3.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Kristian Mandrup
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-12-01 00:00:00 +01:00
17
+ date: 2011-01-07 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -95,6 +95,7 @@ files:
95
95
  - lib/sugar-high/regexp.rb
96
96
  - lib/sugar-high/rspec/configure.rb
97
97
  - lib/sugar-high/rspec/matchers/have_aliases.rb
98
+ - lib/sugar-high/string.rb
98
99
  - spec/fixtures/empty.txt
99
100
  - spec/fixtures/non-empty.txt
100
101
  - spec/spec_helper.rb
@@ -111,6 +112,7 @@ files:
111
112
  - spec/sugar-high/module_spec.rb
112
113
  - spec/sugar-high/path_spec.rb
113
114
  - spec/sugar-high/regexp_spec.rb
115
+ - spec/sugar-high/string_spec.rb
114
116
  - sugar-high.gemspec
115
117
  has_rdoc: true
116
118
  homepage: http://github.com/kristianmandrup/sugar-high
@@ -159,3 +161,4 @@ test_files:
159
161
  - spec/sugar-high/module_spec.rb
160
162
  - spec/sugar-high/path_spec.rb
161
163
  - spec/sugar-high/regexp_spec.rb
164
+ - spec/sugar-high/string_spec.rb