charisma 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -116,7 +116,7 @@ end
116
116
  ```
117
117
  ``` ruby
118
118
  class Length < Charisma::Measurement # Don't need to inherit if you want to DIY
119
- units :meters => 'm'
119
+ units :metres => 'm'
120
120
  end
121
121
  ```
122
122
  ``` irb
@@ -5,7 +5,7 @@ Gem::Specification.new do |s|
5
5
  s.name = 'charisma'
6
6
  s.version = Charisma::VERSION
7
7
  s.platform = Gem::Platform::RUBY
8
- s.date = "2011-06-02"
8
+ s.date = "2011-07-05"
9
9
  s.authors = ['Andy Rossmeissl', 'Seamus Abshere']
10
10
  s.email = 'andy@rossmeissl.net'
11
11
  s.homepage = 'http://github.com/brighterplanet/charisma'
@@ -16,7 +16,6 @@ require 'charisma/base/class_methods'
16
16
  require 'charisma/characteristic'
17
17
  require 'charisma/characterization'
18
18
  require 'charisma/measurement'
19
- require 'charisma/measurement/length'
20
19
  require 'charisma/curator'
21
20
  require 'charisma/curator/curation'
22
21
  require 'charisma/number_helper'
@@ -36,4 +35,4 @@ module Charisma
36
35
  end
37
36
  end
38
37
 
39
- Conversions.register :meters, :feet, 3.2808399
38
+ Conversions.register :metres, :feet, 3.2808399
@@ -41,8 +41,8 @@ module Charisma
41
41
  # (see #inpsect)
42
42
  def to_s; inspect end
43
43
 
44
- extend Forwardable
45
- delegate [:[], :keys, :slice, :==, :each] => :characteristics
44
+ extend ::Forwardable
45
+ def_delegators :characteristics, :[], :keys, :slice, :==, :each
46
46
 
47
47
  # Loose equality for Hashlike objects
48
48
  #
@@ -5,8 +5,8 @@ module Charisma
5
5
  #
6
6
  # Implements the Delegator pattern, with uncaught methods delegated to the characteristic's computed value.
7
7
  # (Undocumented below is that <tt>#to_s</tt> is specifically delegated to <tt>#render</tt>.)
8
- class Curation < Delegator
9
- extend Forwardable
8
+ class Curation < ::Delegator
9
+ extend ::Forwardable
10
10
 
11
11
  # The computed value of the characteristic
12
12
  attr_accessor :value
@@ -26,7 +26,11 @@ module Charisma
26
26
  self.value = value
27
27
  end
28
28
 
29
- delegate [:to_s] => :render
29
+ def_delegators :render, :to_s
30
+
31
+ def ==(other)
32
+ self.value == other.value
33
+ end
30
34
 
31
35
  # An inspection method for more readable IRB sessions and logs.
32
36
  def inspect
@@ -47,9 +51,9 @@ module Charisma
47
51
 
48
52
  # If this curation deals with a measured characteristic, this method will delegate <tt>#u</tt>, <tt>#units</tt>, and appropriate unit-name methods to <tt>#render</tt>.
49
53
  def establish_units_methods
50
- self.class.delegate [:u, :units] => :render
54
+ self.class.def_delegators :render, :u, :units
51
55
  if conversions = Conversions.conversions[units.to_sym]
52
- self.class.delegate conversions.keys => :render
56
+ self.class.def_delegators :render, *conversions.keys
53
57
  end
54
58
  end
55
59
 
@@ -89,10 +93,10 @@ module Charisma
89
93
  # @return [Class]
90
94
  def measurement_class
91
95
  case characteristic.measurement
92
- when Class
96
+ when ::Class
93
97
  characteristic.measurement
94
- when Symbol
95
- "Charisma::Measurement::#{characteristic.measurement.to_s.camelize}".constantize
98
+ when ::Symbol
99
+ "::Charisma::Measurement::#{characteristic.measurement.to_s.camelize}".constantize
96
100
  else
