sourcerer 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 444e4835573de25b1219563310d1e80fd6342458
4
- data.tar.gz: 8dc550d20dd3c1f9a12b2c913ad64a9a44a8339a
3
+ metadata.gz: 71bdf6600dc7d324f5b52f69cda8bc1566de74e7
4
+ data.tar.gz: 4e30731f8d8b819d9238a53eca15fd0739e9fc50
5
5
  SHA512:
6
- metadata.gz: 65a5891322114fb8c6cc8e8cbbe4d2b11eff6d6a3f2e77a84990d6961f5b311876834183874e4974988c76d6725e1bf3503a5b0b8c8efe5e56560fd8ace0a937
7
- data.tar.gz: adea9759f5886b3e00df60f4e014925df78ece5a25a436d7aa47d70efe1ac1c3ac85251b87921ae9fe4f99b63a16f9b5001f5bbf8176bc3e6bcbee1ee19cb9d6
6
+ metadata.gz: a35e6d65c2615ebde06cb4712b9816575899663ced5a73f6af49260f4d6882d0ce098ef9ae68daa80a17344145b19b2e6d96bfeec893832e92857a33b4bd137d
7
+ data.tar.gz: d71e5e08eea5d214833e50f3c072d2e1593b04aee4a33eec728367b3d3e34e857e5d7ace9ecb46e3130773b8c2cf694cc0508df67310985ac85f99e9e0edfefb
data/README.md CHANGED
@@ -78,6 +78,18 @@ Gemfile:
78
78
 
79
79
  ```
80
80
 
81
+ ### SourceCode
82
+
83
+ you can invoke the :body & :params methods on the source code to trim out the code string parts
84
+
85
+ ```ruby
86
+
87
+ proc_obj.source.body
88
+ proc_obj.source.params
89
+
90
+
91
+ ```
92
+
81
93
  ### after words
82
94
 
83
95
  if you find any bug please report to me :)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.0
1
+ 0.7.0
@@ -1,7 +1,38 @@
1
1
  module Sourcerer
2
2
  class SourceCode < String
3
3
 
4
+ def parameters
5
+ @parameters || self.dismantle.parameters
6
+ end
7
+ alias :args :parameters
8
+ alias :params :parameters
4
9
 
10
+ def body
11
+ @body || self.dismantle.body
12
+ end
13
+
14
+ def dismantle
15
+
16
+ self_dup= self.dup
17
+
18
+ #TODO: optionable args search for comments
19
+ parameters_var= self.scan(/\s*Proc\.new\s*{\s*\|(.*)\|/)
20
+ if parameters_var.empty?
21
+ @parameters= ""
22
+ else
23
+ @parameters= parameters_var[0][0]
24
+ self_dup.sub!(parameters_var[0][0],"")
25
+ self_dup.sub!( self_dup.split("\n")[0], self_dup.split("\n")[0].gsub("|","") )
26
+ end
27
+
28
+ self_dup.slice! /\s*Proc\.new\s*{[\s\n]*/
29
+ self_dup[self_dup.length-1]=""
30
+
31
+ @body= self_dup
32
+
33
+ return self
34
+
35
+ end
5
36
 
6
37
  end
7
38
  end
@@ -22,28 +22,6 @@ asd = Proc.new { |var, opts={}, *args, &block|
22
22
 
23
23
  }
24
24
 
25
- puts asdf.source
26
- puts asd.source
27
- puts method(:test).source
28
-
29
-
30
- #> output
31
- test= Proc.new do |sym,options={},*params,&block|
32
-
33
- puts "some awsome code here" # comment
34
- puts "yo"
35
-
36
- end # Proc
37
-
38
- puts test.source
39
- # Proc.new { |sym,options={},*params,&block|
40
- #
41
- # puts "some awsome code here"
42
- # puts "yo"
43
- #
44
- # }
45
-
46
-
47
25
  class HelloWorld
48
26
 
49
27
  #> TODO: comment remove from args
@@ -61,5 +39,18 @@ class HelloWorld
61
39
 
62
40
  end
63
41
 
64
- puts HelloWorld.method(:hello).source
42
+ #> output
43
+ test2= Proc.new do |sym,options={},*params,&block|
44
+
45
+ puts "some awsome code here" # comment
46
+ puts "yo"
47
+
48
+ end # Proc
49
+
50
+ puts asdf.source.body
51
+ puts asd.source.body
52
+ puts asd.source.params
53
+ # puts method(:test).source
54
+ # puts test2.source
55
+ # puts HelloWorld.method(:hello).source
65
56
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sourcerer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Luzsi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-23 00:00:00.000000000 Z
11
+ date: 2014-04-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: " DSL for for simple to use proc source generating from methods, unbound
14
14
  methods and of course Proc/lambda. It will allow you to play with the source or