badgeable 0.4.0 → 0.5.1

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.
@@ -1,35 +1,77 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- badgeable (0.3.2)
4
+ badgeable (0.5.1)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
8
8
  specs:
9
- builder (2.1.2)
10
- cucumber (0.9.2)
11
- builder (~> 2.1.2)
12
- diff-lcs (~> 1.1.2)
13
- gherkin (~> 2.2.5)
14
- json (~> 1.4.6)
15
- term-ansicolor (~> 1.0.5)
16
- diff-lcs (1.1.2)
17
- factory_girl (1.3.2)
18
- gherkin (2.2.8)
19
- json (~> 1.4.6)
20
- term-ansicolor (~> 1.0.5)
21
- json (1.4.6)
22
- rspec (2.0.0.rc)
23
- rspec-core (= 2.0.0.rc)
24
- rspec-expectations (= 2.0.0.rc)
25
- rspec-mocks (= 2.0.0.rc)
26
- rspec-core (2.0.0.rc)
27
- rspec-expectations (2.0.0.rc)
9
+ actionpack (3.2.3)
10
+ activemodel (= 3.2.3)
11
+ activesupport (= 3.2.3)
12
+ builder (~> 3.0.0)
13
+ erubis (~> 2.7.0)
14
+ journey (~> 1.0.1)
15
+ rack (~> 1.4.0)
16
+ rack-cache (~> 1.2)
17
+ rack-test (~> 0.6.1)
18
+ sprockets (~> 2.1.2)
19
+ activemodel (3.2.3)
20
+ activesupport (= 3.2.3)
21
+ builder (~> 3.0.0)
22
+ activesupport (3.2.3)
23
+ i18n (~> 0.6)
24
+ multi_json (~> 1.0)
25
+ builder (3.0.0)
26
+ cucumber (1.1.9)
27
+ builder (>= 2.1.2)
28
28
  diff-lcs (>= 1.1.2)
29
- rspec-mocks (2.0.0.rc)
30
- rspec-core (= 2.0.0.rc)
31
- rspec-expectations (= 2.0.0.rc)
32
- term-ansicolor (1.0.5)
29
+ gherkin (~> 2.9.0)
30
+ json (>= 1.4.6)
31
+ term-ansicolor (>= 1.0.6)
32
+ diff-lcs (1.1.3)
33
+ erubis (2.7.0)
34
+ factory_girl (3.0.0)
35
+ activesupport (>= 3.0.0)
36
+ gherkin (2.9.3)
37
+ json (>= 1.4.6)
38
+ hike (1.2.1)
39
+ i18n (0.6.0)
40
+ journey (1.0.3)
41
+ json (1.6.6)
42
+ multi_json (1.2.0)
43
+ rack (1.4.1)
44
+ rack-cache (1.2)
45
+ rack (>= 0.4)
46
+ rack-ssl (1.3.2)
47
+ rack
48
+ rack-test (0.6.1)
49
+ rack (>= 1.0)
50
+ railties (3.2.3)
51
+ actionpack (= 3.2.3)
52
+ activesupport (= 3.2.3)
53
+ rack-ssl (~> 1.3.2)
54
+ rake (>= 0.8.7)
55
+ rdoc (~> 3.4)
56
+ thor (~> 0.14.6)
57
+ rake (0.9.2.2)
58
+ rdoc (3.12)
59
+ json (~> 1.4)
60
+ rspec (2.9.0)
61
+ rspec-core (~> 2.9.0)
62
+ rspec-expectations (~> 2.9.0)
63
+ rspec-mocks (~> 2.9.0)
64
+ rspec-core (2.9.0)
65
+ rspec-expectations (2.9.0)
66
+ diff-lcs (~> 1.1.3)
67
+ rspec-mocks (2.9.0)
68
+ sprockets (2.1.2)
69
+ hike (~> 1.2)
70
+ rack (~> 1.0)
71
+ tilt (~> 1.1, != 1.3.0)
72
+ term-ansicolor (1.0.7)
73
+ thor (0.14.6)
74
+ tilt (1.3.3)
33
75
 
34
76
  PLATFORMS
35
77
  ruby
@@ -39,4 +81,6 @@ DEPENDENCIES
39
81
  bundler (>= 1.0.0)
40
82
  cucumber
41
83
  factory_girl (>= 1.3.2)
84
+ railties
85
+ rake (~> 0.8)
42
86
  rspec (>= 2.0.0.rc)
@@ -19,6 +19,8 @@ Gem::Specification.new do |s|
19
19
  s.add_development_dependency "rspec", ">= 2.0.0.rc"
