smart_properties 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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