groupy 0.2.1 → 0.2.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/Rakefile CHANGED
@@ -33,7 +33,7 @@ spec = Gem::Specification.new do |s|
33
33
 
34
34
  # Change these as appropriate
35
35
  s.name = "groupy"
36
- s.version = "0.2.1"
36
+ s.version = "0.2.2"
37
37
  s.summary = "Categorise Active Records in nested groups with magical scopes, ? methods, and constants."
38
38
  s.author = "Matthew Rudy Jacobs"
39
39
  s.email = "MatthewRudyJacobs@gmail.com"
@@ -52,7 +52,8 @@ spec = Gem::Specification.new do |s|
52
52
  s.add_dependency("activesupport")
53
53
 
54
54
  # If your tests use any gems, include them here
55
- # s.add_development_dependency("mocha") # for example
55
+ s.add_development_dependency("activerecord")
56
+ s.add_development_dependency("sqlite3-ruby")
56
57
  end
57
58
 
58
59
  # This task actually builds the gem. We also regenerate a static
@@ -73,7 +73,11 @@ module Groupy
73
73
  def initialize(&block)
74
74
  super(:all, &block)
75
75
  end
76
-
76
+
77
+ def subgroups
78
+ super().merge(:all => self.values)
79
+ end
80
+
77
81
  def attach!(klass, column_name, options)
78
82
  self.subgroups.each do |group_name, group_values|
79
83
 
@@ -110,7 +114,12 @@ module Groupy
110
114
 
111
115
  klass.class_eval <<-RUBY
112
116
  def self.all_#{column_name.to_s.pluralize}
113
- self.groupies[#{column_name.inspect}].values
117
+ self.#{column_name.to_s.pluralize}(:all)
118
+ end
119
+
120
+ # self.roles(:non_superadmin) => ["some", "list", "of", "roles"]
121
+ def self.#{column_name.to_s.pluralize}(subgroup_name)
122
+ self.groupies[#{column_name.inspect}].subgroups[subgroup_name]
114
123
  end
115
124
  RUBY
116
125
  end
@@ -45,7 +45,7 @@ class GroupyTest < ActiveSupport::TestCase
45
45
  end
46
46
 
47
47
  test "subgroups" do
48
- assert_equal [:healthy, :fruit, :apple, :orange, :rice, :unhealthy, :fried_egg, :bacon].sort_by(&:to_s), Food.groupies[:dish].subgroups.keys.sort_by(&:to_s)
48
+ assert_equal [:all, :healthy, :fruit, :apple, :orange, :rice, :unhealthy, :fried_egg, :bacon].sort_by(&:to_s), Food.groupies[:dish].subgroups.keys.sort_by(&:to_s)
49
49
  assert_equal ["apple", "orange", "rice"], Food.groupies[:dish].subgroups[:healthy]
50
50
  assert_equal ["apple", "orange"], Food.groupies[:dish].subgroups[:fruit]
51
51
  assert_equal ["apple"], Food.groupies[:dish].subgroups[:apple]
@@ -5,8 +5,7 @@ require 'active_record'
5
5
 
6
6
  ActiveRecord::Base.establish_connection(
7
7
  :adapter => "sqlite3",
8
- :dbfile => ":memory:",
9
- :database => "groupy_test"
8
+ :database => ":memory:"
10
9
  )
11
10
 
12
11
  ActiveRecord::Schema.define(:version => 0) do
@@ -44,4 +43,9 @@ class WithDatabaseTest < ActiveSupport::TestCase
44
43
  assert_equal 1, Something.medium_sizes.count
45
44
  end
46
45
 
46
+ test "subgroup shortcut" do
47
+ assert_equal ["small", "medium", "large"], Something.sizes(:all)
48
+ assert_equal ["small"], Something.sizes(:small)
49
+ end
50
+
47
51
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: groupy
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 1
10
- version: 0.2.1
9
+ - 2
10
+ version: 0.2.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Matthew Rudy Jacobs
@@ -32,6 +32,34 @@ dependencies:
32
32
  version: "0"
33
33
  type: :runtime
34
34
  version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: activerecord
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ type: :development
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: sqlite3-ruby
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ type: :development
62
+ version_requirements: *id003
35
63
  description:
36
64
  email: MatthewRudyJacobs@gmail.com
37
65
  executables: []