20
20
  s.add_development_dependency "cucumber"
21
21
  s.add_development_dependency "factory_girl", ">= 1.3.2"
22
+ s.add_development_dependency "rake", "~> 0.8"
23
+ s.add_development_dependency "railties"
22
24
 
23
25
  s.files = `git ls-files`.split("\n")
24
26
  s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
@@ -5,8 +5,8 @@ require 'active_support/dependencies'
5
5
  require 'active_support/concern'
6
6
 
7
7
  # if defined?(Mongoid)
8
- autoload :Badge, 'badgeable/adapters/mongoid_adapter/badge'
9
- autoload :Badging, 'badgeable/adapters/mongoid_adapter/badging'
8
+ # autoload :Badge, 'badgeable/adapters/mongoid_adapter/badge'
9
+ # autoload :Badging, 'badgeable/adapters/mongoid_adapter/badging'
10
10
  # end
11
11
  #
12
12
  # if defined?(ActiveRecord)
@@ -22,10 +22,10 @@ module Badgeable
22
22
  autoload :Dsl, 'badgeable/dsl'
23
23
  autoload :Subject, 'badgeable/subject'
24
24
  autoload :Verson, 'badgeable/version'
25
- module Adapters
26
- autoload :ActiveRecordAdapter, "badgeable/adapters/active_record_adapter"
27
- autoload :MongoidAdapter, "badgeable/adapters/mongoid_adapter"
28
- end
25
+ # module Adapters
26
+ # autoload :ActiveRecordAdapter, "badgeable/adapters/active_record_adapter"
27
+ # autoload :MongoidAdapter, "badgeable/adapters/mongoid_adapter"
28
+ # end
29
29
  end
30
30
 
31
31
  require 'badgeable/railtie' if defined?(Rails)
@@ -1,8 +1,21 @@
1
1
  module Badgeable
2
2
  module Adapters
3
+
4
+ class << self
5
+ attr_accessor :current_adapter
6
+ end
7
+
8
+ def self.use(adapter)
9
+ @current_adapter = adapter
10
+ end
11
+
12
+ def self.supported_adapters
13
+ [:active_record, :mongoid]
14
+ end
15
+
3
16
  def self.connect(klass)
4
- klass.send(:include, Badgeable::Adapters::MongoidAdapter) if defined?(Mongoid) && klass.include?(::Mongoid::Document)
5
- klass.send(:include, Badgeable::Adapters::ActiveRecordAdapter) if defined?(ActiveRecord) && klass.superclass == ActiveRecord::Base
17
+ raise ArgumentError, "Badgeable needs a database adapter to work. Add one of the following to your Gemfile: #{Badgeable::Adapters.supported_adapters.map {|name| 'badgeable_' + name }}" unless Badgeable::Adapters.current_adapter && (Badgeable::Adapters.supported_adapters.include? Badgeable::Adapters.current_adapter)
18
+ klass.send(:include, "Badgeable::Adapters::#{current_adapter.to_s.camelize}Adapter".constantize)
6
19
  end
7
20
  end
8
21
  end
@@ -1,11 +1,26 @@
1
1
  module Badgeable
2
2
  class Railtie < ::Rails::Railtie
3
+
4
+ def badge_definition_file
5
+ "#{Rails.root}/lib/badges.rb"
6
+ end
7
+
3
8
  initializer "badgeable.assign_badge_definitions_file" do
4
- Badgeable::Config.badge_definitions = Pathname.new("#{Rails.root}/lib/badges.rb")
9
+ if File.exists?(badge_definition_file)
10
+ Badgeable::Config.badge_definitions = File.read(Pathname.new(badge_definition_file))
11
+ else
12
+ Rails.logger.warn "Badgeable badges.rb file not found; add your badge definitions to #{badge_definition_file}, or run `rails g badgeable:setup` to get started"
13
+ Badgeable::Config.badge_definitions = ""
14
+ end
5
15
  end
6
16
 
7
17
  config.to_prepare do
8
- Badgeable::Dsl.class_eval(File.read(Badgeable::Config.badge_definitions))
18
+ Badgeable::Dsl.class_eval Badgeable::Config.badge_definitions
19
+ end
20
+
21
+ generators do
22
+ require "generators/badgeable_generator"
23
+ require "generators/setup/definitions_generator"
9
24
  end
10
25
  end
11
26
  end
@@ -1,3 +1,3 @@
1
1
  module Badgeable
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.1"
3
3
  end
