smart_properties 1.0.1 → 1.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/.travis.yml ADDED
@@ -0,0 +1,11 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - 1.9.2
4
+ - 1.9.3
5
+ - jruby
6
+ - rbx-19mode
7
+
8
+ branches:
9
+ only:
10
+ - develop
11
+ - master
data/Rakefile CHANGED
@@ -1,8 +1,13 @@
1
1
  #!/usr/bin/env rake
2
2
  require 'bundler/setup'
3
3
  require 'bundler/gem_tasks'
4
- require 'yard'
5
4
 
5
+ require 'yard'
6
6
  YARD::Rake::YardocTask.new do |t|
7
7
  t.files = ['lib/**/*.rb', 'README.md']
8
- end
8
+ end
9
+
10
+ require 'rspec/core/rake_task'
11
+ RSpec::Core::RakeTask.new(:spec)
12
+ task :default => :spec
13
+
@@ -22,12 +22,11 @@
22
22
  #
23
23
  module SmartProperties
24
24
 
25
- VERSION = "1.0.1"
25
+ VERSION = "1.0.2"
26
26
 
27
27
  class Property
28
28
 
29
29
  attr_reader :name
30
- attr_reader :default
31
30
  attr_reader :converter
32
31
  attr_reader :accepter
33
32
 
@@ -60,6 +59,10 @@ module SmartProperties
60
59
  end
61
60
  end
62
61
  end
62
+
63
+ def default
64
+ @default.kind_of?(Proc) ? @default.call : @default
65
+ end
63
66
 
64
67
  def accepts?(value, scope)
65
68
  return true unless value
@@ -373,4 +373,32 @@ describe SmartProperties do
373
373
 
374
374
  end
375
375
 
376
+ context 'when used to build a class that has a property called :text whose default value is a lambda statement' do
377
+
378
+ subject do
379
+ Class.new.tap do |c|
380
+ c.send(:include, described_class)
381
+
382
+ c.instance_eval do
383
+ property :text, :default => lambda { "-" * 3 }
384
+ end
385
+ end
386
+ end
387
+
388
+ context "instances of this class" do
389
+
390
+ klass = subject.call
391
+
392
+ subject do
393
+ klass.new
394
+ end
395
+
396
+ it "should return the result of the lambda statement as default value for :text" do
397
+ subject.text.should be == '---'
398
+ end
399
+
400
+ end
401
+
402
+ end
403
+
376
404
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_properties
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-30 00:00:00.000000000 Z
12
+ date: 2012-07-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -101,6 +101,7 @@ extensions: []
101
101
  extra_rdoc_files: []
102
102
  files:
103
103
  - .gitignore
104
+ - .travis.yml
104
105
  - .yardopts
105
106
  - Gemfile
106
107
  - Guardfile
@@ -125,7 +126,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
126
  version: '0'
126
127
  segments:
127
128
  - 0
128
- hash: -2153981449430065049
129
+ hash: -4417476715899075786
129
130
  required_rubygems_version: !ruby/object:Gem::Requirement
130
131
  none: false
131
132
  requirements:
@@ -134,10 +135,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
135
  version: '0'
135
136
  segments:
136
137
  - 0
137
- hash: -2153981449430065049
138
+ hash: -4417476715899075786
138
139
  requirements: []
139
140
  rubyforge_project:
140
- rubygems_version: 1.8.19
141
+ rubygems_version: 1.8.24
141
142
  signing_key:
142
143
  specification_version: 3
143
144
  summary: SmartProperties – Ruby accessors on steroids