97
101
  raise InvalidMeasurementError
98
102
  end
@@ -3,6 +3,11 @@ module Charisma
3
3
  #
4
4
  # @abstract An actual measurement class should inherit from this and use <tt>#units</tt> to define units.
5
5
  class Measurement
6
+ autoload :Length, 'charisma/measurement/length'
7
+ autoload :Mass, 'charisma/measurement/mass'
8
+ autoload :Speed, 'charisma/measurement/speed'
9
+ autoload :Time, 'charisma/measurement/time'
10
+
6
11
  # The quantity of the measured value
7
12
  attr_reader :value
8
13
 
@@ -1,8 +1,8 @@
1
1
  module Charisma
2
2
  class Measurement
3
- # Length, in meters.
3
+ # Length, in metres.
4
4
  class Length < Measurement
5
- units :meters => 'm'
5
+ units :metres => 'm'
6
6
  end
7
7
  end
8
8
  end
@@ -1,8 +1,8 @@
1
1
  module Charisma
2
2
  class Measurement
3
- # Speed, in meters per second
3
+ # Speed, in metres per second
4
4
  class Speed < Measurement
5
- units :meters_per_second => 'm/s'
5
+ units :metres_per_second => 'm/s'
6
6
  end
7
7
  # Velocity is an SI-accepted alias for speed
8
8
  Velocity = Speed
@@ -1,4 +1,4 @@
1
1
  module Charisma
2
2
  # Charisma's version
3
- VERSION = "0.3.0"
3
+ VERSION = "0.3.1"
4
4
  end
@@ -6,7 +6,7 @@ class TestCharisma < Test::Unit::TestCase
6
6
  assert_equal 'Amaroq', spaceship.characteristics[:name].to_s
7
7
  end
8
8
  def test_002_measured_attribute
9
- spaceship = Spaceship.new :size => 10 # meters
9
+ spaceship = Spaceship.new :size => 10 # metres
10
10
  assert_equal '10 m', spaceship.characteristics[:size].to_s
11
11
  end
12
12
  def test_003_classified_attribute
metadata CHANGED
@@ -1,117 +1,114 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: charisma
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.1
4
5
  prerelease:
5
- version: 0.3.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Andy Rossmeissl
9
9
  - Seamus Abshere
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
-
14
- date: 2011-06-02 00:00:00 -05:00
15
- default_executable:
16
- dependencies:
17
- - !ruby/object:Gem::Dependency
13
+ date: 2011-07-05 00:00:00.000000000Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
18
16
  name: activesupport
19
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &2155844680 !ruby/object:Gem::Requirement
20
18
  none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: "0"
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
25
23
  type: :runtime
26
24
  prerelease: false
27
- version_requirements: *id001
28
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *2155844680
26
+ - !ruby/object:Gem::Dependency
29
27
  name: blockenspiel
30
- requirement: &id002 !ruby/object:Gem::Requirement
28
+ requirement: &2155844160 !ruby/object:Gem::Requirement
31
29
  none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: "0"
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
36
34
  type: :runtime
37
35
  prerelease: false
38
- version_requirements: *id002
39
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *2155844160
37
+ - !ruby/object:Gem::Dependency
40
38
  name: conversions
41
- requirement: &id003 !ruby/object:Gem::Requirement
39
+ requirement: &2155843680 !ruby/object:Gem::Requirement
42
40
  none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: "0"
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
47
45
  type: :runtime
48
46
  prerelease: false
49
- version_requirements: *id003
50
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *2155843680
48
+ - !ruby/object:Gem::Dependency
51
49
  name: bundler
52
- requirement: &id004 !ruby/object:Gem::Requirement
50
+ requirement: &2155843140 !ruby/object:Gem::Requirement
53
51
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- version: "0"
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
58
56
  type: :development
59
57
  prerelease: false