@@ -0,0 +1,9 @@
1
+ module Badgeable
2
+ module Generators
3
+ class Base < Rails::Generators::Base
4
+ def self.source_root
5
+ @source_root ||= File.expand_path("../templates", __FILE__)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Badgeable
2
+ module Generators
3
+ class DefinitionsGenerator < Badgeable::Generators::Base
4
+ def create_badge_definitions_file
5
+ lib "badges.rb", "# Define your badges here; see https://github.com/scottburton11/Badgeable for details"
6
+ end
7
+ end
8
+ end
9
+ end
metadata CHANGED
@@ -1,91 +1,90 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: badgeable
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 4
8
- - 0
9
- version: 0.4.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.1
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Scott Burton
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2010-12-17 00:00:00 -08:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-04-01 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: bundler
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2152718340 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 1
30
- - 0
31
- - 0
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
32
21
  version: 1.0.0
33
22
  type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: rspec
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2152718340
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &2152717860 !ruby/object:Gem::Requirement
39
28
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- segments:
44
- - 2
45
- - 0
46
- - 0
47
- - rc
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
48
32
  version: 2.0.0.rc
49
33
  type: :development
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: cucumber
53
34
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *2152717860
36
+ - !ruby/object:Gem::Dependency
37
+ name: cucumber
38
+ requirement: &2152717480 !ruby/object:Gem::Requirement
55
39
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- segments:
60
- - 0
61
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
62
44
  type: :development
63
- version_requirements: *id003
64
- - !ruby/object:Gem::Dependency
65
- name: factory_girl
66
45
  prerelease: false
67
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *2152717480
47
+ - !ruby/object:Gem::Dependency
48
+ name: factory_girl
49
+ requirement: &2152716940 !ruby/object:Gem::Requirement
68
50
  none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- segments:
73
- - 1
74
- - 3
75
- - 2
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
76
54
  version: 1.3.2
77
55
  type: :development
78
- version_requirements: *id004
79
- description: Badgeable provides an elegant DSL for describing and awarding badges to your Ruby objects.
80
- email:
56
+ prerelease: false
57
+ version_requirements: *2152716940
58
+ - !ruby/object:Gem::Dependency
59
+ name: rake
60
+ requirement: &2152716440 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: '0.8'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *2152716440
69
+ - !ruby/object:Gem::Dependency
70
+ name: railties
71
+ requirement: &2152716060 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *2152716060
80
+ description: Badgeable provides an elegant DSL for describing and awarding badges
81
+ to your Ruby objects.
82
+ email:
81
83
  - scottburton11@gmail.com
82
84
  executables: []
83
-
84
85
  extensions: []
85
-
86
86
  extra_rdoc_files: []
87
-
88
- files:
87
+ files:
89
88
  - .gitignore
90
89
  - Gemfile
91
90
  - Gemfile.lock
@@ -113,42 +112,36 @@ files:
113
112
  - lib/badgeable/railtie.rb
114
113
  - lib/badgeable/subject.rb
115
114
  - lib/badgeable/version.rb
115
+ - lib/generators/badgeable_generator.rb
116
+ - lib/generators/setup/definitions_generator.rb
116
117
  - lib/generators/templates/badge.rb
117
118
  - lib/generators/templates/badging.rb
118
119
  - spec/spec_helper.rb
119
- has_rdoc: true
120
120
  homepage: http://rubygems.org/gems/badgeable
121
121
  licenses: []
122
-
123
122
  post_install_message:
124
123
  rdoc_options: []
125
-
126
- require_paths:
124
+ require_paths:
127
125
  - lib
128
- required_ruby_version: !ruby/object:Gem::Requirement
126
+ required_ruby_version: !ruby/object:Gem::Requirement
129
127
  none: false
130
- requirements:
131
- - - ">="
132
- - !ruby/object:Gem::Version
133
- segments:
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ segments:
134
133
  - 0
135
- version: "0"
136
- required_rubygems_version: !ruby/object:Gem::Requirement
134
+ hash: -656658032603044552
135
+ required_rubygems_version: !ruby/object:Gem::Requirement
137
136
  none: false
138
- requirements:
139
- - - ">="
140
- - !ruby/object:Gem::Version
141
- segments:
142
- - 1
143
- - 3
144
- - 6
137
+ requirements:
138
+ - - ! '>='
139
+ - !ruby/object:Gem::Version
145
140
  version: 1.3.6
146
141
  requirements: []
147
-
148
142
  rubyforge_project: badgeable
149
- rubygems_version: 1.3.7
143
+ rubygems_version: 1.8.17
150
144
  signing_key:
151
145
  specification_version: 3
152
146
  summary: Badgeable is an elegant DSL for awarding badges
153
147
  test_files: []
154
-