dragonfly_extensions 1.0.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/Manifest +20 -0
- data/Manifest.txt +20 -0
- data/README.rdoc +1 -0
- data/Rakefile +15 -0
- data/dragonfly_extensions.gemspec +30 -0
- data/lib/dragonfly_extensions/addressable.rb +10 -0
- data/lib/dragonfly_extensions/attachable.rb +8 -0
- data/lib/dragonfly_extensions/automatically_includable.rb +11 -0
- data/lib/dragonfly_extensions/billable.rb +4 -0
- data/lib/dragonfly_extensions/binnable.rb +20 -0
- data/lib/dragonfly_extensions/delayed_jobs.rb +32 -0
- data/lib/dragonfly_extensions/dragonfly_extensions.rb +173 -0
- data/lib/dragonfly_extensions/identifiable.rb +38 -0
- data/lib/dragonfly_extensions/legacy_connection.rb +10 -0
- data/lib/dragonfly_extensions/measurable.rb +12 -0
- data/lib/dragonfly_extensions/noteable.rb +5 -0
- data/lib/dragonfly_extensions/product_attribute.rb +17 -0
- data/lib/dragonfly_extensions/taggable_on.rb +5 -0
- data/lib/dragonfly_extensions/uniqueable.rb +9 -0
- data/lib/dragonfly_extensions.rb +6 -0
- metadata +102 -0
data/Manifest
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Manifest.txt
|
2
|
+
README.rdoc
|
3
|
+
Rakefile
|
4
|
+
dragonfly_extensions.gemspec
|
5
|
+
lib/dragonfly_extensions.rb
|
6
|
+
lib/dragonfly_extensions/addressable.rb
|
7
|
+
lib/dragonfly_extensions/attachable.rb
|
8
|
+
lib/dragonfly_extensions/automatically_includable.rb
|
9
|
+
lib/dragonfly_extensions/billable.rb
|
10
|
+
lib/dragonfly_extensions/binnable.rb
|
11
|
+
lib/dragonfly_extensions/delayed_jobs.rb
|
12
|
+
lib/dragonfly_extensions/dragonfly_extensions.rb
|
13
|
+
lib/dragonfly_extensions/identifiable.rb
|
14
|
+
lib/dragonfly_extensions/legacy_connection.rb
|
15
|
+
lib/dragonfly_extensions/measurable.rb
|
16
|
+
lib/dragonfly_extensions/noteable.rb
|
17
|
+
lib/dragonfly_extensions/product_attribute.rb
|
18
|
+
lib/dragonfly_extensions/taggable_on.rb
|
19
|
+
lib/dragonfly_extensions/uniqueable.rb
|
20
|
+
Manifest
|
data/Manifest.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Manifest.txt
|
2
|
+
README.rdoc
|
3
|
+
Rakefile
|
4
|
+
dragonfly_extensions.gemspec
|
5
|
+
lib/dragonfly_extensions.rb
|
6
|
+
lib/dragonfly_extensions/addressable.rb
|
7
|
+
lib/dragonfly_extensions/attachable.rb
|
8
|
+
lib/dragonfly_extensions/automatically_includable.rb
|
9
|
+
lib/dragonfly_extensions/billable.rb
|
10
|
+
lib/dragonfly_extensions/binnable.rb
|
11
|
+
lib/dragonfly_extensions/delayed_jobs.rb
|
12
|
+
lib/dragonfly_extensions/dragonfly_extensions.rb
|
13
|
+
lib/dragonfly_extensions/identifiable.rb
|
14
|
+
lib/dragonfly_extensions/legacy_connection.rb
|
15
|
+
lib/dragonfly_extensions/measurable.rb
|
16
|
+
lib/dragonfly_extensions/noteable.rb
|
17
|
+
lib/dragonfly_extensions/product_attribute.rb
|
18
|
+
lib/dragonfly_extensions/taggable_on.rb
|
19
|
+
lib/dragonfly_extensions/uniqueable.rb
|
20
|
+
Manifest
|
data/README.rdoc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Yay for readme
|
data/Rakefile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# Rakefile
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rake'
|
4
|
+
require 'echoe'
|
5
|
+
|
6
|
+
Echoe.new('dragonfly_extensions', '1.0.0') do |p|
|
7
|
+
p.description = "Collection of Dragonfly Depot Extensions"
|
8
|
+
p.url = "http://github.com/hmasing/Dragonfly---Extensions"
|
9
|
+
p.author = "Hans Masing"
|
10
|
+
p.email = "hmasing@dragonflydepot.com"
|
11
|
+
p.ignore_pattern = ["tmp/*", "script/*"]
|
12
|
+
p.development_dependencies = []
|
13
|
+
end
|
14
|
+
|
15
|
+
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{dragonfly_extensions}
|
5
|
+
s.version = "1.0.0"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Hans Masing"]
|
9
|
+
s.date = %q{2010-05-10}
|
10
|
+
s.description = %q{Collection of Dragonfly Depot Extensions}
|
11
|
+
s.email = %q{hmasing@dragonflydepot.com}
|
12
|
+
s.extra_rdoc_files = ["README.rdoc", "lib/dragonfly_extensions.rb", "lib/dragonfly_extensions/addressable.rb", "lib/dragonfly_extensions/attachable.rb", "lib/dragonfly_extensions/automatically_includable.rb", "lib/dragonfly_extensions/billable.rb", "lib/dragonfly_extensions/binnable.rb", "lib/dragonfly_extensions/delayed_jobs.rb", "lib/dragonfly_extensions/dragonfly_extensions.rb", "lib/dragonfly_extensions/identifiable.rb", "lib/dragonfly_extensions/legacy_connection.rb", "lib/dragonfly_extensions/measurable.rb", "lib/dragonfly_extensions/noteable.rb", "lib/dragonfly_extensions/product_attribute.rb", "lib/dragonfly_extensions/taggable_on.rb", "lib/dragonfly_extensions/uniqueable.rb"]
|
13
|
+
s.files = ["Manifest.txt", "README.rdoc", "Rakefile", "dragonfly_extensions.gemspec", "lib/dragonfly_extensions.rb", "lib/dragonfly_extensions/addressable.rb", "lib/dragonfly_extensions/attachable.rb", "lib/dragonfly_extensions/automatically_includable.rb", "lib/dragonfly_extensions/billable.rb", "lib/dragonfly_extensions/binnable.rb", "lib/dragonfly_extensions/delayed_jobs.rb", "lib/dragonfly_extensions/dragonfly_extensions.rb", "lib/dragonfly_extensions/identifiable.rb", "lib/dragonfly_extensions/legacy_connection.rb", "lib/dragonfly_extensions/measurable.rb", "lib/dragonfly_extensions/noteable.rb", "lib/dragonfly_extensions/product_attribute.rb", "lib/dragonfly_extensions/taggable_on.rb", "lib/dragonfly_extensions/uniqueable.rb", "Manifest"]
|
14
|
+
s.homepage = %q{http://github.com/hmasing/Dragonfly---Extensions}
|
15
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Dragonfly_extensions", "--main", "README.rdoc"]
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
s.rubyforge_project = %q{dragonfly_extensions}
|
18
|
+
s.rubygems_version = %q{1.3.6}
|
19
|
+
s.summary = %q{Collection of Dragonfly Depot Extensions}
|
20
|
+
|
21
|
+
if s.respond_to? :specification_version then
|
22
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
23
|
+
s.specification_version = 3
|
24
|
+
|
25
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
26
|
+
else
|
27
|
+
end
|
28
|
+
else
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module Addressable
|
2
|
+
def self.included(base)
|
3
|
+
base.has_many :addresses, :as => :addressable, :dependent => :destroy
|
4
|
+
base.has_one :primary_address, :class_name => "Address",
|
5
|
+
:foreign_key => "addressable_id",
|
6
|
+
:conditions => "addresses.is_primary is true"
|
7
|
+
|
8
|
+
base.accepts_nested_attributes_for :addresses, :allow_destroy => true
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
module Attachable
|
2
|
+
def self.included(base)
|
3
|
+
base.has_many :images, :as => :attachable, :dependent => :destroy
|
4
|
+
base.has_many :pdfs, :as => :attachable, :dependent => :destroy
|
5
|
+
base.has_many :documents, :as => :attachable, :dependent => :destroy
|
6
|
+
base.has_many :csvs, :as => :attachable, :dependent => :destroy
|
7
|
+
end
|
8
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Binnable
|
2
|
+
def self.included(base)
|
3
|
+
base.has_many :bins, :as => :binnable
|
4
|
+
base.has_many :warehouses, :through => :bins
|
5
|
+
|
6
|
+
base.named_scope :in_warehouse, lambda { |warehouse|
|
7
|
+
{:joins => :warehouses, :conditions => [ "#{Warehouse.table_name}.id = ?", warehouse ] }
|
8
|
+
}
|
9
|
+
end
|
10
|
+
|
11
|
+
#
|
12
|
+
# Return the quantity of a binnable item.
|
13
|
+
# The default is in all warehouses
|
14
|
+
#
|
15
|
+
def qty(warehouse = nil)
|
16
|
+
warehouse.nil? ?
|
17
|
+
self.bins.inject(0) { |sum, bin| sum += bin.qty } :
|
18
|
+
self.bins.in_warehouse(warehouse).inject(0) { |sum, bin| sum += bin.qty }
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
class DelayedProductBatch
|
2
|
+
attr_accessor :batch_id
|
3
|
+
def initialize(batch_id)
|
4
|
+
self.batch_id = batch_id
|
5
|
+
end
|
6
|
+
|
7
|
+
def perform
|
8
|
+
ProductBatch.process(ProductBatch.find(@batch_id))
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class DelayedInventoryBatch
|
13
|
+
attr_accessor :batch_id
|
14
|
+
def initialize(batch_id)
|
15
|
+
self.batch_id = batch_id
|
16
|
+
end
|
17
|
+
|
18
|
+
def perform
|
19
|
+
InventoryBatch.process(InventoryBatch.find(@batch_id))
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class DelayedProductAmazonSync
|
24
|
+
attr_accessor :product_id
|
25
|
+
def initialize(product_id)
|
26
|
+
self.product_id = product_id
|
27
|
+
end
|
28
|
+
|
29
|
+
def perform
|
30
|
+
Product.amazon_sync(Product.find(@product_id))
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,173 @@
|
|
1
|
+
#
|
2
|
+
# Monkey Patches
|
3
|
+
#
|
4
|
+
module ActiveRecord
|
5
|
+
class Base
|
6
|
+
def self.random
|
7
|
+
if (c = count) != 0
|
8
|
+
find(:first, :offset =>rand(c))
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.all_polymorphic_types(name)
|
13
|
+
@poly_hash ||= {}.tap do |hash|
|
14
|
+
Dir.glob(File.join(RAILS_ROOT, "app", "models", "**", "*.rb")).each do |file|
|
15
|
+
klass = (File.basename(file, ".rb").camelize.constantize rescue nil)
|
16
|
+
next if klass.nil? or !klass.ancestors.include?(ActiveRecord::Base)
|
17
|
+
klass.reflect_on_all_associations(:has_many).select{|r| r.options[:as] }.each do |reflection|
|
18
|
+
(hash[reflection.options[:as]] ||= []) << klass
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
@poly_hash[name.to_sym]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
module AASM
|
28
|
+
module ClassMethods
|
29
|
+
def aasm_states_hash
|
30
|
+
AASM::StateMachine[self].states.map { |state| state.name.to_s }
|
31
|
+
end
|
32
|
+
def aasm_events_hash
|
33
|
+
AASM::StateMachine[self].events.map { |event| event.first.to_s }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
class Hashit
|
40
|
+
def initialize(hash)
|
41
|
+
hash.each do |k,v|
|
42
|
+
self.instance_variable_set("@#{k}", v)
|
43
|
+
self.class.send(:define_method, k, proc{self.instance_variable_get("@#{k}")})
|
44
|
+
self.class.send(:define_method, "#{k}=", proc{|v| self.instance_variable_set("@#{k}", v)})
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def save
|
49
|
+
hash_to_return = {}
|
50
|
+
self.instance_variables.each do |var|
|
51
|
+
hash_to_return[var.gsub("@","")] = self.instance_variable_get(var)
|
52
|
+
end
|
53
|
+
return hash_to_return
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
class Numeric
|
58
|
+
|
59
|
+
def to_years_and_months
|
60
|
+
case
|
61
|
+
when self == 0
|
62
|
+
"0 months"
|
63
|
+
when self < 12
|
64
|
+
"#{ self} month#{ self == 1 ? '' : 's' }"
|
65
|
+
when self == 12
|
66
|
+
"1 year"
|
67
|
+
when self > 12
|
68
|
+
years = self / 12
|
69
|
+
months = self % 12
|
70
|
+
if (months > 0)
|
71
|
+
"#{years} year#{ years > 1 ? 's' : '' } and #{ months} month#{ months == 1 ? '' : 's' }"
|
72
|
+
else
|
73
|
+
"#{years} year#{ years > 1 ? 's' : '' }"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def roundup(nearest=10)
|
79
|
+
self % nearest == 0 ? self : self + nearest - (self % nearest)
|
80
|
+
end
|
81
|
+
|
82
|
+
def rounddown(nearest=10)
|
83
|
+
self % nearest == 0 ? self : self - (self % nearest)
|
84
|
+
end
|
85
|
+
|
86
|
+
def roundnearest(nearest=10)
|
87
|
+
up = roundup(nearest)
|
88
|
+
down = rounddown(nearest)
|
89
|
+
if (up-self) < (self-down)
|
90
|
+
return up
|
91
|
+
else
|
92
|
+
return down
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def factorial
|
97
|
+
my_i = self.to_i
|
98
|
+
if my_i <= 0
|
99
|
+
result = 0
|
100
|
+
else
|
101
|
+
result = 1
|
102
|
+
my_i.downto(2) do |n|
|
103
|
+
result = result * n
|
104
|
+
end
|
105
|
+
end
|
106
|
+
result
|
107
|
+
end
|
108
|
+
|
109
|
+
def odd?
|
110
|
+
self & 1 != 0
|
111
|
+
end
|
112
|
+
|
113
|
+
def even?
|
114
|
+
self & 1 == 0
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
class String
|
119
|
+
# unicode_str.initial_caps => new_str
|
120
|
+
# returns a copy of a string with initial capitals
|
121
|
+
# "Jules-Édouard".initial_caps => "J.É."
|
122
|
+
def initial_caps
|
123
|
+
self.tr('-', ' ').split(' ').map { |word| word.chars.first.upcase.to_s + "." }.join
|
124
|
+
end
|
125
|
+
|
126
|
+
def capitalize_each_word
|
127
|
+
self.downcase.gsub(/^[a-z]|\s+[a-z]/) { |a| a.upcase }
|
128
|
+
end
|
129
|
+
|
130
|
+
def compress
|
131
|
+
self.gsub(' ','')
|
132
|
+
end
|
133
|
+
|
134
|
+
def truncate_words(length = 10, end_string = ' …')
|
135
|
+
words = self.split()
|
136
|
+
words[0..(length-1)].join(' ') + (words.length > length ? end_string : '')
|
137
|
+
end
|
138
|
+
|
139
|
+
def chunk_by_words(chunk_size = 8)
|
140
|
+
result = []
|
141
|
+
words = self.split
|
142
|
+
for chunk in words.in_groups_of(chunk_size)
|
143
|
+
result << chunk.join(' ')
|
144
|
+
end
|
145
|
+
result
|
146
|
+
end
|
147
|
+
|
148
|
+
def chunk_by_length(max_length = 40)
|
149
|
+
result = []
|
150
|
+
words = self.split
|
151
|
+
line = ''
|
152
|
+
for word in words
|
153
|
+
if (line.length > max_length) or (line.length + word.length > max_length)
|
154
|
+
result << line
|
155
|
+
line = ''
|
156
|
+
end
|
157
|
+
line << ' ' + word
|
158
|
+
end
|
159
|
+
result << line
|
160
|
+
result
|
161
|
+
end
|
162
|
+
|
163
|
+
def String.random_alphanumeric(length=6)
|
164
|
+
chars = ['A'..'Z','0'..'9'].map{|r|r.to_a}.flatten
|
165
|
+
ignore = ['0','1','L','A','E','I','O','U']
|
166
|
+
valid = (chars - ignore)
|
167
|
+
Array.new(length).map{valid[rand(valid.size)]}.join.downcase
|
168
|
+
end
|
169
|
+
|
170
|
+
def asset_escape
|
171
|
+
CGI::escape(self.downcase.downcase.gsub(/\s+/,'_').gsub(/[^[:alnum:]_]/, ''))
|
172
|
+
end
|
173
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Identifiable
|
2
|
+
def self.included(base)
|
3
|
+
base.extend ClassMethods
|
4
|
+
|
5
|
+
base.has_many :identifiers, :as => :identifiable, :dependent => :destroy
|
6
|
+
IdentifierType.uncached do
|
7
|
+
for record in IdentifierType.all(true)
|
8
|
+
base.has_many record.name.downcase.pluralize, :as => :identifiable
|
9
|
+
base.has_one record.name.downcase, :as => :identifiable, :order => "#{Identifier.table_name}.position ASC"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
module ClassMethods
|
15
|
+
# Returns the first record identified by an array of values
|
16
|
+
def find_by_identifiers(*names)
|
17
|
+
record = Identifier.first(:conditions => ["#{Identifier.table_name}.name IN (?)", names])
|
18
|
+
record.respond_to?(:name) ? record.identifiable : nil
|
19
|
+
end
|
20
|
+
alias :find_by_identifier :find_by_identifiers
|
21
|
+
|
22
|
+
def identified_by(name)
|
23
|
+
self.find_by_identifier(name)
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
# Determine if a value is an identifier for a model
|
29
|
+
def identified_by?(name)
|
30
|
+
identifiers = self.identifiers.collect{|i| i.name}
|
31
|
+
identifiers.include?(name)
|
32
|
+
end
|
33
|
+
|
34
|
+
def not_identified_by?(name)
|
35
|
+
!identified_by?(name)
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
#
|
2
|
+
# Establish connections to the legacy database, using the pattern where a legacy model name
|
3
|
+
# is prefaced with 'Legacy', ie - LegacyProduct, LegacyOrder
|
4
|
+
#
|
5
|
+
module LegacyConnection
|
6
|
+
def self.included(base)
|
7
|
+
base.establish_connection(ActiveRecord::Base.configurations["legacy_#{RAILS_ENV}"])
|
8
|
+
base.table_name = base.model_name.gsub('Legacy','').downcase.pluralize
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module ProductAttribute
|
2
|
+
def self.included(base)
|
3
|
+
base.table_name = 'taggings'
|
4
|
+
base.belongs_to :tag
|
5
|
+
base.belongs_to :taggable, :polymorphic => true
|
6
|
+
base.belongs_to :tagger, :polymorphic => true
|
7
|
+
|
8
|
+
# base.default_scope :joins => [:tag, :taggable]#, :order => "#{Tag.table_name}.name ASC"
|
9
|
+
# base.named_scope :all, :select => "DISTINCT #{Tagging.table_name}.*", :conditions => "#{Tagging.table_name}.context = '#{base.model_name.downcase.pluralize}'"
|
10
|
+
base.named_scope :all, :conditions => "#{Tagging.table_name}.context = '#{base.model_name.downcase.pluralize}'"
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
def name
|
15
|
+
self.tag.name
|
16
|
+
end
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dragonfly_extensions
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
version: 1.0.0
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Hans Masing
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-05-10 00:00:00 -04:00
|
18
|
+
default_executable:
|
19
|
+
dependencies: []
|
20
|
+
|
21
|
+
description: Collection of Dragonfly Depot Extensions
|
22
|
+
email: hmasing@dragonflydepot.com
|
23
|
+
executables: []
|
24
|
+
|
25
|
+
extensions: []
|
26
|
+
|
27
|
+
extra_rdoc_files:
|
28
|
+
- README.rdoc
|
29
|
+
- lib/dragonfly_extensions.rb
|
30
|
+
- lib/dragonfly_extensions/addressable.rb
|
31
|
+
- lib/dragonfly_extensions/attachable.rb
|
32
|
+
- lib/dragonfly_extensions/automatically_includable.rb
|
33
|
+
- lib/dragonfly_extensions/billable.rb
|
34
|
+
- lib/dragonfly_extensions/binnable.rb
|
35
|
+
- lib/dragonfly_extensions/delayed_jobs.rb
|
36
|
+
- lib/dragonfly_extensions/dragonfly_extensions.rb
|
37
|
+
- lib/dragonfly_extensions/identifiable.rb
|
38
|
+
- lib/dragonfly_extensions/legacy_connection.rb
|
39
|
+
- lib/dragonfly_extensions/measurable.rb
|
40
|
+
- lib/dragonfly_extensions/noteable.rb
|
41
|
+
- lib/dragonfly_extensions/product_attribute.rb
|
42
|
+
- lib/dragonfly_extensions/taggable_on.rb
|
43
|
+
- lib/dragonfly_extensions/uniqueable.rb
|
44
|
+
files:
|
45
|
+
- Manifest.txt
|
46
|
+
- README.rdoc
|
47
|
+
- Rakefile
|
48
|
+
- dragonfly_extensions.gemspec
|
49
|
+
- lib/dragonfly_extensions.rb
|
50
|
+
- lib/dragonfly_extensions/addressable.rb
|
51
|
+
- lib/dragonfly_extensions/attachable.rb
|
52
|
+
- lib/dragonfly_extensions/automatically_includable.rb
|
53
|
+
- lib/dragonfly_extensions/billable.rb
|
54
|
+
- lib/dragonfly_extensions/binnable.rb
|
55
|
+
- lib/dragonfly_extensions/delayed_jobs.rb
|
56
|
+
- lib/dragonfly_extensions/dragonfly_extensions.rb
|
57
|
+
- lib/dragonfly_extensions/identifiable.rb
|
58
|
+
- lib/dragonfly_extensions/legacy_connection.rb
|
59
|
+
- lib/dragonfly_extensions/measurable.rb
|
60
|
+
- lib/dragonfly_extensions/noteable.rb
|
61
|
+
- lib/dragonfly_extensions/product_attribute.rb
|
62
|
+
- lib/dragonfly_extensions/taggable_on.rb
|
63
|
+
- lib/dragonfly_extensions/uniqueable.rb
|
64
|
+
- Manifest
|
65
|
+
has_rdoc: true
|
66
|
+
homepage: http://github.com/hmasing/Dragonfly---Extensions
|
67
|
+
licenses: []
|
68
|
+
|
69
|
+
post_install_message:
|
70
|
+
rdoc_options:
|
71
|
+
- --line-numbers
|
72
|
+
- --inline-source
|
73
|
+
- --title
|
74
|
+
- Dragonfly_extensions
|
75
|
+
- --main
|
76
|
+
- README.rdoc
|
77
|
+
require_paths:
|
78
|
+
- lib
|
79
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
segments:
|
84
|
+
- 0
|
85
|
+
version: "0"
|
86
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
segments:
|
91
|
+
- 1
|
92
|
+
- 2
|
93
|
+
version: "1.2"
|
94
|
+
requirements: []
|
95
|
+
|
96
|
+
rubyforge_project: dragonfly_extensions
|
97
|
+
rubygems_version: 1.3.6
|
98
|
+
signing_key:
|
99
|
+
specification_version: 3
|
100
|
+
summary: Collection of Dragonfly Depot Extensions
|
101
|
+
test_files: []
|
102
|
+
|