60
- version_requirements: *id004
61
- - !ruby/object:Gem::Dependency
58
+ version_requirements: *2155843140
59
+ - !ruby/object:Gem::Dependency
62
60
  name: bueller
63
- requirement: &id005 !ruby/object:Gem::Requirement
61
+ requirement: &2155842600 !ruby/object:Gem::Requirement
64
62
  none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: "0"
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
69
67
  type: :development
70
68
  prerelease: false
71
- version_requirements: *id005
72
- - !ruby/object:Gem::Dependency
69
+ version_requirements: *2155842600
70
+ - !ruby/object:Gem::Dependency
73
71
  name: rake
74
- requirement: &id006 !ruby/object:Gem::Requirement
72
+ requirement: &2155835100 !ruby/object:Gem::Requirement
75
73
  none: false
76
- requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
79
- version: "0"
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
80
78
  type: :development
81
79
  prerelease: false
82
- version_requirements: *id006
83
- - !ruby/object:Gem::Dependency
80
+ version_requirements: *2155835100
81
+ - !ruby/object:Gem::Dependency
84
82
  name: rcov
85
- requirement: &id007 !ruby/object:Gem::Requirement
83
+ requirement: &2155834680 !ruby/object:Gem::Requirement
86
84
  none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: "0"
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
91
89
  type: :development
92
90
  prerelease: false
93
- version_requirements: *id007
94
- - !ruby/object:Gem::Dependency
91
+ version_requirements: *2155834680
92
+ - !ruby/object:Gem::Dependency
95
93
  name: supermodel
96
- requirement: &id008 !ruby/object:Gem::Requirement
94
+ requirement: &2155834260 !ruby/object:Gem::Requirement
97
95
  none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- version: "0"
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
102
100
  type: :development
103
101
  prerelease: false
104
- version_requirements: *id008
105
- description: Define strategies for accessing and displaying a subset of your classes' attributes
102
+ version_requirements: *2155834260
103
+ description: Define strategies for accessing and displaying a subset of your classes'
104
+ attributes
106
105
  email: andy@rossmeissl.net
107
106
  executables: []
108
-
109
107
  extensions: []
110
-
111
- extra_rdoc_files:
108
+ extra_rdoc_files:
112
109
  - LICENSE
113
110
  - README.markdown
114
- files:
111
+ files:
115
112
  - .document
116
113
  - .gitignore
117
114
  - Gemfile
@@ -135,37 +132,33 @@ files:
135
132
  - lib/charisma/version.rb
136
133
  - test/helper.rb
137
134
  - test/test_charisma.rb
138
- has_rdoc: true
139
135
  homepage: http://github.com/brighterplanet/charisma
140
136
  licenses: []
141
-
142
137
  post_install_message:
143
138
  rdoc_options: []
144
-
145
- require_paths:
139
+ require_paths:
146
140
  - lib
147
- required_ruby_version: !ruby/object:Gem::Requirement
141
+ required_ruby_version: !ruby/object:Gem::Requirement
148
142
  none: false
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- hash: -405120809897582198
153
- segments:
143
+ requirements:
144
+ - - ! '>='
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ segments:
154
148
  - 0
155
- version: "0"
156
- required_rubygems_version: !ruby/object:Gem::Requirement
149
+ hash: 2768945876583811928
150
+ required_rubygems_version: !ruby/object:Gem::Requirement
157
151
  none: false
158
- requirements:
159
- - - ">="
160
- - !ruby/object:Gem::Version
152
+ requirements:
153
+ - - ! '>='
154
+ - !ruby/object:Gem::Version
161
155
  version: 1.3.7
162
156
  requirements: []
163
-
164
157
  rubyforge_project:
165
- rubygems_version: 1.6.2
158
+ rubygems_version: 1.8.5
166
159
  signing_key:
167
160
  specification_version: 3
168
161
  summary: Curate your rich Ruby objects' attributes
169
- test_files:
162
+ test_files:
170
163
  - test/helper.rb
171
164
  - test/test_charisma.rb