rdp-arguments 0.6 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -10,7 +10,7 @@ Hoe.plugin :newgem
10
10
 
11
11
  # Generate all the Rake tasks
12
12
  # Run 'rake -T' to see list of generated tasks (from gem root directory)
13
- $hoe = Hoe.spec 'arguments' do
13
+ $hoe = Hoe.spec 'rdp-arguments' do
14
14
  self.developer 'Macario Ortega', 'macarui@gmail.com'
15
15
  self.rubyforge_name = self.name # TODO this is default value
16
16
  self.extra_deps = [
@@ -18,7 +18,6 @@ $hoe = Hoe.spec 'arguments' do
18
18
  ['ParseTree', '>= 3.0.3'],
19
19
  ['ruby2ruby', '= 1.1.9']
20
20
  ]
21
- self.homepage = 'http://github.com/maca/arguments'
22
21
  end
23
22
 
24
23
  require 'newgem/tasks'
data/arguments.gemspec CHANGED
@@ -1,43 +1,42 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- Gem::Specification.new do |s|
4
- s.name = %q{rdp-arguments}
5
- s.version = "0.6"
6
-
7
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Macario Ortega"]
9
- s.date = %q{2009-08-06}
10
- s.description = %q{You don't have to wait until Ruby 2.0 to get (named|keyword) arguments support. Arguments has been tested with Ruby 1.8.6 and ruby 1.9.1 and eventually will work with JRuby (if someone is interested in contributing, I guess is possible since merb-action-args works with JRuby)}
11
- s.email = ["macarui@gmail.com"]
12
- s.extra_rdoc_files = ["History.txt", "Manifest.txt"]
13
- s.files = ["History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "arguments.gemspec", "lib/arguments.rb", "lib/arguments/class.rb", "lib/arguments/mri.rb", "lib/arguments/vm.rb", "spec/arguments_spec.rb", "spec/klass.rb", "spec/module.rb"]
14
- s.has_rdoc = true
15
- s.homepage = %q{http://github.com/maca/arguments}
16
- s.rdoc_options = ["--main", "README.rdoc"]
17
- s.require_paths = ["lib"]
18
- s.rubyforge_project = %q{arguments}
19
- s.rubygems_version = %q{1.3.1}
20
- s.summary = %q{You don't have to wait until Ruby 2.0 to get (named|keyword) arguments support}
21
-
22
- if s.respond_to? :specification_version then
23
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
- s.specification_version = 2
25
-
26
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
- s.add_runtime_dependency(%q<ruby_parser>, [">= 2.0.2"])
28
- s.add_runtime_dependency(%q<ParseTree>, [">= 3.0.3"])
29
- s.add_runtime_dependency(%q<ruby2ruby>, ["= 1.1.9"])
30
- s.add_development_dependency(%q<hoe>, [">= 2.3.2"])
31
- else
32
- s.add_dependency(%q<ruby_parser>, [">= 2.0.2"])
33
- s.add_dependency(%q<ParseTree>, [">= 3.0.3"])
34
- s.add_dependency(%q<ruby2ruby>, ["= 1.1.9"])
35
- s.add_dependency(%q<hoe>, [">= 2.3.2"])
36
- end
37
- else
38
- s.add_dependency(%q<ruby_parser>, [">= 2.0.2"])
39
- s.add_dependency(%q<ParseTree>, [">= 3.0.3"])
40
- s.add_dependency(%q<ruby2ruby>, ["= 1.1.9"])
41
- s.add_dependency(%q<hoe>, [">= 2.3.2"])
42
- end
43
- end
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{arguments}
5
+ s.version = "0.6.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Macario Ortega"]
9
+ s.date = %q{2009-10-29}
10
+ s.description = %q{You don't have to wait until Ruby 2.0 to get (named|keyword) arguments support.
11
+ Arguments has been tested with Ruby 1.8.6 and ruby 1.9.1 and eventually will work with JRuby (if someone is interested in contributing, I guess is possible since merb-action-args works with JRuby)}
12
+ s.email = ["macarui@gmail.com"]
13
+ s.extra_rdoc_files = ["History.txt", "Manifest.txt"]
14
+ s.files = ["History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "arguments.gemspec", "lib/arguments.rb", "lib/arguments/class.rb", "lib/arguments/mri.rb", "lib/arguments/vm.rb", "spec/arguments_spec.rb", "spec/klass.rb", "spec/module.rb"]
15
+ s.rdoc_options = ["--main", "README.rdoc"]
16
+ s.require_paths = ["lib"]
17
+ s.rubyforge_project = %q{arguments}
18
+ s.rubygems_version = %q{1.3.5}
19
+ s.summary = %q{You don't have to wait until Ruby 2.0 to get (named|keyword) arguments support}
20
+
21
+ if s.respond_to? :specification_version then
22
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
+ s.specification_version = 3
24
+
25
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
+ s.add_runtime_dependency(%q<ruby_parser>, [">= 2.0.2"])
27
+ s.add_runtime_dependency(%q<ParseTree>, [">= 3.0.3"])
28
+ s.add_runtime_dependency(%q<ruby2ruby>, ["= 1.1.9"])
29
+ s.add_development_dependency(%q<hoe>, [">= 2.3.3"])
30
+ else
31
+ s.add_dependency(%q<ruby_parser>, [">= 2.0.2"])
32
+ s.add_dependency(%q<ParseTree>, [">= 3.0.3"])
33
+ s.add_dependency(%q<ruby2ruby>, ["= 1.1.9"])
34
+ s.add_dependency(%q<hoe>, [">= 2.3.3"])
35
+ end
36
+ else
37
+ s.add_dependency(%q<ruby_parser>, [">= 2.0.2"])
38
+ s.add_dependency(%q<ParseTree>, [">= 3.0.3"])
39
+ s.add_dependency(%q<ruby2ruby>, ["= 1.1.9"])
40
+ s.add_dependency(%q<hoe>, [">= 2.3.3"])
41
+ end
42
+ end
@@ -4,7 +4,14 @@ module Arguments
4
4
 
5
5
  methods.each do |meth|
6
6
  meth = meth.to_s
7
- klass = meth.sub!(/^self./, '') ? (class << self; self; end) : self
7
+ original_klass = self
8
+ if meth =~ /^self\./
9
+ am_self = true
10
+ klass = (class << self; self; end)
11
+ meth.sub!(/^self\./ , '')
12
+ else
13
+ klass = self
14
+ end
8
15
  names = Arguments.names klass, meth
9
16
  next if names.empty? or names.inject(false) { |bol, pair| bol || /^\*/ === pair.first.to_s }
10
17
  assigns = []
@@ -31,7 +38,9 @@ module Arguments
31
38
  end
32
39
  end
33
40
 
34
- klass.module_eval <<-RUBY_EVAL, __FILE__, __LINE__
41
+
42
+ it = <<-RUBY_EVAL, __FILE__, __LINE__
43
+ #{ "class << self" if am_self }
35
44
  def __#{ meth }_with_keyword_arguments *args, &block
36
45
  opts = args.last.kind_of?( Hash ) && args.size < #{ names.size } ? args.pop : {}
37
46
  #{ assigns.join("\n") }
@@ -40,10 +49,12 @@ module Arguments
40
49
  end
41
50
  __original_#{ meth } #{ names.collect{ |n| n.first }.join(', ') }, &block
42
51
  end
43
-
52
+
44
53
  alias __original_#{ meth } #{ meth }
45
54
  alias #{ meth } __#{ meth }_with_keyword_arguments
55
+ #{ "end" if am_self }
46
56
  RUBY_EVAL
57
+ original_klass.class_eval *it
47
58
  end
48
59
  end
49
60
  alias :named_args_for :named_arguments_for
@@ -53,6 +64,7 @@ end
53
64
  class Class
54
65
  include Arguments
55
66
  end
67
+
56
68
  class Module
57
69
  include Arguments
58
70
  end
data/lib/arguments.rb CHANGED
@@ -7,7 +7,7 @@ require 'arguments/class'
7
7
  RUBY_VERSION.to_f >= 1.9 ? require( 'arguments/vm' ) : require( 'arguments/mri' )
8
8
 
9
9
  module Arguments
10
- VERSION = '0.6'
10
+ VERSION = '0.6.1'
11
11
 
12
12
  def self.names klass, method
13
13
  args = ast_for_method(klass, method).assoc(:args)
@@ -43,9 +43,15 @@ describe Arguments do
43
43
  Klass.send( :named_arguments_for, :defaults_with_class)
44
44
  @instance.defaults_with_class(1, 3).should == 3
45
45
  @instance.defaults_with_class(:a => 3).should == 3
46
- require '_dbg'
47
46
  @instance.defaults_with_class().should == 3
48
47
  end
48
+
49
+ it "should allow for class arguments in class methods" do
50
+ Klass.send( :named_arguments_for, :'self.klass_defaults_with_class')
51
+ Klass.klass_defaults_with_class(1, 3).should == 3
52
+ Klass.klass_defaults_with_class(:a => 3).should == 3
53
+ Klass.klass_defaults_with_class().should == 3
54
+ end
49
55
 
50
56
  it "should allow overriding with nil" do
51
57
  Klass.send( :named_arguments_for, :two )
@@ -70,6 +76,8 @@ describe Arguments do
70
76
  it "should work with class methods" do
71
77
  (class << Klass; self; end).send( :named_arguments_for, :k_method )
72
78
  Klass.k_method(:d => :d).should == [1, 2, 3, :d]
79
+ #(class << Klass; self; end).send( :named_arguments_for, :k_method )
80
+ #Klass.k_method(:d => :d).should == [1, 2, 3, :d]
73
81
  end
74
82
 
75
83
  it "should override defaults on standard passing" do
@@ -143,13 +151,12 @@ describe Arguments do
143
151
  }
144
152
  end
145
153
 
146
- it "should work with modules" do
154
+ it "should work with modules (not working yet)" do
147
155
  require 'module.rb'
148
156
  TestMod.send(:named_arguments_for, :go)
149
157
  IncludesTestMod.new.go(1,2).should == 2
150
158
  IncludesTestMod.new.go(:a => 1, :b => 2).should == 2
151
159
  end
152
-
153
160
 
154
161
  it "should benchmark with hack" do
155
162
  puts Benchmark.measure {
data/spec/klass.rb CHANGED
@@ -23,6 +23,10 @@ class Klass
23
23
  def defaults_with_class b = 1, a = @@go
24
24
  a
25
25
  end
26
+
27
+ def self.klass_defaults_with_class b = 1, a = @@go
28
+ a
29
+ end
26
30
 
27
31
  def no_args
28
32
  end
data/spec/module.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module TestMod;
2
- def go(a, b)
2
+ def go(a, b)
3
3
  b
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdp-arguments
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.6"
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Macario Ortega
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-06 00:00:00 -06:00
12
+ date: 2009-10-29 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -50,9 +50,11 @@ dependencies:
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 2.3.2
53
+ version: 2.3.3
54
54
  version:
55
- description: You don't have to wait until Ruby 2.0 to get (named|keyword) arguments support. Arguments has been tested with Ruby 1.8.6 and ruby 1.9.1 and eventually will work with JRuby (if someone is interested in contributing, I guess is possible since merb-action-args works with JRuby)
55
+ description: |-
56
+ You don't have to wait until Ruby 2.0 to get (named|keyword) arguments support.
57
+ Arguments has been tested with Ruby 1.8.6 and ruby 1.9.1 and eventually will work with JRuby (if someone is interested in contributing, I guess is possible since merb-action-args works with JRuby)
56
58
  email:
57
59
  - macarui@gmail.com
58
60
  executables: []
@@ -76,7 +78,7 @@ files:
76
78
  - spec/klass.rb
77
79
  - spec/module.rb
78
80
  has_rdoc: true
79
- homepage: http://github.com/maca/arguments
81
+ homepage:
80
82
  licenses: []
81
83
 
82
84
  post_install_message:
@@ -99,10 +101,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
101
  version:
100
102
  requirements: []
101
103
 
102
- rubyforge_project: arguments
104
+ rubyforge_project: rdp-arguments
103
105
  rubygems_version: 1.3.5
104
106
  signing_key:
105
- specification_version: 2
107
+ specification_version: 3
106
108
  summary: You don't have to wait until Ruby 2.0 to get (named|keyword) arguments support
107
109
  test_files: []
108
110