sugar-high 0.1.2 → 0.1.4

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/README.markdown CHANGED
@@ -30,6 +30,10 @@ See specs for example use
30
30
  * args (Used in generator CLI testing)
31
31
  * last_option *args : Returns last argument if hash or empty hash otherwise
32
32
 
33
+ ### Hash
34
+
35
+ * hash_revert : Reverse keys and values
36
+
33
37
  ### File
34
38
 
35
39
  * self.blank? and blank? : Is file empty?
@@ -41,6 +45,10 @@ PathString:
41
45
  * up lv : Go up some directory levels, prefixing with a number of '../'
42
46
  * down lv : Go down some directory levels, stripping off a number of prefixed '../'
43
47
 
48
+ ### Includes
49
+
50
+ * includes : Includes modules listed as symbols
51
+
44
52
  ### Kind of
45
53
 
46
54
  * any_kind_of? *const_list
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.4
@@ -1,4 +1,5 @@
1
1
  require 'sugar-high/methods'
2
+ require 'sugar-high/hash'
2
3
 
3
4
  class Module
4
5
 
@@ -30,6 +31,9 @@ class Module
30
31
 
31
32
  options.delete(:_after_)
32
33
  options.delete(:_before_)
34
+ direction = options.delete(:_direction_)
35
+
36
+ options = options.hash_revert if direction == :reverse
33
37
 
34
38
  options.each_pair do |original, aliases|
35
39
  alias_methods name.to_sym, original, [aliases].flatten, config_options
@@ -40,10 +44,10 @@ class Module
40
44
  aliases.each do |alias_name|
41
45
  new_alias = make_name(name, alias_name.to_s, config_options)
42
46
  original_name = make_name(name, original.to_s, config_options)
43
- begin
47
+ begin
44
48
  alias_method new_alias, original_name
45
49
  rescue
46
- raise ArgumentError, "Error creaing alias for ##{original_name} with #{new_alias}"
50
+ raise ArgumentError, "Error creating alias for ##{original_name} with ##{new_alias}"
47
51
  end
48
52
  end
49
53
  end
@@ -0,0 +1,7 @@
1
+ class Hash
2
+ def hash_revert
3
+ r = Hash.new {|h,k| h[k] = []}
4
+ each {|k,v| r[v] << k}
5
+ r
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ require 'active_support/inflector'
2
+
3
+ def includes *module_names
4
+ module_names.flatten.each do |name|
5
+ class_eval %{
6
+ include #{name.to_s.camelize}
7
+ }
8
+ end
9
+ end
@@ -28,23 +28,46 @@ class Ged
28
28
  'hejsa'
29
29
  end
30
30
 
31
- multi_alias :_before_ => :kristian, :hello => :hejsa
31
+ multi_alias :_before_ => :kristian, :hejsa => :hello, :_direction_ => :reverse
32
32
  end
33
33
 
34
+ class Wow
35
+ REGISTRATION_LINKS = {
36
+ :new_registration => :sign_up,
37
+ :edit_registration => :edit_profile
38
+ }
39
+
40
+ # new_registration_link, edit_registration_link
41
+ REGISTRATION_LINKS.keys.each do |name|
42
+ puts "name: #{name}"
43
+ class_eval %{
44
+ def #{name}_link
45
+ end
46
+ }
47
+ end
48
+ multi_alias REGISTRATION_LINKS.merge(:_after_ => :link)
49
+ end
50
+
34
51
  describe "SugarHigh" do
35
52
  describe "Arguments" do
36
- context 'hould alias :hello_kristian with :howdy_kristian ' do
53
+ context 'should alias :hello_kristian with :howdy_kristian ' do
37
54
  it "should find alias" do
38
55
  Abc.new.respond_to?(:howdy_kristian).should be_true
39
56
  end
57
+ end
40
58
 
41
- it "should find -alloha alias method for kristian" do
42
- Xyz.new.respond_to?(:alloha_kristian).should be_true
43
- end
59
+ it "should find -alloha alias method for kristian" do
60
+ Xyz.new.respond_to?(:alloha_kristian).should be_true
61
+ end
44
62
 
