Project
Reverse Dependencies for yard
The projects listed here declare yard as a runtime or development dependency
0.0
UU
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Gem for the University of Wisconsin Library Voyager catalog data
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Provides a set of additional Git commands to help developers when working with Pivotal Tracker
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Helps defining and building ansible inventory files programatically via configuration and command modules.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Mounts ISO in Virtual Machines via the provider
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Write a longer description or delete this line.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
0.0
A Vagrant plugin that ensures the desired version of Puppet is installed via the Puppet Labs package repos.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Sensu Handler Messages
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Valet helps you write the sophisticated command-line interfaces you're so used to from GNU/Linux. It provides a beautiful API, rich template support, smart configuration, man page generator, and many other useful features. No matter how large or complex your application is, Valet tops it off with the command-line interface it deserves.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Validate HTML files as they leave your app by rack or by mail or by turbo-stream
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Adds ActiveModel validators for common instant messaging services like Skype and AIM.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Adds basic reflection support to ActiveRecord validations
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
A rails engine to extend ActiveFedora gem to play nicely with Valkyrie data mapper gem
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Value
Value is a library for defining immutable value objects in Ruby. A value
object is an object whose equality to other objects is determined by its
value, not its identity, think dates and amounts of money. A value object
should also be immutable, as you donΓÇÖt want the date ΓÇ£2013-04-22ΓÇ¥ itself to
change but the current date to change from ΓÇ£2013-04-22ΓÇ¥ to ΓÇ£2013-04-23ΓÇ¥.
That is, you donΓÇÖt want entries in a calendar for 2013-04-22 to move to
2013-04-23 simply because the current date changes from 2013-04-22 to
2013-04-23.
A value object consists of one or more attributes stored in instance
variables. Value sets up an #initialize method for you that letΓÇÖs you set
these attributes, as, value objects being immutable, thisΓÇÖll be your only
chance to do so. Value also adds equality checks ‹#==› and ‹#eql?› (which
are themselves equivalent), a ‹#hash› method, a nice ‹#inspect› method, and a
protected attribute reader for each attribute. You may of course add any
additional methods that your value object will benefit from.
ThatΓÇÖs basically all thereΓÇÖs too it. LetΓÇÖs now look at using the Value
library.
§ Usage
You create value object class by invoking ‹#Value› inside the class
(module) you wish to make into a value object class. LetΓÇÖs create a class
that represent points on a plane:
class Point
Value :x, :y
end
A ‹Point› is thus a value object consisting of two sub-values ‹x› and ‹y›
(the coordinates). Just from invoking ‹#Value›, a ‹Point› object will have
a constructor that takes two arguments to set instance variables ‹@x› and
‹@y›, equality checks ‹#==› and ‹#eql?› (which are the same), a ‹#hash›
method, a nice ‹#inspect› method, and two protected attribute readers ‹#x›
and ‹#y›. We can thus already creat ‹Point›s:
origo = Point.new(0, 0)
The default of making the attribute readers protected is often good
practice, but for a ‹Point› it probably makes sense to be able to access
its coordinates:
class Point
public(*attributes)
end
This’ll make all attributes of ‹Point› public. You can of course choose to
only make certain attributes public:
class Point
public :x
end
Note that this public is standard Ruby functionality. Adding a method to
‹Point› is of course also possible and very much Rubyish:
class Point
def distance(other)
Math.sqrt((other.x - x)**2 + (other.y - y)**2)
end
end
For some value object classes you might want to support optional
attributes. This is done by providing a default value for the attribute,
like so:
class Money
Value :amount, [:currency, :USD]
end
Here, the ‹currency› attribute will default to ‹:USD›. You can create
‹Money› via
dollars = Money.new(2)
but also
kronor = Money.new(2, :SEK)
All required attributes must come before any optional attributes.
Splat attributes are also supported:
class List
Value :'*elements'
end
empty = List.new
suits = List.new(:spades, :hearts, :diamonds, :clubs)
Splat attributes are optional.
Finally, block attributes are also available:
class Block
Value :'&block'
end
block = Block.new{ |e| e * 2 }
Block attributes are optional.
Comparison beyond ‹#==› is possible by specifingy the ‹:comparable› option
to ‹#Value›, listing one or more attributes that should be included in the
comparison:
class Vector
Value :a, :b, :comparable => :a
end
Note that equality (‹#==› and ‹#eql?›) is always defined based on all
attributes, regardless of arguments to ‹:comparable›.
Here we say that comparisons between ‹Vector›s should be made between the
values of the ‹a› attribute only. We can also make comparisons between all
attributes of a value object:
class Vector
Value :a, :b, :comparable => true
end
To sum things up, let’s use all possible arguments to ‹#Value› at once:
class Method
Value :file, :line, [:name, 'unnamed'], :'*args', :'&block',
:comparable => [:file, :line]
end
A ‹Method› consists of file and line information, a possible name, some
arguments, possibly a block, and is comparable on the file and line on
which they appear.
Check out the {full API documentation}┬╣ for a more explicit description,
should you need it or should you want to extend it.
┬╣ See http://disu.se/software/value/api/
§ Financing
Currently, most of my time is spent at my day job and in my rather busy
private life. Please motivate me to spend time on this piece of software
by donating some of your money to this project. Yeah, I realize that
requesting money to develop software is a bit, well, capitalistic of me.
But please realize that I live in a capitalistic society and I need money
to have other people give me the things that I need to continue living
under the rules of said society. So, if you feel that this piece of
software has helped you out enough to warrant a reward, please PayPal a
donation to now@disu.se┬╣. Thanks! Your support wonΓÇÖt go unnoticed!
┬╣ Send a donation:
https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=now%40disu%2ese&item_name=Value
§ Reporting Bugs
Please report any bugs that you encounter to the {issue tracker}┬╣.
┬╣ See https://github.com/now/value/issues
§ Authors
Nikolai Weibull wrote the code, the tests, the manual pages, and this
README.
§ Licensing
Value is free software: you may redistribute it and/or modify it under the
terms of the {GNU Lesser General Public License, version 3}┬╣ or later┬▓, as
published by the {Free Software Foundation}┬│.
┬╣ See http://disu.se/licenses/lgpl-3.0/
┬▓ See http://gnu.org/licenses/
┬│ See http://fsf.org/
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Value-YARD
Value-YARD provides YARD handlers for Value¹ objects.
¹ Check out the Value library at http://disu.se/software/value
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Converting between realtime and Vana'diel time, and so on.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
0.0
This is one implementation of the [Builder Pattern](https://en.wikipedia.org/wiki/Builder_pattern) in the Ruby programming language. This is primarily used for composing objects to transport a set of data to a receiver with a specific payload. The advantage of using a builder over a plain Hash is using explicit methods to set required fields, and getting a common way to present your data to the receiver. By default, `.build` will transform your data into a hash, but you can override this method to create your preferred format.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Ruby client library for Vanilla forums to connect websites with Single Sign On (SSO) through JsConnect.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
0.0
An interface to the Imgur API
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
A simple, template-driven content management system.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity