hash_accessor 0.0.1 → 0.1.0

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/.gitignore CHANGED
@@ -0,0 +1 @@
1
+ *.gem
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new do |t|
4
+ t.libs << 'test'
5
+ end
6
+
7
+ desc "Run tests"
8
+ task :default => :test
@@ -14,6 +14,7 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.required_rubygems_version = ">= 1.3.6"
16
16
  s.platform = Gem::Platform::RUBY
17
+ s.add_dependency('active_support', '>=3.0')
17
18
 
18
19
  s.files = `git ls-files`.split("\n")
19
20
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
data/lib/hash_accessor.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
- require 'railtie' if defined?(Rails)
4
+ require 'hash_accessor/railtie' if defined?(Rails)
5
5
 
6
6
  module HashAccessor
7
- VERSION = "0.0.1"
7
+ VERSION = "0.1.0"
8
8
 
9
- autoload :ClassMethods, 'class_methods'
9
+ autoload :ClassMethods, 'hash_accessor/class_methods'
10
10
 
11
11
  def self.included(mod)
12
12
  mod.extend(ClassMethods)
@@ -1,3 +1,5 @@
1
+ require 'active_support/core_ext/object/blank'
2
+
1
3
  module HashAccessor
2
4
  module ClassMethods
3
5
  #valid options:
File without changes
@@ -0,0 +1,55 @@
1
+ require 'test/unit'
2
+ require File.expand_path("../lib/hash_accessor", File.dirname(__FILE__))
3
+
4
+ class HashAccessorTest < Test::Unit::TestCase
5
+
6
+ class TestClassWithHash
7
+ include HashAccessor
8
+ attr_accessor :options
9
+
10
+ hash_accessor :options, :unspecified_variable
11
+ hash_accessor :options, :test_integer, :type => :integer
12
+ hash_accessor :options, :test_bool, :type => :bool
13
+ hash_accessor :options, :test_array_1, :type => :array, :collects => lambda{|item| item.gsub(/li_/, "").to_i }
14
+ hash_accessor :options, :test_array_2, :type => :array, :reject_blanks => true
15
+
16
+ def initialize
17
+ options = {}
18
+ end
19
+ end
20
+
21
+ def setup
22
+ @tester = TestClassWithHash.new
23
+ end
24
+
25
+ def test_accessors_being_added_correct
26
+ assert @tester.respond_to?(:unspecified_variable)
27
+
28
+ @tester.unspecified_variable = "some test"
29
+ assert_equal "some test", @tester.unspecified_variable
30
+ end
31
+
32
+ def test_accessors_being_casted_correctly
33
+ @tester.test_integer = "3"
34
+ assert_equal 3, @tester.test_integer
35
+ end
36
+
37
+ def test_boolean_question_mark_method_being_added
38
+ assert !@tester.test_bool?
39
+ @tester.test_bool = true
40
+ assert @tester.test_bool?
41
+ end
42
+
43
+ def test_array_collect_method
44
+ assert_equal [], @tester.test_array_1
45
+ @tester.test_array_1 = ["li_1", "li_2", "li_3"]
46
+ assert_equal [1, 2, 3], @tester.test_array_1
47
+ end
48
+
49
+ def test_array_reject_blank_method
50
+ @tester.test_array_2 = ["", "1", "2"]
51
+ assert_equal ["1", "2"], @tester.test_array_2
52
+ end
53
+
54
+
55
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hash_accessor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,18 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
  date: 2011-10-16 00:00:00.000000000Z
13
- dependencies: []
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: active_support
16
+ requirement: &2152987980 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '3.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2152987980
14
25
  description: This gem provides accessor methods to hash keys.
15
26
  email:
16
27
  - development@forrestzeisler.com
@@ -22,11 +33,13 @@ files:
22
33
  - .gitignore
23
34
  - MIT-LICENSE
24
35
  - README.rdoc
36
+ - Rakefile
25
37
  - hash_accessor.gemspec
26
- - lib/class_methods.rb
27
38
  - lib/hash_accessor.rb
28
- - lib/railtie.rb
39
+ - lib/hash_accessor/class_methods.rb
40
+ - lib/hash_accessor/railtie.rb
29
41
  - rails/init.rb
42
+ - test/hash_accessor_test.rb
30
43
  homepage:
31
44
  licenses: []
32
45
  post_install_message:
@@ -54,4 +67,5 @@ summary: This gem provides extended functionality to serialized hashed in rails.
54
67
  allows you to define accessor methods for variable that rest inside a serialized
55
68
  hash. This is very useful if you have a large list of often changing DB variables
56
69
  on a model which don't get queried against.
57
- test_files: []
70
+ test_files:
71
+ - test/hash_accessor_test.rb