namedarguments 0.0.1 → 0.0.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/README.txt +5 -16
- data/Rakefile +1 -1
- data/lib/hash_extended_tools.rb +3 -24
- data/lib/named_arguments.rb +3 -9
- metadata +3 -3
data/README.txt
CHANGED
@@ -3,28 +3,17 @@ NamedArguments
|
|
3
3
|
|
4
4
|
== DESCRIPTION:
|
5
5
|
|
6
|
-
|
7
|
-
initialize attributes in the new object.
|
6
|
+
=== Not yet ready for production.
|
8
7
|
|
9
8
|
== FEATURES/PROBLEMS:
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
attr_accessor :color, :size, :name
|
15
|
-
|
16
|
-
attribute_defaults :color => 'blue', :size => lambda {|s| some_method_call(s)}
|
17
|
-
required_fields :color, :name
|
18
|
-
required_respond_to :name => :to_s
|
19
|
-
required_kind_of? :size => Fixnum
|
20
|
-
type_conversion :size => Fixnum
|
21
|
-
end
|
22
|
-
|
23
|
-
s = Snark.new :boojum => 7, :color => red
|
10
|
+
== SYNOPSYS:
|
11
|
+
|
12
|
+
== REQUIREMENTS:
|
24
13
|
|
25
14
|
== INSTALL:
|
26
15
|
|
27
|
-
gem install
|
16
|
+
sudo gem install
|
28
17
|
|
29
18
|
== LICENSE:
|
30
19
|
|
data/Rakefile
CHANGED
@@ -6,7 +6,7 @@ Hoe.new('namedarguments', NamedArguments::VERSION) do |p|
|
|
6
6
|
p.summary = 'Provide named arguments (hashes) to constructors to initialize attributes.'
|
7
7
|
p.author = "James M Moore"
|
8
8
|
p.email = 'james@phonesonrails.com'
|
9
|
-
p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
|
9
|
+
# p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
|
10
10
|
# p.url = p.paragraphs_of('README.txt', 0).first.split(/\n/)[1..-1]
|
11
11
|
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
|
12
12
|
end
|
data/lib/hash_extended_tools.rb
CHANGED
@@ -1,27 +1,17 @@
|
|
1
|
-
#
|
1
|
+
# Hash utilities.
|
2
2
|
#
|
3
3
|
# Note that you need to extend your hash with this module:
|
4
4
|
#
|
5
5
|
# hash = {}
|
6
6
|
# hash.extend HashExtendedTools
|
7
7
|
# hash = hash.exclude :foo, :bar
|
8
|
-
#
|
9
|
-
# Or create a new class:
|
10
|
-
#
|
11
|
-
# class HashWithExtendedTools < Hash
|
12
|
-
# include HashExtendedTools
|
13
|
-
# end
|
14
8
|
module HashExtendedTools
|
15
9
|
# Change keys in a hash.
|
16
10
|
#
|
17
11
|
# Pass in a hash of:
|
18
12
|
#
|
19
|
-
# old_key => new_key
|
20
|
-
|
21
|
-
# Any keys matching +old_key+ will be
|
22
|
-
# deleted and a new entry created with
|
23
|
-
# the same value and the new key.
|
24
|
-
def switch_keys args = {}
|
13
|
+
# :old_key => :new_key
|
14
|
+
def switch_keys(args = {})
|
25
15
|
args.each_pair do
|
26
16
|
|old_key, new_key|
|
27
17
|
if self.has_key?(old_key)
|
@@ -31,14 +21,6 @@ module HashExtendedTools
|
|
31
21
|
end
|
32
22
|
end
|
33
23
|
|
34
|
-
# Return a new hash not including
|
35
|
-
# keys that are contained in
|
36
|
-
# +keys_to_exclude+.
|
37
|
-
#
|
38
|
-
# Keys that match entries in
|
39
|
-
# +keys_to_exclude+ are deleted if
|
40
|
-
# either they match as string or a
|
41
|
-
# symbol (created with to_sym).
|
42
24
|
def exclude *keys_to_exclude
|
43
25
|
result = self.dup
|
44
26
|
keys_to_exclude.each do |k|
|
@@ -52,9 +34,6 @@ module HashExtendedTools
|
|
52
34
|
# return a hash containing
|
53
35
|
# the key/value pairs
|
54
36
|
# for the matching keys.
|
55
|
-
#
|
56
|
-
# Values that are nil are not
|
57
|
-
# returned.
|
58
37
|
def slice *slice_keys
|
59
38
|
result = {}
|
60
39
|
slice_keys.each do |k|
|
data/lib/named_arguments.rb
CHANGED
@@ -29,7 +29,7 @@ require File.dirname(__FILE__) + '/singleton_creator_mixin'
|
|
29
29
|
#
|
30
30
|
# See NamedArgumentsClassMethods for more methods.
|
31
31
|
module NamedArguments
|
32
|
-
VERSION = '0.0.
|
32
|
+
VERSION = '0.0.2'
|
33
33
|
|
34
34
|
include HashExtendedTools
|
35
35
|
|
@@ -167,15 +167,9 @@ module NamedArguments
|
|
167
167
|
end
|
168
168
|
end
|
169
169
|
|
170
|
-
# For every key/value pair in +args+,
|
171
|
-
# value of the attribute +key+ to +value+.
|
170
|
+
# For every key/value pair in +args+, call:
|
172
171
|
#
|
173
|
-
#
|
174
|
-
# include NamedArguments
|
175
|
-
# attr_accessor :boojum
|
176
|
-
# end
|
177
|
-
#
|
178
|
-
# s = Snark.new :boojum => 7
|
172
|
+
# self.send k,
|
179
173
|
def initialize args = {}
|
180
174
|
if kind_of? ActiveRecord::Base
|
181
175
|
super
|
metadata
CHANGED
@@ -3,15 +3,15 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: namedarguments
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date: 2006-12-
|
6
|
+
version: 0.0.2
|
7
|
+
date: 2006-12-05 00:00:00 -08:00
|
8
8
|
summary: Provide named arguments (hashes) to constructors to initialize attributes.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
11
11
|
email: james@phonesonrails.com
|
12
12
|
homepage: http://www.zenspider.com/ZSS/Products/namedarguments/
|
13
13
|
rubyforge_project: namedarguments
|
14
|
-
description:
|
14
|
+
description: The author was too lazy to write a description
|
15
15
|
autorequire:
|
16
16
|
default_executable:
|
17
17
|
bindir: bin
|