priceable 0.0.3 → 0.0.4

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.md CHANGED
@@ -6,7 +6,9 @@ Easily manage prices in your Rails application
6
6
 
7
7
  Add this line to your application's Gemfile:
8
8
 
9
- gem 'priceable'
9
+ ```ruby
10
+ gem 'priceable'
11
+ ```
10
12
 
11
13
  And then execute:
12
14
 
@@ -21,26 +23,31 @@ Say you have a model, `Llama`. You can buy `Llama`s for a `cost`. Let's add th
21
23
 
22
24
  Now we just need to tell Rails that the `cost` field is priceable
23
25
 
24
- # app/models/llama.rb
26
+ ```ruby
27
+ # app/models/llama.rb
25
28
 
26
- class Llama < ActiveRecord::Base
27
- priceable :cost
28
- end
29
+ class Llama < ActiveRecord::Base
30
+ priceable :cost
31
+ end
32
+ ```
29
33
 
30
- And now lets check it out
34
+ And now lets check it out in the console
31
35
 
32
- $ rails c
33
- >> llama = Llama.last
34
- >> llama.cost # => nil
35
- >> llama.cost = 100
36
- >> llama.cost_in_cents # => 10000
37
- >> llama.cost # => 100
36
+ ```ruby
37
+ >> llama = Llama.last
38
+ >> llama.cost # => nil
39
+ >> llama.cost = 100
40
+ >> llama.cost_in_cents # => 10000
41
+ >> llama.cost # => 100
42
+ ```
38
43
 
39
44
  Isn't that special. So go, and add prices easily to your models, with Priceable.
40
45
 
41
46
  PS: `priceable` can take more than one field at a time, so go ahead and load it up like a baked potato.
42
47
 
43
- priceable :retail_price, :employee_price, :cost
48
+ ```ruby
49
+ priceable :retail_price, :employee_price, :cost
50
+ ```
44
51
 
45
52
  ## Contributing
46
53
 
@@ -7,7 +7,11 @@ module Priceable
7
7
  suffix = SUFFIXES.detect { |suffix| self.attribute_method? "#{price_field}#{suffix}".to_sym }
8
8
  raise ArgumentError, "Unable to find valid database field for `#{price_field}'" unless suffix
9
9
  define_method price_field do
10
- send("#{price_field}#{suffix}".to_sym) / 100.0
10
+ unless send("#{price_field}#{suffix}".to_sym).nil?
11
+ send("#{price_field}#{suffix}".to_sym) / 100.0
12
+ else
13
+ 0.0
14
+ end
11
15
  end
12
16
  define_method "#{price_field}=".to_sym do |new_price|
13
17
  send("#{price_field}#{suffix}=".to_sym, new_price.to_f * 100)
@@ -1,3 +1,3 @@
1
1
  module Priceable
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -9,10 +9,14 @@ describe Priceable do
9
9
  end
10
10
 
11
11
  it "should create a setter method" do
12
- llama.price = 200
13
- llama.price_in_cents.should == 20000
12
+ llama.price = 200.10
13
+ llama.price_in_cents.should == 20010
14
14
  end
15
15
 
16
+ it "should return 0.0 if nil" do
17
+ llama.price.should == 0.0
18
+ end
19
+
16
20
  it "should set it as attr_accessible" do
17
21
  Llama.accessible_attributes.to_a.should include("price")
18
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: priceable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
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-05 00:00:00.000000000 Z
12
+ date: 2012-05-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -132,7 +132,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
132
  version: '0'
133
133
  segments:
134
134
  - 0
135
- hash: -2534363491460813857
135
+ hash: -1066120859654096857
136
136
  required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  none: false
138
138
  requirements:
@@ -141,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
141
  version: '0'
142
142
  segments:
143
143
  - 0
144
- hash: -2534363491460813857
144
+ hash: -1066120859654096857
145
145
  requirements: []
146
146
  rubyforge_project:
147
147
  rubygems_version: 1.8.23