charisma 0.3.0 → 0.3.1

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.
@@ -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