45
- it "should find -hejsa alias method for kristian" do
46
- Ged.new.respond_to?(:kristian_hejsa).should be_true
47
- end
63
+ it "should find -hejsa alias method for kristian" do
64
+ Ged.new.respond_to?(:kristian_hejsa).should be_true
65
+ end
66
+
67
+ it "should find alias methods!" do
68
+ w = Wow.new
69
+ w.respond_to?(:new_registration_link).should be_true
70
+ w.respond_to?(:sign_up_link).should be_true
48
71
  end
49
72
  end
50
73
  end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+ require 'sugar-high/includes'
3
+
4
+ module Simple
5
+ module X
6
+ def x
7
+ 'x'
8
+ end
9
+ end
10
+
11
+ module Y
12
+ def y
13
+ 'y'
14
+ end
15
+ end
16
+
17
+ includes :x, :y
18
+ end
19
+
20
+ class Xman
21
+ include Simple
22
+ end
23
+
24
+ describe "SugarHigh" do
25
+ describe "Includes ext" do
26
+ describe '#includes' do
27
+ it "should include namespaces X and Y" do
28
+ Xman.new.respond_to?(:x).should be_true
29
+ Xman.new.respond_to?(:y).should be_true
30
+ end
31
+ end
32
+ end
33
+ 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.1.2"
8
+ s.version = "0.1.4"
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-08-24}
12
+ s.date = %q{2010-08-25}
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 = [
@@ -28,6 +28,8 @@ Gem::Specification.new do |s|
28
28
  "lib/sugar-high/alias.rb",
29
29
  "lib/sugar-high/arguments.rb",
30
30
  "lib/sugar-high/file.rb",
31
+ "lib/sugar-high/hash.rb",
32
+ "lib/sugar-high/includes.rb",
31
33
  "lib/sugar-high/kind_of.rb",
32
34
  "lib/sugar-high/matchers/have_aliases.rb",
33
35
  "lib/sugar-high/metaclass.rb",
@@ -41,6 +43,7 @@ Gem::Specification.new do |s|
41
43
  "spec/sugar-high/alias_spec.rb",
42
44
  "spec/sugar-high/arguments_spec.rb",
43
45
  "spec/sugar-high/file_spec.rb",
46
+ "spec/sugar-high/includes_spec.rb",
44
47
  "spec/sugar-high/kind_of_spec.rb",
45
48
  "spec/sugar-high/methods_spec.rb",
46
49
  "spec/sugar-high/module_spec.rb",
@@ -56,6 +59,7 @@ Gem::Specification.new do |s|
56
59
  "spec/sugar-high/alias_spec.rb",
57
60
  "spec/sugar-high/arguments_spec.rb",
58
61
  "spec/sugar-high/file_spec.rb",
62
+ "spec/sugar-high/includes_spec.rb",
59
63
  "spec/sugar-high/kind_of_spec.rb",
60
64
  "spec/sugar-high/methods_spec.rb",
61
65
  "spec/sugar-high/module_spec.rb"
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 2
9
- version: 0.1.2
8
+ - 4
9
+ version: 0.1.4
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-08-24 00:00:00 +02:00
17
+ date: 2010-08-25 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -55,6 +55,8 @@ files:
55
55
  - lib/sugar-high/alias.rb
56
56
  - lib/sugar-high/arguments.rb
57
57
  - lib/sugar-high/file.rb
58
+ - lib/sugar-high/hash.rb
59
+ - lib/sugar-high/includes.rb
58
60
  - lib/sugar-high/kind_of.rb
59
61
  - lib/sugar-high/matchers/have_aliases.rb
60
62
  - lib/sugar-high/metaclass.rb
@@ -68,6 +70,7 @@ files:
68
70
  - spec/sugar-high/alias_spec.rb
69
71
  - spec/sugar-high/arguments_spec.rb
70
72
  - spec/sugar-high/file_spec.rb
73
+ - spec/sugar-high/includes_spec.rb
71
74
  - spec/sugar-high/kind_of_spec.rb
72
75
  - spec/sugar-high/methods_spec.rb
73
76
  - spec/sugar-high/module_spec.rb
@@ -109,6 +112,7 @@ test_files:
109
112
  - spec/sugar-high/alias_spec.rb
110
113
  - spec/sugar-high/arguments_spec.rb
111
114
  - spec/sugar-high/file_spec.rb
115
+ - spec/sugar-high/includes_spec.rb
112
116
  - spec/sugar-high/kind_of_spec.rb
113
117
  - spec/sugar-high/methods_spec.rb
114
118
  - spec/sugar-high/module_spec.rb