guerrilla_patch 2.8.3 → 2.8.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/Gemfile CHANGED
@@ -2,6 +2,7 @@ source "http://rubygems.org"
2
2
 
3
3
  gemspec
4
4
  gem 'rake'
5
+ gem 'binding_of_caller'
5
6
 
6
7
  group :development, :test do
7
8
  gem "rspec", "~> 2.8.0"
data/Gemfile.lock CHANGED
@@ -1,11 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- guerrilla_patch (2.8.3)
4
+ guerrilla_patch (2.8.4)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
8
8
  specs:
9
+ binding_of_caller (0.7.2)
10
+ debug_inspector (>= 0.0.1)
11
+ debug_inspector (0.0.2)
9
12
  diff-lcs (1.1.3)
10
13
  rake (0.9.2.2)
11
14
  rspec (2.8.0)
@@ -21,6 +24,7 @@ PLATFORMS
21
24
  ruby
22
25
 
23
26
  DEPENDENCIES
27
+ binding_of_caller
24
28
  bundler (>= 1.0.0)
25
29
  guerrilla_patch!
26
30
  rake
data/README.md CHANGED
@@ -5,6 +5,43 @@ Guerrilla Patch
5
5
 
6
6
  I am tired of hunting and tracking down my own monkey patches. Not to mention hassle of dragging them between projects. I figured gem is a remedy for this.
7
7
 
8
+ Assign instance variables automaticaly
9
+ ---------------------------------------
10
+ You know that neat coffee script trick that shortens code below.
11
+
12
+ ```
13
+ class Animal
14
+ constructor: (name) ->
15
+ @name = name
16
+
17
+ ```
18
+
19
+ To be more succint:
20
+
21
+ ```
22
+ class Animal
23
+ constructor: (@name) ->
24
+ ```
25
+
26
+ While waiting for Ruby 2.0 to implement it I am using this:
27
+
28
+ ````
29
+ def initialize(amount, index:nil, envy_no_more:nil)
30
+ auto_assign
31
+ end
32
+ ```
33
+
34
+ It's equvalent to this:
35
+
36
+ ```
37
+ def initialize(amount, index:nil, envy_no_more:nil)
38
+ @amount = amount
39
+ @index = index
40
+ @envy_no_more = envy_no_more
41
+ end
42
+ ```
43
+
44
+
8
45
  BigDecimal
9
46
  -----------
10
47
  Not using BigDecimal is asking for trouble, but using it is way too verbose:
@@ -1,7 +1,13 @@
1
1
  require 'bigdecimal'
2
2
  require 'guerrilla_patch/allocate'
3
+ require 'binding_of_caller'
3
4
 
4
5
  module Kernel
6
+ def auto_assign
7
+ caller_binding = binding.of_caller(1)
8
+ method(caller[0][/`.*'/][1..-2]).parameters.each { |arg| instance_eval("@#{arg[1]} = caller_binding.eval(arg[1].to_s)") }
9
+ end
10
+
5
11
  def let(name, &block)
6
12
  define_method(name, &block)
7
13
  end
@@ -1,3 +1,3 @@
1
1
  module GuerrillaPatch
2
- VERSION = "2.8.3"
2
+ VERSION = "2.8.4"
3
3
  end
@@ -80,6 +80,21 @@ describe Kernel do
80
80
  33.11.divide({ '1A' => 50, '1B' => 50}).should == {"1A"=> 16.56, "1B"=> 16.55 }
81
81
  end
82
82
 
83
+ class TestAssign
84
+ attr_reader :index, :amount
85
+
86
+ def initialize(index, amount)
87
+ auto_assign
88
+ end
89
+
90
+ end
91
+
92
+ it 'assigns by default' do
93
+ subject = TestAssign.new(1, 100.0)
94
+ subject.index.should == 1
95
+ subject.amount.should == 100.0
96
+ end
97
+
83
98
  end
84
99
 
85
100
  describe Array do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guerrilla_patch
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.3
4
+ version: 2.8.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -27,7 +27,6 @@ files:
27
27
  - LICENSE.txt
28
28
  - README.md
29
29
  - Rakefile
30
- - VERSION
31
30
  - guerrilla_patch.gemspec
32
31
  - guerrilla_patch.sublime-project
33
32
  - lib/guerrilla_patch.rb
@@ -58,7 +57,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
58
57
  version: '0'
59
58
  segments:
60
59
  - 0
61
- hash: 692317867878337078
60
+ hash: -700366039810131134
62
61
  required_rubygems_version: !ruby/object:Gem::Requirement
63
62
  none: false
64
63
  requirements:
@@ -67,10 +66,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
67
66
  version: '0'
68
67
  segments:
69
68
  - 0
70
- hash: 692317867878337078
69
+ hash: -700366039810131134
71
70
  requirements: []
72
71
  rubyforge_project:
73
- rubygems_version: 1.8.24
72
+ rubygems_version: 1.8.23
74
73
  signing_key:
75
74
  specification_version: 3
76
75
  summary: Since I am tired of hunting down monkey patches at large I am caging them
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 2.8.2